Saya memiliki server Ubuntu 8.04 yang menjalankan database dan banyak server aplikasi Java. Konfigurasi dan penggunaan memorinya adalah:
total used free shared buffers cached
Mem: 16456176 15930028 526148 0 81372 9674196
-/+ buffers/cache: 6174460 10281716
Swap: 1951888 366100 1585788
Saya perhatikan bahwa swap naik setiap sore, dan dirilis beberapa waktu di malam hari. Permintaan tidak sama pada semua hari, dan dimulai pada waktu yang berbeda. Jadi ini cukup acak, kecuali untuk batas "siang-malam" yang kabur.
Beban pada mesin ini bervariasi pada siang hari. Ini sangat rendah antara tengah malam dan 6-7 pagi, jauh lebih tinggi (tapi stabil) sampai 6-8 malam, kemudian turun secara bertahap.
Sekarang saya punya pertanyaan berikut:
- Bagaimana saya bisa melihat proses mana yang menggunakan swap?
- Mengapa lebih suka bertukar daripada mengambil sebagian memori dari cache?
NSWAP
kolom (Ubuntu 16.04: /).Di StackOverflow, sudah ada jawaban yang bagus untuk pertanyaan pertama Anda ("Proses mana yang sebenarnya menggunakan swap?").
/programming//a/7180078/1442301
Singkatnya, alat suka
top
atauhtop
tidak memberikan informasi akurat sama sekali tentang penggunaan swap. Anda harus masuk ke/proc
folder (dalam file pseudo/proc/$PID/smaps
) untuk mendapatkan informasi yang lebih akurat.The posting yang disebutkan di atas mengandung shell script singkat untuk mendapatkan informasi ini bergema dalam cara yang baik.
sumber
Dengan
htop v1.01
, aku menekan "S" untuk menambahkanNSWAP
kolom bukan "F2" (sebagai Gilles disarankan), makaColumns
>Available Columns
> danF5
untuk menambahkannya.sumber
Tanpa polling dan parsing output alat seperti
vmstat
,free
dantop
, tempat terbaik untuk melihat mungkin crontab dari pengguna root atau pengguna lain pada sistem. Jika beban umum pada sistem lonjakan andal pada waktu tertentu, kemungkinan ada proses dalam cron yang menciptakan kebutuhan akan sumber daya. Kalau tidak, Anda selalu dapat membuat utilitas pembuatan log pembuangan sampah ghetto denganscript
utilitas tersebut, yang hanya mencatat semua yang masuk ke STDOUT.Jadi jika saya perlu membuat skrip sekali pakai sekali pakai untuk mendapatkan hasil untuk pemeriksaan nanti, di satu terminal saya akan mengetik:
lalu
dan di terminal lain
lalu
dan kemudian keesokan paginya, bunuh baik
script
doa dan cocok dengan output daritop
danfree
sekali lagi ini adalah pendekatan ghetto tetapi sepertinya Anda hanya perlu satu kali saja
Anda mungkin juga ingin membaca panduan swap ubuntu
sumber