Tiba-tiba saya mengalami masalah; semua aplikasi saya dan server berjalan dengan baik dan tiba-tiba saya melihat jumlah file yang terbuka naik.
Saya memeriksanya dengan perintah ini:
cat /proc/sys/fs/file-nr
Ketika saya memeriksa dengan ini itu menunjukkan 44544 0 128000
, jadi 44544 adalah jumlah file yang terbuka.
Tetapi ketika saya memeriksa dengan perintah ini - lsof | wc -l
itu menunjukkan - 28384.
Jadi yang mana yang benar?
Batas maksimum file terbuka saya adalah 65535
ulimit -a
open files (-n) 65535
Saya ingin tahu 5 proses teratas yang menggunakan lebih banyak file terbuka. Saya bisa mendapatkan ini dari lsof
tetapi jumlah yang ditampilkan di sini sangat berbeda dari perintah lain yang saya sebutkan di atas.
Bisakah saya mendapatkan rincian proses yang dihitung oleh perintah ini cat /proc/sys/fs/file-nr
?
Menurut tautan yang disebutkan di bawah ini mengatakan kita tidak bisa, Bagaimana menampilkan deskriptor file yang terbuka tetapi tidak menggunakan perintah lsof
Apakah ada pekerjaan untuk saya? Saya perlu menemukan proses mana yang mulai menggunakan lebih banyak file terbuka secara tiba-tiba.
UPDATE Maaf guys untuk masalah ini. Saya menemukan kesalahan yang saya lakukan saya TIDAK memeriksa lsof | wc -l dari root. itulah alasan saya melihat perbedaan besar.
masih ada perbedaan antara output file -nr dan lsof | wc -l (dari root). Jumlah ini lebih dari jumlah file -nr. alasan untuk ini adalah, file -nr mengabaikan beberapa direktori (yang dianggap sebagai file oleh lsof) saya menemukan alasan ini oleh penelitian litle di google sendiri. bagaimanapun! terima kasih kawan atas semua bantuannya!
sumber
lsof | wc -l
benar - benar menunjukkan angka negatif?Jawaban:
Tampaknya ada dua pertanyaan yang dimainkan di sini. Pertama, dokumentasi lengkap dari struktur file-nr dan file-max dapat ditemukan di
https://www.kernel.org/doc/Documentation/sysctl/fs.txt
Ini mendefinisikan bidang dalam file itu sebagai:
Semoga itu cukup jelas. Pertanyaan kedua telah dijawab di utas yang disebutkan di atas ( /server/485262/number-of-file-descriptors-different-between-proc-sys-fs-fs-fr-nr-and-proc- pi ) dan tampaknya beralih ke keduanya
Kesulitan untuk mendapatkan metrik yang akurat untuk ini adalah signifikan, karena jumlah FD yang digunakan pada titik tertentu dapat berfluktuasi sangat cepat pada suatu sistem.
Utas berikut menyarankan skema penyaringan untuk pendekatan 'lsof':
/server/396872/why-or-how-does-the-number-of-open-file-descriptors-in-use-by-root-exceed-ulim
sumber
ulimit
bagi saya mengatakan saya bisa membuka 1024 file, jikalsof | wc -l
mengatakan saya sudah memiliki 1.545?lsof
danulimit
untuk jawaban atas pertanyaan Anda.