คำถามติดแท็ก limit

การ จำกัด การใช้ทรัพยากร (หน่วยความจำพื้นที่ดิสก์เวลา CPU ไฟล์ที่เปิดแบนด์วิธเครือข่าย ... ) โดยกระบวนการหรือกลุ่มของกระบวนการ

3
โปรแกรม“ du” สามารถลดความก้าวร้าวได้หรือไม่?
เรามีงานประจำที่ทำหน้าที่duสรุปย่อของไดเรกทอรีย่อยจำนวนมากเลือกผู้กระทำความผิดที่เลวร้ายที่สุดและใช้ผลลัพธ์เพื่อค้นหาว่ามีสิ่งที่เพิ่มขึ้นอย่างรวดเร็วเพื่อมองเห็นปัญหาที่อาจเกิดขึ้นหรือไม่ เราใช้diffเทียบกับภาพรวมเพื่อเปรียบเทียบ มีไดเรกทอรีระดับบนสุดที่มีไดเรกทอรีย่อยจำนวน (ไม่กี่ร้อย) โดยแต่ละไดเรกทอรีอาจมีไฟล์จำนวน 10 ไฟล์เป็นพัน (หรือมากกว่า) A " du -s" ในบริบทนี้อาจทำให้ IO ก้าวร้าวมากทำให้เซิร์ฟเวอร์ของเราประกันตัวแคชและจากนั้นสไปค์ IO ขนาดใหญ่ซึ่งเป็นด้านที่ไม่พึงประสงค์จะส่งผลกระทบต่อ กลยุทธ์ใดที่สามารถใช้เพื่อรับข้อมูลเดียวกันโดยไม่มีผลข้างเคียงที่ไม่พึงประสงค์
21 disk-usage  io  limit 

3
จำกัด การใช้แบนด์วิดท์อินเทอร์เน็ตของเชลล์เฉพาะ
ฉันต้องการอัปเดต linux ของฉันในเชลล์หนึ่ง แต่โดยค่าเริ่มต้น wget หรือ axel ใน updater ใช้แบนด์วิดท์ทั้งหมด ฉันจะ จำกัด ความเร็วในกระสุนนี้ได้อย่างไร? ฉันต้องการเชลล์อื่น ๆ เพื่อให้มีการแบ่งปันที่ยุติธรรมและ จำกัด ทุกอย่างในเชลล์นั้น - เหมือนกับ proxy! ฉันใช้ Zsh และ Arch Linux คำถามนี้มุ่งเน้นไปที่การแก้ปัญหาทั้งกระบวนการหรือทั่วทั้งเซสชัน ดูวิธี จำกัด แบนด์วิดท์เครือข่าย สำหรับโซลูชันทั้งระบบหรือคอนเทนเนอร์ทั่วบน Linux

