ฉันกำลังเจอปัญหาทันทีทันใด; แอปพลิเคชันทั้งหมดและเซิร์ฟเวอร์ของฉันทำงานได้ดีและในทันใดฉันเห็นจำนวนไฟล์ที่เปิดค้าง
ฉันกำลังตรวจสอบมันด้วยคำสั่งนี้:
cat /proc/sys/fs/file-nr
เมื่อฉันตรวจสอบสิ่งนี้มันจะแสดง44544 0 128000
ดังนั้น 44544 คือจำนวนไฟล์ที่เปิด
แต่เมื่อฉันตรวจสอบด้วยคำสั่งนี้ - lsof | wc -l
มันแสดง - 28384
แล้วอันไหนที่ถูกต้อง?
ขีด จำกัด สูงสุดสำหรับการเปิดไฟล์ของฉันคือ 65535
ulimit -a
open files (-n) 65535
ฉันต้องการทราบกระบวนการ 5 อันดับแรกที่ใช้ไฟล์ที่เปิดมากขึ้น ฉันสามารถรับได้จากนี้lsof
แต่จำนวนที่แสดงที่นี่แตกต่างจากคำสั่งอื่น ๆ ที่ฉันได้กล่าวไว้ข้างต้น
ฉันสามารถรับรายละเอียดของกระบวนการที่นับได้ด้วยคำสั่งนี้cat /proc/sys/fs/file-nr
หรือไม่?
ตามลิงค์ที่ระบุไว้ด้านล่างมันบอกว่าเราไม่สามารถ วิธีการแสดงตัวอธิบายไฟล์ที่เปิด แต่ไม่ได้ใช้คำสั่ง lsof
มีงานให้ฉันบ้างไหม? ฉันต้องการค้นหาว่ากระบวนการใดที่เริ่มต้นใช้ไฟล์ที่เปิดมากขึ้นในทันที
อัปเดต ขออภัยพวกสำหรับปัญหา ฉันพบข้อผิดพลาดที่ฉันทำฉันไม่ได้ตรวจสอบ lsof | wc -l จากรูท นั่นคือเหตุผลที่ฉันเห็นความแตกต่างอย่างมาก
ยังคงมีความแตกต่างระหว่างการส่งออกของไฟล์ -nr และ lsof | wc -l (จากรูท) lsof count เป็นมากกว่าไฟล์ -nr count เหตุผลของเรื่องนี้คือไฟล์ -nr ไม่สนใจไดเรกทอรีบางอัน (ซึ่งถือว่าเป็นไฟล์โดย lsof) ฉันพบเหตุผลนี้โดยการวิจัย litle บน google ของตัวเอง อย่างไรก็ตาม! ขอบคุณมากสำหรับความช่วยเหลือ!
lsof | wc -l
จริงๆแสดงจำนวนลบหรือไม่?