مدیریت حافظه RAM در لینوکس
وقتی RAM سرور پر میشود، سرویسها کند شده یا کرش میکنند. دانستن نحوه بررسی و آزادسازی حافظه برای مدیران سرور ضروری است.
بررسی وضعیت RAM
# خلاصه حافظه
free -h
# جزئیات بیشتر
cat /proc/meminfo
# پروسسهای پرمصرف
top -o %MEM
ps aux --sort=-%mem | head -20
درک خروجی free
در خروجی free -h، ستون available مهمترین عدد است. لینوکس حافظه آزاد را بهصورت cache و buffer استفاده میکند که عملکرد را بالا میبرد. این حافظه در صورت نیاز آزاد میشود.
آزادسازی کش حافظه
# آزادسازی PageCache
sync; echo 1 > /proc/sys/vm/drop_caches
# آزادسازی dentries و inodes
sync; echo 2 > /proc/sys/vm/drop_caches
# آزادسازی همه
sync; echo 3 > /proc/sys/vm/drop_caches
توجه: آزادسازی کش معمولاً لازم نیست و ممکن است سرعت را موقتاً کاهش دهد.
شناسایی مصرفکنندگان RAM
# ۱۰ پروسس پرمصرف
ps aux --sort=-%mem | head -10
# مصرف حافظه هر سرویس
systemctl status httpd | grep Memory
systemctl status mysqld | grep Memory
بهینهسازی مصرف RAM
Apache
کاهش MaxRequestWorkers یا مهاجرت به LiteSpeed.
MySQL/MariaDB
تنظیم innodb_buffer_pool_size متناسب با RAM:
# حدود ۵۰-۷۰٪ RAM برای MySQL
innodb_buffer_pool_size = 1G
PHP-FPM
کاهش pm.max_children متناسب با RAM:
pm.max_children = 30
اضافه کردن Swap
اگر RAM کافی نیست:
dd if=/dev/zero of=/swapfile bs=1M count=2048
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile swap swap defaults 0 0' >> /etc/fstab
OOM Killer
وقتی RAM تمام شود، لینوکس OOM Killer پروسسها را kill میکند:
dmesg | grep -i "out of memory"
dmesg | grep -i "killed process"
اگر مرتباً OOM رخ میدهد، ارتقا RAM ضروری است.
اگر سرور مجازی با RAM بیشتر نیاز دارید، سرور مجازی اروپا با پلنهای مختلف RAM. کانفیگ سرور شامل بهینهسازی RAM و سرویسها. هاست وردپرس مدیریتشده بدون نگرانی RAM.