3
รับมากกว่า 2 GB ในการสร้าง PDF ด้วย ImageMagick
ฉันใช้convertเพื่อสร้างไฟล์ PDF จากประมาณ 2,000 ภาพ: convert 0001.miff 0002.miff ... 2000.miff -compress jpeg -quality 80 out.pdf กระบวนการยุติการทำซ้ำได้เมื่อไฟล์เอาต์พุตถึง 2 ^ 31-1 ไบต์ (2 GB −1) พร้อมข้อความ convert: unknown `out.pdf'. ข้อกำหนดไฟล์ PDF ช่วยให้≈10 GB ฉันพยายามดึงข้อมูลเพิ่มเติมจาก-debug allแต่ฉันไม่เห็นว่ามีประโยชน์ในการบันทึกผลลัพธ์ ระบบไฟล์ext3ซึ่งช่วยให้ไฟล์อย่างน้อยถึง 16 ลิ่ม (อาจจะมากขึ้น) ในฐานะที่เป็นulimit, คือfile size มีเพียงบรรทัดที่ใส่ความคิดเห็นเท่านั้น มีอะไรอีกที่ทำให้เกิดสิ่งนี้และฉันจะเพิ่มขีด จำกัด ได้อย่างไรunlimited/etc/security/limits.conf รุ่น ImageMagick: 6.4.3 2016-08-05 Q16 การ …

2
เหตุใดความยาวเส้นทางซ็อกเก็ตจึง จำกัด เพียงหนึ่งร้อยตัวอักษร
บนชื่อพา ธ ของระบบ Unix มักจะไม่จำกัดความยาว (เช่น 4096 ตัวอักษรบน Linux) ... ยกเว้นเส้นทางของไฟล์ซ็อกเก็ตซึ่ง จำกัด อยู่ที่ประมาณ 100 ตัวอักษร (107 ตัวอักษรบนLinux ) คำถามแรก: ทำไมถึงมีข้อ จำกัด ต่ำ ผมได้ตรวจสอบว่ามันดูเหมือนเป็นไปได้ที่จะหลีกเลี่ยงข้อ จำกัด นี้โดยการเปลี่ยนไดเรกทอรีการทำงานปัจจุบันและการสร้างในไดเรกทอรีต่างๆหลายซ็อกเก็ตไฟล์ทั้งหมดที่ใช้เส้นทางเดียวกัน./myfile.sock: ใช้งานของลูกค้าดูเหมือนจะถูกต้องเชื่อมต่อกับเซิร์ฟเวอร์กระบวนการคาดว่าแม้แม้ว่าlsofการแสดงทั้งหมด ของพวกเขาฟังบนเส้นทางไฟล์ซ็อกเก็ตเดียวกัน วิธีนี้เป็นวิธีที่เชื่อถือได้หรือฉันแค่โชคดี? พฤติกรรมนี้มีเฉพาะกับ Linux หรืออาจใช้วิธีแก้ปัญหานี้กับ Unixes อื่นเช่นกัน?

3
มีขีด จำกัด สูงสุดของจำนวนกระบวนการซอมบี้ที่คุณมีหรือไม่?
ฉันเคยทำงานกับระบบ HP-UX และผู้ดูแลระบบเก่าบอกฉันว่ามีจำนวน จำกัด ของกระบวนการซอมบี้ที่คุณมีในระบบฉันเชื่อว่า 1024 นี่เป็นเพดานจริงหรือเปล่า? ฉันคิดว่าคุณสามารถมีซอมบี้จำนวนเท่าใดก็ได้ราวกับว่าคุณมีกระบวนการจำนวนมาก ... ? มันแตกต่างจาก distro ไป distro หรือไม่? จะเกิดอะไรขึ้นถ้าเรามีขีด จำกัด สูงสุดและพยายามสร้างซอมบี้ตัวใหม่

3
ฉันสามารถ จำกัด กระบวนการให้มีระยะเวลา / รอบการทำงานของ CPU ได้หรือไม่?
เรามีสคริปต์ที่ทำงานบนเว็บเซิร์ฟเวอร์ของเราเรียกโดยการกระทำของลูกค้าซึ่งเริ่มต้นกระบวนการ unix เพื่อสร้างแคชไฟล์บางไฟล์ เนื่องจากกระบวนการนี้กระทำกับไฟล์ที่ลูกค้าของเราจัดหามาดังนั้นบางครั้งจึงใช้งานไม่ได้นานจนกระบวนการ PHP ซึ่งวางไข่หมดเวลาหรือใช้เวลา CPU มากจนระบบจะฆ่ามัน มีคำสั่งใดบ้างที่ฉันสามารถเรียกใช้ซึ่งจะ จำกัด เวลา CPU / รันไทม์ของกระบวนการหรือไม่ ฉันกำลังมองหาคำสั่ง/usr/bin/timeที่ฉันสามารถเรียกใช้คำสั่งนั้นและส่งผ่าน commandline ที่ฉันต้องการให้เรียกใช้และ จำกัด
16 process  limit 

3
วิธี จำกัด ทรัพยากรทั้งหมด (หน่วยความจำ) ของกระบวนการและลูก ๆ ของกระบวนการ
มีคำถามและคำตอบมากมายเกี่ยวกับการ จำกัด ทรัพยากรของกระบวนการเดียวเช่น RLIMIT_AS สามารถใช้เพื่อ จำกัด หน่วยความจำสูงสุดที่จัดสรรโดยกระบวนการที่สามารถมองเห็นเป็น VIRT topได้ เพิ่มเติมเกี่ยวกับหัวข้อเช่นที่นี่มีวิธี จำกัด ปริมาณหน่วยความจำที่กระบวนการเฉพาะสามารถใช้ใน Unix ได้หรือไม่? setrlimit(2) เอกสารกล่าวว่า: กระบวนการลูกที่สร้างผ่าน fork (2) สืบทอดข้อ จำกัด ทรัพยากรของผู้ปกครอง ข้อ จำกัด ทรัพยากรจะถูกเก็บรักษาไว้ใน execve (2) ควรเข้าใจด้วยวิธีต่อไปนี้: หากกระบวนการมี RLIMIT_AS เช่น 2GB จะไม่สามารถจัดสรรหน่วยความจำได้มากกว่า 2GB เมื่อวางไข่เด็กขีด จำกัด พื้นที่แอดเดรสของ 2GB จะถูกส่งผ่านไปยังเด็ก แต่การนับเริ่มต้นที่ 0 กระบวนการทั้งสองเข้าด้วยกันสามารถใช้หน่วยความจำได้สูงสุด 4GB แต่อะไรจะเป็นวิธีที่มีประโยชน์ในการ จำกัด ผลรวมของหน่วยความจำที่จัดสรรโดยแผนผังกระบวนการทั้งหมด?

4
ป้องกัน tar จากการใช้ CPU และดิสก์มากเกินไป (แล็ปท็อปเก่าล่มถ้า 100%)
ฉันต้องการสำรองข้อมูล 1 เทราไบต์ไปยังดิสก์ภายนอก ฉันใช้คำสั่งนี้: tar cf /media/MYDISK/backup.tar mydata ปัญหา: ฉันค้างแล็ปท็อปที่ไม่ดีและเกิดปัญหาเมื่อใดก็ตามที่ผมใช้ CPU 100% หรือดิสก์ 100% (ถ้าคุณต้องการที่จะตอบสนองเกี่ยวกับโปรดนี้เขียนที่นี่ ) ดังนั้นฉันต้องการอยู่ที่ประมาณ 50% CPU และสูงสุด 50% ดิสก์ คำถามของฉัน: วิธีการเร่งความเร็ว CPU และดิสก์ด้วยtarคำสั่ง? Rsync มีตัวเลือก --bwlimit แต่ฉันต้องการเก็บถาวรเพราะ 1) มีไฟล์ขนาดเล็กจำนวนมาก 2) ฉันชอบที่จะจัดการไฟล์เดียวมากกว่าต้นไม้ tarนั่นเป็นเหตุผลที่ผมใช้
15 tar  limit 

2
ulimit PICKLE:“ ไม่อนุญาตให้ใช้งาน” และ“ ไม่พบคำสั่ง”
ฉันพยายามเพิ่มจำนวนไฟล์ที่เปิดสูงสุดสำหรับผู้ใช้ปัจจุบัน > ulimit -n 1024 ฉันพยายามเพิ่มและล้มเหลวดังนี้ > ulimit -n 4096 bash: ulimit: open files: cannot modify limit: Operation not permitted ดังนั้นฉันจึงทำสิ่งที่เป็นธรรมชาติและพยายามเรียกใช้โดยได้รับอนุญาตจาก temp แต่ล้มเหลว > sudo ulimit -n 4096 sudo: ulimit: command not found คำถาม วิธีเพิ่ม ulimit? ทำไมสิ่งนี้จึงเกิดขึ้น ใช้ Fedora 14
15 bash  fedora  sudo  limit 

3
จำนวนการเชื่อมต่อ SSH บนเครื่องลินุกซ์เครื่องเดียว
ฉันเข้าสู่สถานการณ์ที่ต้องเข้าถึงเครื่องลีนุกซ์ผ่านทาง puTTY ฉันพยายาม SSH หลายครั้ง แต่ไม่สามารถเชื่อมต่อกับเครื่องได้ จากนั้นฉันก็รู้ว่าเพื่อนร่วมงานของฉันกำลังเข้าถึงเครื่อง Linux เดียวกันกับผู้ใช้รูทและฉันก็ต้องการที่จะเข้าถึงในฐานะผู้ใช้รูทฉันขอให้เขาออกจากระบบเพื่อให้ฉันสามารถเข้าสู่ระบบในฐานะรูทได้ มีวิธีที่เรา จำกัด จำนวนการเข้าสู่ระบบ SSH บน linux OS หรือไม่? นี่เป็นคุณลักษณะด้านความปลอดภัยบางอย่างที่แยกความแตกต่างของระบบปฏิบัติการที่ใช้ windows กับระบบปฏิบัติการที่ใช้ระบบปฏิบัติการ Linux
14 ssh  limit 

2
“ การขยายสแต็กอัตโนมัติ” คืออะไร?
getrlimit (2)มีคำจำกัดความต่อไปนี้ใน man pages: RLIMIT_AS ขนาดสูงสุดของหน่วยความจำเสมือนของกระบวนการ (พื้นที่ที่อยู่) ในหน่วยไบต์ ขีด จำกัด นี้มีผลต่อการเรียก brk (2), mmap (2) และ mremap (2) ซึ่งล้มเหลวด้วยข้อผิดพลาด ENOMEM เมื่อเกินขีด จำกัด นี้ นอกจากนี้ยังมีการขยายตัวของสแต็คอัตโนมัติจะล้มเหลว (และสร้าง SIGSEGV ที่ฆ่ากระบวนการถ้าไม่มีสแต็คอื่นได้รับการให้บริการผ่านทาง sigaltstack (2)) เนื่องจากค่ามีความยาวบนเครื่องที่มีความยาว 32 บิตขีด จำกัด นี้จะมากที่สุดที่ 2 GiB หรือทรัพยากรนี้ไม่ จำกัด "การขยายสแต็กอัตโนมัติ" มีความหมายอย่างไรที่นี่ สแต็กในสภาพแวดล้อม Linux / UNIX จะเติบโตตามต้องการหรือไม่? ถ้าใช่กลไกที่แน่นอนคืออะไร
13 linux  process  memory  limit 

1
แก้ไข ulimit: เปิดไฟล์: ไม่สามารถแก้ไขข้อ จำกัด : ไม่อนุญาตให้ใช้งาน
ฉันทดสอบสิ่งนี้ในการติดตั้ง GNU / Linux อื่น: perl -e 'while(1){open($a{$b++}, "<" ,"/dev/null") or die $b;print " $b"}' ระบบ A และ D ขีด จำกัด แรกที่ฉันตีคือ 1024 มันสามารถยกได้ง่ายโดยใส่สิ่งนี้ลงใน /etc/security/limits.conf: * hard nofile 1048576 จากนั้นเรียกใช้: ulimit -n 1048576 echo 99999999 | sudo tee /proc/sys/fs/file-max ตอนนี้การทดสอบไปที่ 1048576 อย่างไรก็ตามดูเหมือนว่าฉันไม่สามารถยกระดับได้เหนือ 1048576 ถ้าฉันใส่ 1048577 ใน limit.conf มันก็จะถูกละเว้น อะไรทำให้เกิดสิ่งนั้น ระบบ …

2
ฉันจะอนุญาตให้ผู้ใช้จัดลำดับความสำคัญของกระบวนการเพื่อลบความดีได้อย่างไร
ฉันต้องการให้ผู้ใช้เรียกใช้กระบวนการเฉพาะบนระบบที่มีค่าลบที่ดี ฉันไม่สามารถแยกกระบวนการเป็นพื้นหลังได้เนื่องจากโปรแกรมเฉพาะนี้เป็นเซิร์ฟเวอร์ minecraft และฉันใช้บรรทัดคำสั่งเพื่อควบคุมเซิร์ฟเวอร์ สคริปต์ทุบตีปัจจุบันของฉันมีลักษณะเช่นนี้ (ส่วนสำคัญ): sleep 10 && \ sudo renice -n $NICENESS $(ps -u $(id -u) -o "%p:%c" | sed -n "s/:java$//p") & \ java -Xmx8G -Xms2G -jar minecraft_server.jar nogui sleepreniceเพียงแค่ความล่าช้าในการดำเนินการของ reniceตัวเองใช้psในการตรวจสอบกระบวนการจาวาโดยใช้ ID ของผู้ใช้ อาจจะมีกรณีอื่น ๆ ของ Java พล่านภายใต้ผู้ใช้งานที่แตกต่างกัน แต่เซิร์ฟเวอร์ Minecraft ทำงานภายใต้ผู้ใช้ของตนเองMinecraft เห็นได้ชัดว่าฉันไม่ต้องการป้อนรหัสผ่านทุกครั้งที่ฉันเริ่มต้นเซิร์ฟเวอร์ จาก/ etc / sudoers : …

2
ตั้งค่าเริ่มต้นที่ดีสำหรับผู้ใช้ที่กำหนด (จำกัด
มีใครบอกวิธีตั้งค่าเริ่มต้นniceเป็น (ตามที่แสดงโดยtop) ของผู้ใช้ ฉันได้พบว่า / etc / security /limits.conf เป็นสถานที่ แต่ถ้าฉันใส่อย่างใดอย่างหนึ่ง: username_of_a_guy - nice 19 username_of_a_guy soft nice 19 username_of_a_guy hard nice 19 มันไม่ทำงาน (ในขณะที่ควรใช่มั้ย) โปรดทราบว่าฉันรีบูตเครื่องตั้งแต่นั้นมา ขอบคุณล่วงหน้ามากสำหรับความช่วยเหลือ ฉันใช้เดเบียนที่ไม่เสถียร (uptodate) บริบท: ที่ทำงานของฉันเรามีเครือข่ายท้องถิ่น: ทุกคนมีคอมพิวเตอร์เป็นของตัวเองและทุกคนสามารถสร้างบัญชีในเครื่องของคนอื่นได้หากชอบ กฎง่ายๆคือถ้าคุณทำงานกับคนอื่นในคอมพิวเตอร์โปรดดีกระบวนการของคุณ ( nice 19) ฉันต้องการตั้งค่าเริ่มต้นที่ดีสำหรับผู้ใช้ที่กำหนดเป็น 19 ครั้งและสำหรับทั้งหมด
12 login  nice  limit 

2
รับสัญญาณก่อนที่กระบวนการจะถูกฆ่าโดย OOM killer / cgroups
ในกลุ่มของเราเรากำลัง จำกัด ทรัพยากรกระบวนการของเราเช่นหน่วยความจำ ( memory.limit_in_bytes) ฉันคิดว่าในท้ายที่สุดแล้วมันก็จัดการผ่าน OOM killer ในเคอร์เนลลินุกซ์ (ดูเหมือนว่าโดยการอ่านซอร์สโค้ด ) มีวิธีรับสัญญาณก่อนที่กระบวนการของฉันจะถูกฆ่าหรือไม่? (เช่นเดียวกับ-notifyตัวเลือกสำหรับSGEqsubซึ่งจะส่งSIGUSR1ก่อนที่กระบวนการจะถูกฆ่า) ฉันอ่านเกี่ยวกับ/dev/mem_notify ที่นี่แต่ฉันไม่มี - ทุกวันนี้มีอย่างอื่นอีกไหม? ฉันอ่านสิ่งนี้ซึ่งดูเหมือนว่าจะค่อนข้างเกี่ยวข้อง ฉันต้องการอย่างน้อยก็ทิ้งร่องรอยกองเล็ก ๆ และบางทีข้อมูลการแก้ปัญหาที่มีประโยชน์อื่น ๆ - แต่บางทีฉันสามารถกู้คืนได้โดยการเพิ่มหน่วยความจำ หนึ่งแก้ปัญหาฉันกำลังใช้อยู่นี้สคริปต์เล็ก ๆซึ่งการตรวจสอบบ่อยถ้าผมสนิท (95%) เพื่อขีด จำกัด SIGUSR1และถ้าเป็นเช่นนั้นก็จะส่งกระบวนการ ใน Bash ฉันกำลังเริ่มต้นสคริปต์นี้ในพื้นหลัง ( cgroup-mem-limit-watcher.py &) เพื่อที่จะคอยดู procs อื่น ๆ ใน cgroup เดียวกันและจะหยุดทำงานโดยอัตโนมัติเมื่อกระบวนการ Bash หลักตาย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.