ฉันสามารถใช้ ulimit ได้ แต่ฉันคิดว่ามันมีผลกับเซสชั่นเชลล์เท่านั้น ฉันต้องการขีด จำกัด ที่เพิ่มขึ้นสำหรับกระบวนการทั้งหมด นี่คือ Red Hat
ฉันสามารถใช้ ulimit ได้ แต่ฉันคิดว่ามันมีผลกับเซสชั่นเชลล์เท่านั้น ฉันต้องการขีด จำกัด ที่เพิ่มขึ้นสำหรับกระบวนการทั้งหมด นี่คือ Red Hat
คำตอบ:
คำตอบของจัสตินจะบอกคุณถึงวิธีเพิ่มจำนวนไฟล์ที่เปิดซึ่งมีอยู่ทั้งหมดในระบบทั้งหมด แต่ฉันคิดว่าคุณกำลังขอวิธีเพิ่มขีด จำกัด ต่อผู้ใช้ทั่วโลก คำตอบนั้นคือการเพิ่มบรรทัดต่อไปนี้/etc/security/limits.conf
:
* soft nofile 2048
* hard nofile 2048
(โดยที่ * หมายถึงผู้ใช้ทั้งหมด)
man limits.conf
มีบางเอกสารสรุปในแฟ้มที่ตัวเองและในการเป็น นี้จะดำเนินการผ่านทางpam_limits.so
โมดูลซึ่งเรียกว่าสำหรับการให้บริการต่าง ๆ /etc/pam.d/
การกำหนดค่าใน
และฉันต้องยอมรับว่าฉันไม่รู้ว่าที่ 1024 ค่าเริ่มต้นมาจากไหน และเชื่อฉันฉันดู ฉันได้ลองโดยไม่ต้องตั้งค่าโมดูล pam_limits และก็ยังมี มันจะต้องถูกเข้ารหัสอย่างหนักในบางแห่ง แต่ฉันไม่แน่ใจว่าอยู่ที่ไหน
อ้างอิงจากบทความลินุกซ์เพิ่มจำนวนสูงสุดของการเปิดไฟล์ / ไฟล์อธิบาย (FD)คุณสามารถเพิ่มไฟล์ที่เปิด จำกัด /etc/sysctl.conf
โดยการเพิ่มรายการไปยัง
ผนวกคำสั่ง config ดังต่อไปนี้:
fs.file-max = 100000
จากนั้นบันทึกและปิดไฟล์ ผู้ใช้จำเป็นต้องออกจากระบบและลงชื่อเข้าใช้อีกครั้งเพื่อให้การเปลี่ยนแปลงมีผลหรือผู้ใช้สามารถพิมพ์คำสั่งต่อไปนี้:
# sysctl -p
คุณยังสามารถตรวจสอบการตั้งค่าของคุณด้วยคำสั่ง:
# cat /proc/sys/fs/file-max
เพิ่มจำนวน ulimit เปิดไฟล์สูงสุดใน Linux
1. ขั้นตอน: เปิดsysctl.conf
และเพิ่มบรรทัดนี้ fs.file-max = 65536
$ vi /etc/sysctl.conf
เพิ่มบรรทัดใหม่และ
fs.file-max = 65536
บันทึกและออก.
2.Step:
$ vi /etc/security/limits.conf
และเพิ่มด้านล่างที่กล่าวถึง
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
บันทึกและออกจากการตรวจสอบไฟล์สูงสุดที่เปิด ulimit
# ulimit -a
....
open files (-n) 65535
แต่ถ้าคุณกำลังพยายามเพิ่มจำนวนสูงสุดของไฟล์ที่เปิดอยู่ของบริการเช่น MariaDB หรืออย่างอื่น (ใช้systemd ) คุณต้องทำในไฟล์. service โดยตรง
/lib/systemd/system/<servicename>.service
จะเป็นดังนี้:
[Unit]
Description=Some Daemon
After=syslog.target network.target
[Service]
Type=notify
LimitNOFILE=49152
ExecStart=/usr/sbin/somedaemon
[Install]
WantedBy=multi-user.target
คำตอบที่สมบูรณ์อยู่ที่นี่: การเพิ่ม nproc สำหรับกระบวนการที่เปิดตัวโดย systemd บน CentOS 7
systemd
การเปลี่ยนแปลงที่เกิดขึ้นอย่างต่อเนื่องกำลังเพิ่มขึ้นทั่วทั้งระบบนิเวศ Linux แม้ว่าฉันจะแนะนำให้แก้ไขคำตอบcp -r /lib/systemd/system/mariadb.service /etc/systemd/system/
และทำการเปลี่ยนแปลงไฟล์นั้นแทนที่จะเป็นไฟล์บริการทั่วทั้งระบบที่จัดทำโดยแพ็คเกจ
suplement:
คุณอาจพบการกำหนดค่าในสถานที่ที่แตกต่างกัน: /etc/security/limits.d/*.conf
ฉันต้องแก้ไขมัน มันไม่ทำงานหากไม่มีมัน รูปแบบเหมือนกับสำหรับlimits.conf