Kami telah menanamkan sistem Linux tanpa swap.
Saat ini kita harus meningkatkan alarm ketika penggunaan memori% meningkat lebih dari tiga kali lipat. Dan reboot ketika penggunaan memori% meningkat lebih dari ambang (lebih tinggi).
Mengapa kami ingin melakukan itu: Jika beberapa program bocor, kami dapat melakukan reboot keamanan, sebelum kernel mulai mematikan proses kami (yang dapat menyebabkan korupsi data atau tidak tersedianya).
Tapi kami punya masalah:
Bagaimana cara menghitung penggunaan memori-% yang dapat digunakan untuk tujuan kita?
Kami mencoba menghitung penggunaan memori dengan menggunakan nilai / proc / meminfo:
/ # cat /proc/meminfo
MemTotal: 126744 kB
MemFree: 58256 kB
Buffers: 16740 kB
Cached: 31308 kB
SwapCached: 0 kB
Active: 37580 kB
Inactive: 24000 kB
Tanpa keberhasilan:
(MemTotal - MemFree)
tidak dapat digunakan, karena mengandung misalnya cache.
(MemTotal - MemFree - Buffers - Cached)
tidak mengabaikan efek Inactive
. Jadi itu juga memberikan nilai penggunaan memori yang terlalu besar.
(MemTotal - MemFree - Buffers - Cached - Inactive)
tidak dapat digunakan, karena hasilnya bisa negatif.
Beri nama ini sebagai alert.sh dan jalankan perintah:
chmod +x alert.sh
Konfigurasikan cron untuk menjalankan skrip ini setiap 10 menit
Pastikan untuk mengganti '512' dengan total memori server Anda dalam MB dan '[email protected]' dengan alamat email yang sebenarnya. Ini akan mengirimkan peringatan email setiap kali penggunaan memori melampaui 95% dan akan memulai kembali layanan "service_name" jika mencapai 90%
sumber
Anda dapat menggunakan skrip shell di cron dengan perintah gratis untuk memantau memori dan bertindak sesuai nilainya. Misalnya, untuk memonitor memori RAM:
Alih-alih menggemakan output, Anda bisa mengevaluasi nilai hingga batas yang Anda inginkan dan mengirimkan, me-reboot atau tindakan apa pun yang Anda inginkan:
Kemudian Anda menambahkannya ke crontab untuk dijalankan dalam interval yang Anda inginkan.
sumber
utilitas lain yang bermanfaat dari paket sysstat adalah sar.
Untuk informasi memori, gunakan:
Saya pasti bisa menggunakan lebih banyak RAM di kotak ini.
sumber