Jika server atau VPS Anda sering kehabisan memori, artikel ini mungkin bisa menjadi bantuan untuk Anda dan akan memandu Anda melalui diagnosa, apa yang mejadi penyebab masalah serta beberapa daftar perbaikan.
Pertama-tama, untuk melihat berapa banyak memori yang sedang Anda gunakan, ketik perintah free -m. Ini akan memberi Anda output seperti:
[root@server ~]# free -m total used free shared buffers cached Mem: 946 924 22 0 148 483 -/+ buffers/cache: 291 654 Swap: 2047 23 2023
Nilai yang tertera (924) akan selalu dekat dengan total memori (946) dalam sistem. Hal ini karena Linux menggunakan memori cadangan untuk data cache untuk mengurangi ketergantungan pada hard drive. Berikut 483MB yang digunakan untuk cache.
Hal utama Anda akan ingin dilihat adalah buffer/cache baris nilai digunakan (291). Itu adalah jumlah aktual memori aplikasi Anda saat ini menggunakan. Untuk performa terbaik, jumlah ini harus kurang dari total memori (946) dan dalam rangka mencegah keluar dari kesalahan memori, perlu kurang dari total memori (946) dan ruang swap (2047).
Dalam rangka untuk melihat di mana semua memori Anda, jalankan saja aux ps. Yang akan menunjukkan persentase memori setiap proses menggunakan (pada kolom %MEM) dan Anda dapat menggunakannya untuk mengidentifikasi pengguna memori atas (biasanya Apache atau MySQL). Ingatlah untuk menambahkan bersama semua bentuk layanan untuk menghitung berapa banyak memori layanan ini menggunakan secara keseluruhan.
Penggunaan Apache High Memory
Apache sering kali menjadi salah satu pengguna memori terbesar. Apache dijalankan sebagai sejumlah ‘server’ dan request yang masuk dibagi di antara mereka. Memori yang digunakan oleh server masing-masing bertambah, terutama ketika halaman web yang dikembalikan oleh server yang meliputi PHP atau Perl yang perlu untuk memuat di library baru, dan tidak jarang untuk setiap proses server untuk digunakan sebanyak 10% dari memori server .
Dalam rangka untuk mengurangi penggunaan memori, Anda dapat mengurangi jumlah server dengan mengedit file httpd.conf anda. Ada tiga pengaturan Anda akan ingin melihat: StartServers, MinSpareServers, dan MaxSpareServers. Masing-masing dapat dikurangi dengan nilai 1 atau 2 dan server Anda masih harus merespon segera. Setelah mengubah pengaturan file httpd.conf jangan lupa restart Apache dengan menjalankan layanan httpd restart untuk memastikan pengaturan baru dalam mempengaruhi.
High Memory Usage MySQL
MySQL relatif memori efisien di instal sebagai fitur memori sebagian besar menggunakan tidak diaktifkan secara default, tapi Anda dapat menambahkan baris berikut ke file /etc/my.cnf, di bagian mysqld, untuk membebaskan sebagian memori tambahan:
innodb_buffer_pool_size = 16K
key_buffer_size = 16K
myisam_sort_buffer_size = 16K
query_cache_size = 1M
Sekali lagi, pastikan Anda restart layanan bagi mereka pengaturan untuk mengambil mempengaruhi. Hal ini dapat dilakukan dengan menjalankan service mysql restart
Penggunaan SpamAssassin High Memory
SpamAssassin juga dapat menjadi pengguna memori besar karena dapat membuat beberapa thread/proses dan masing-masing thread dapat menggunakan sejumlah memori, tetapi SpamAssassin biasanya bekerja sangat baik dengan hanya satu thread. Anda dapat mengurangi ‘children’ pengaturan dan merebut kembali beberapa memori pada server untuk aplikasi lain untuk berjalan dengan.
Untuk melakukan perubahan ini SPAMDOPTIONS baris di /etc/init.d/spamassassin ke:
SPAMDOPTIONS=”-d -c -m1 -H”