ใน Linux คุณสามารถเปลี่ยนจำนวนไฟล์ที่เปิดได้สูงสุด คุณสามารถแก้ไขหมายเลขนี้ได้โดยใช้ปุ่ม ulimit สั่งการ. ให้สิทธิ์คุณในการควบคุมทรัพยากรที่พร้อมใช้งานสำหรับเชลล์หรือกระบวนการที่เริ่มต้น
อ่านเพิ่มเติม:ตั้งค่าขีดจำกัดกระบวนการทำงานของ Linux ในระดับต่อผู้ใช้
ในบทช่วยสอนสั้นๆ นี้ เราจะแสดงวิธีตรวจสอบขีดจำกัดปัจจุบันของไฟล์ที่เปิดอยู่และคำอธิบายไฟล์ แต่ในการดำเนินการดังกล่าว คุณจะต้องมีสิทธิ์เข้าถึงรูทในระบบของคุณ
อันดับแรก มาดูกันว่าเราจะหาจำนวนไฟล์ที่เปิดอยู่สูงสุดได้อย่างไรบนระบบ Linux ของคุณ
ค่าถูกเก็บไว้ใน:
# cat /proc/sys/fs/file-max 818354
ตัวเลขที่คุณจะเห็น แสดงจำนวนไฟล์ที่ผู้ใช้สามารถเปิดได้ต่อเซสชันการเข้าสู่ระบบ ผลลัพธ์อาจแตกต่างกันไปขึ้นอยู่กับระบบของคุณ
ตัวอย่างเช่น บน a CentOS เซิร์ฟเวอร์ของฉัน ขีด จำกัด ถูกตั้งค่าเป็น 818354, ในขณะที่ อูบุนตู เซิร์ฟเวอร์ที่ฉันทำงานที่บ้าน ขีดจำกัดเริ่มต้นถูกตั้งค่าเป็น 176772.
หากคุณต้องการดูขีดจำกัดฮาร์ดและซอฟต์ คุณสามารถใช้คำสั่งต่อไปนี้:
# ulimit -Hn 4096
# ulimit -Sn 1024
หากต้องการดูค่าฮาร์ดและซอฟต์สำหรับผู้ใช้ที่แตกต่างกัน คุณสามารถเปลี่ยนผู้ใช้ด้วย “ซู” ให้กับผู้ใช้ที่จำกัดที่คุณต้องการตรวจสอบ
ตัวอย่างเช่น:
#สุมาริน. $ ulimit -Sn 1024
$ ulimit -Hn 4096
หากคุณกำลังใช้งานเซิร์ฟเวอร์ แอปพลิเคชันบางตัวของคุณอาจต้องการขีดจำกัดที่สูงขึ้นสำหรับตัวอธิบายไฟล์ที่เปิดอยู่ ตัวอย่างที่ดีคือ MySQL/MariaDB บริการหรือ Apache เว็บเซิร์ฟเวอร์.
คุณสามารถเพิ่มขีด จำกัด ของไฟล์ที่เปิดใน Linux โดยแก้ไขเคอร์เนล directive fs.file-max
. เพื่อจุดประสงค์นั้น คุณสามารถใช้ sysctl คุณประโยชน์.
Sysctl ใช้เพื่อ กำหนดค่าพารามิเตอร์เคอร์เนลที่รันไทม์.
ตัวอย่างเช่น หากต้องการเพิ่มขีดจำกัดไฟล์ที่เปิดเป็น 500000คุณสามารถใช้คำสั่งต่อไปนี้เป็นรูท:
# sysctl -w fs.file-max=500000.
คุณสามารถตรวจสอบค่าปัจจุบันของไฟล์ที่เปิดอยู่โดยใช้คำสั่งต่อไปนี้:
$ cat /proc/sys/fs/file-max.
ด้วยคำสั่งข้างต้น การเปลี่ยนแปลงที่คุณทำไว้จะยังคงใช้งานได้จนกว่าจะรีบูตครั้งถัดไป หากคุณต้องการใช้ถาวร คุณจะต้องแก้ไขไฟล์ต่อไปนี้:
# vi /etc/sysctl.conf.
เพิ่มบรรทัดต่อไปนี้:
fs.file-max=500,000
แน่นอน คุณสามารถเปลี่ยนจำนวนได้ตามความต้องการของคุณ ในการตรวจสอบการเปลี่ยนแปลงอีกครั้งให้ใช้:
# cat /proc/sys/fs/file-max.
ผู้ใช้จะต้องออกจากระบบและเข้าสู่ระบบอีกครั้งเพื่อให้การเปลี่ยนแปลงมีผล หากคุณต้องการใช้ขีดจำกัดทันที คุณสามารถใช้คำสั่งต่อไปนี้:
# sysctl -p.
ตัวอย่างข้างต้นแสดงวิธีตั้งค่าขีดจำกัดทั่วโลก แต่คุณอาจต้องการใช้ขีดจำกัดต่อผู้ใช้ เพื่อวัตถุประสงค์ดังกล่าว ในฐานะผู้ใช้ root คุณจะต้องแก้ไขไฟล์ต่อไปนี้:
# vi /etc/security/limits.conf.
หากคุณเป็นผู้ดูแลระบบ Linux เราขอแนะนำให้คุณทำความคุ้นเคยกับไฟล์นั้นและสิ่งที่คุณสามารถทำได้ อ่านความคิดเห็นทั้งหมดเนื่องจากให้ความยืดหยุ่นอย่างมากในแง่ของการจัดการทรัพยากรระบบโดยจำกัดผู้ใช้/กลุ่มในระดับต่างๆ
บรรทัดที่คุณควรเพิ่มใช้พารามิเตอร์ต่อไปนี้:
นี่คือตัวอย่างการตั้งค่าขีดจำกัดซอฟต์และฮาร์ดสำหรับผู้ใช้ มารินา:
## ตัวอย่างฮาร์ดจำกัดสำหรับไฟล์ที่เปิดสูงสุด มารีนฮาร์ดโนไฟล์4096 ## ตัวอย่าง soft limit สำหรับไฟล์ที่เปิดสูงสุด มาริน ซอฟท์ โนไฟล์ 1024
บทความสั้น ๆ นี้แสดงตัวอย่างพื้นฐานเกี่ยวกับวิธีการตรวจสอบและกำหนดค่าขีดจำกัดระดับสากลและระดับผู้ใช้สำหรับจำนวนไฟล์ที่เปิดสูงสุด
ในขณะที่เราเพิ่งขีดข่วนพื้นผิว เราขอแนะนำให้คุณดูรายละเอียดเพิ่มเติมและอ่านเกี่ยวกับ /etc/sysctl.conf และ /etc/security/limits.conf และเรียนรู้วิธีการใช้งาน พวกเขาจะช่วยคุณได้มากในวันหนึ่ง