วิธีการแก้ไข ulimit สำหรับไฟล์ที่เปิดบน SUSE Linux Enterprise Server 10.4 อย่างถาวร?


9
SERVER:/etc # ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
file size               (blocks, -f) unlimited
pending signals                 (-i) 96069
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 96069
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
SERVER:/etc # 

ฉันจะตั้งค่าขีด จำกัด ของผู้ใช้รูทจาก 1024 เป็นอย่างอื่นได้อย่างถาวรได้อย่างไร ฉันจะตั้ง ulimit ทั่วโลกได้อย่างไร? การเปลี่ยนแปลงจะมีผลในขณะนี้หรือไม่

ps: ฉันเล่นไปแล้ว แต่หาไฟล์ที่ฉันสามารถตั้งไว้อย่างถาวร:

SERVER:/etc # grep -RiI ulimit * 2>/dev/null | egrep -v ":#|#ulimit"
init.d/boot.multipath:      ulimit -n $MAX_OPEN_FDS
init.d/multipathd:      ulimit -n $MAX_OPEN_FDS
rc.d/boot.multipath:        ulimit -n $MAX_OPEN_FDS
rc.d/multipathd:        ulimit -n $MAX_OPEN_FDS

และ..:

SERVER:/etc # grep -RiI 'MAX_OPEN_FDS' * 2>/dev/null
init.d/boot.multipath:MAX_OPEN_FDS=4096
init.d/boot.multipath:  if [ -n "$MAX_OPEN_FDS" ] ; then
init.d/boot.multipath:      ulimit -n $MAX_OPEN_FDS
init.d/multipathd:MAX_OPEN_FDS=4096
init.d/multipathd:  if [ -n "$MAX_OPEN_FDS" ] ; then
init.d/multipathd:      ulimit -n $MAX_OPEN_FDS
rc.d/boot.multipath:MAX_OPEN_FDS=4096
rc.d/boot.multipath:    if [ -n "$MAX_OPEN_FDS" ] ; then
rc.d/boot.multipath:        ulimit -n $MAX_OPEN_FDS
rc.d/multipathd:MAX_OPEN_FDS=4096
rc.d/multipathd:    if [ -n "$MAX_OPEN_FDS" ] ; then
rc.d/multipathd:        ulimit -n $MAX_OPEN_FDS
SERVER:/etc # 

คำตอบ:


9

ใช้โมดูล pam_limits (8) และเพิ่มสองบรรทัดต่อไปนี้ลงใน/etc/security/limits.conf:

root hard nofile 8192
root soft nofile 8192

สิ่งนี้จะเพิ่มขีด จำกัด ทรัพยากร RLIMIT_NOFILE (ทั้งนุ่มและยาก) สำหรับรูทเป็น 8192 เมื่อเข้าสู่ระบบครั้งต่อไป


1
ฉันแก้ไขมัน แต่ดูเหมือนว่าจะไม่มีผลเมื่อเห็น ulimit -a กับรูทแม้หลังจากล็อกอินอีกครั้งแล้วจะใช้การเปลี่ยนแปลงนี้กับ limit.conf อย่างไรโดยไม่ต้องรีบูต? : D
gasko peter

1
ulimit -n 8192จะตั้งค่าขีด จำกัด ทันทีสำหรับเชลล์ปัจจุบันและกระบวนการลูกทั้งหมด
Petr Uzel

ฉันยอมรับ .. แต่ afaik เครื่องจะต้องรีบูต :) - จนกว่าจะถึงแล้ว. bash_profile .. ulimit -n 8192
gasko peter

ไฟล์/etc/security/limits.confเป็นเพียงครึ่งหนึ่งของความจริง: ไฟล์จะถูกอ่านโดยpam_limits.soซึ่งจะต้องมีการกำหนดค่า หน้าคู่มือบอกว่าควรจะมีบรรทัด/etc/pam.d/login session required pam_limits.so
U. Windl
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.