ทำไม (หรือวิธี) จำนวนตัวอธิบายไฟล์แบบเปิดที่ใช้โดย root เกิน ulimit -n?
เมื่อเร็ว ๆ นี้เซิร์ฟเวอร์ของเราไม่มีตัวอธิบายไฟล์และในกรณีที่ฉันมีคำถาม ulimit -nฉันควรจะให้จำนวนตัวอธิบายไฟล์ที่เปิดสูงสุดให้ฉัน หมายเลขนั้นคือ 1024 ฉันตรวจสอบจำนวนตัวอธิบายไฟล์ที่เปิดอยู่โดยเรียกใช้lsof -u root |wc -lและได้ 2500 fds นั่นคือมากเกินกว่า 1024 ดังนั้นฉันเดาว่าจะหมายถึงจำนวน 1024 เป็นต่อกระบวนการไม่ใช่ต่อผู้ใช้อย่างที่ฉันคิด ฉันวิ่งlsof -p$PidOfGlassfish|wc -lและได้ 1,300 นี่คือส่วนที่ฉันไม่ได้รับ หากulimit -nไม่ใช่จำนวนสูงสุดของกระบวนการต่อผู้ใช้หรือต่อกระบวนการดังนั้นมันดีสำหรับอะไร? ไม่ได้ใช้กับผู้ใช้รูทหรือไม่? และถ้าเป็นเช่นนั้นฉันจะได้รับข้อความแสดงข้อผิดพลาดเกี่ยวกับการหมดไฟล์ descriptor ได้อย่างไร? แก้ไข:วิธีเดียวที่ฉันสามารถทำให้เข้าใจได้ulimit -nคือถ้ามันใช้จำนวนไฟล์ที่เปิด (ตามที่ระบุไว้ในคู่มือทุบตี) มากกว่าจำนวนของการจัดการไฟล์ (กระบวนการที่แตกต่างกันสามารถเปิดไฟล์เดียวกัน) หากเป็นกรณีนี้เพียงแค่แสดงรายการจำนวนไฟล์ที่เปิด (grepping บน '/' ซึ่งไม่รวมไฟล์ที่แม็พหน่วยความจำ) ไม่เพียงพอ: lsof -u root |grep /|sort -k9 |wc -l #prints …