Sau khi cập nhật MongoDB lên Ubuntu 18/20, MongoDB báo cáo "Soft rlimits too low: currentValue: 1024", nhưng chỉ khi chạy dưới dạng dịch vụ (không phải với tư cách người dùng).
Cách khắc phục đã được trả lời và sự cố được giải quyết trong câu trả lời cho các câu hỏi sau Tăng nproc cho các quy trình do systemd khởi chạy trên CentOS 7 và https://unix.stackexchange.com/questions/345595/how-to-set-ulimits-on-service-with-systemd (TL; DR; giải pháp là chỉnh sửa /etc/systemd/system/<tên dịch vụ>.d/override.conf
hoặc thêm giới hạn trực tiếp vào /lib/systemd/system/mongod.service
)
Câu hỏi của tôi là: 1024 ban đầu đến từ đâu vì nó không xuất hiện ở bất kỳ nơi nào được tham chiếu và điều này có ảnh hưởng đến bất kỳ quy trình nào khác đang chạy dưới dạng dịch vụ không?
Tôi đã nhìn ở đâu:
- /etc/security/limits.conf không chứa gì; Tôi đã xác minh rằng (như
được đề cập trong câu trả lời) việc thêm giá trị ở đây không tạo ra sự khác biệt
khi chạy dưới dạng dịch vụ, nhưng nếu chạy với tư cách người dùng mongodb, nó
làm việc. Đây không phải là nguồn của 1024.
- /etc/security/limits.d/ không chứa tệp nào. Tôi cũng xác nhận rằng
thêm giá trị làm cho không có sự khác biệt.
- /etc/sysctl.conf (không thoát tham chiếu fs.*)
- /etc/pam.d/systemd-user (không tham chiếu đến các giới hạn trong tệp đó hoặc bất kỳ tệp nào được bao gồm)
- /proc/[pid]/limits xác nhận 1024 (trừ khi thay đổi, trong đó các số được xác nhận được đặt bởi /etc/systemd/system/mongod.d/override.conf hoặc /lib/systemd/system/mongod.service