หลังจากอัปเดต MongoDB เป็น Ubuntu 18/20 แล้ว MongoDB รายงานว่า "Soft rlimits ต่ำเกินไป: currentValue: 1024" แต่เฉพาะเมื่อทำงานเป็นบริการ (ไม่ใช่ในฐานะผู้ใช้)
วิธีแก้ไขได้รับคำตอบแล้ว และปัญหาได้รับการแก้ไขในคำตอบสำหรับคำถามต่อไปนี้ การเพิ่ม nproc สำหรับกระบวนการที่เรียกใช้โดย systemd บน CentOS 7 และ https://unix.stackexchange.com/questions/345595/how-to-set-ulimits-on-service-with-systemd (TL;DR; วิธีแก้ไขคือการแก้ไข /etc/systemd/system/<servicename>.d/override.conf
หรือเพิ่มวงเงินตรงไปที่ /lib/systemd/system/mongod.service
)
คำถามของฉันคือ: 1024 นั้นมาจากไหน เนื่องจากไม่ปรากฏในที่ใดอ้างอิงและ สิ่งนี้จะส่งผลกระทบต่อกระบวนการอื่น ๆ ที่ทำงานเป็นบริการหรือไม่?
ฉันได้ดูที่ไหน:
- /etc/security/limits.conf ไม่มีอะไร; ฉันได้ตรวจสอบแล้วว่า (เช่น
กล่าวถึงในคำตอบ) การเพิ่มค่าที่นี่ไม่ได้สร้างความแตกต่าง
เมื่อเรียกใช้เป็นบริการ แต่ถ้าเรียกใช้ในฐานะผู้ใช้ mongodb นั้น
ทำงาน นี่ไม่ใช่ที่มาของ 1024
- /etc/security/limits.d/ ไม่มีไฟล์ ฉันยังยืนยันว่า
การเพิ่มมูลค่าไม่ได้สร้างความแตกต่าง
- /etc/sysctl.conf (ไม่มีการอ้างอิง fs.* ออก)
- /etc/pam.d/systemd-user (ไม่มีการอ้างอิงถึงขีดจำกัดในไฟล์นั้นหรือไฟล์ที่รวมอยู่)
- /proc/[pid]/limits ยืนยัน 1024 (เว้นแต่จะมีการเปลี่ยนแปลง โดยที่ตัวเลขยืนยันที่กำหนดโดย /etc/systemd/system/mongod.d/override.conf หรือ /lib/systemd/system/mongod.service