Sửa ulimit: mở tệp: không thể sửa đổi giới hạn: Không được phép thao tác


13

Tôi đã thử nghiệm điều này trên các bản cài đặt GNU / Linux khác nhau:

perl -e 'while(1){open($a{$b++}, "<" ,"/dev/null") or die $b;print " $b"}'

Hệ thống A và D

Giới hạn đầu tiên tôi đạt được là 1024. Nó có thể dễ dàng tăng lên bằng cách đưa nó vào /etc/security/limits.conf:

*                hard    nofile          1048576

và sau đó chạy:

ulimit -n 1048576
echo 99999999 | sudo tee /proc/sys/fs/file-max

Bây giờ bài kiểm tra đi đến 1048576.

Tuy nhiên, có vẻ như tôi không thể nâng nó lên trên 1048576. Nếu tôi đặt 1048577 trong giới hạn. Nó chỉ đơn giản là bị bỏ qua.

Điều gì gây ra điều đó?

Hệ thống B

Trên hệ thống BI thậm chí không thể đến 1048576:

echo 99999999 | sudo tee /proc/sys/fs/file-max

/etc/security/limits.conf:

*                hard    nofile          1048576

Ở đây tôi nhận được:

$ ulimit -n 65537
bash: ulimit: open files: cannot modify limit: Operation not permitted
$ ulimit -n 65536
#OK

Giới hạn đó đến từ đâu?

Hệ thống C

Hệ thống này cũng có giới hạn 1048576 trong giới hạn.conf và 99999999 trong / Proc / sys / fs / file-max.

Nhưng ở đây giới hạn là 4096:

$ ulimit -n 4097
-bash: ulimit: open files: cannot modify limit: Operation not permitted
$ ulimit -n 4096
# OK

Làm cách nào để nâng mức đó lên (ít nhất) 1048576?

(Lưu ý với bản thân: Đừng làm echo 18446744073709551616 | sudo tee /proc/sys/fs/file-max:)


1
Tôi có cùng một vấn đề, giới hạn dường như là 1048576. Nếu tôi đi qua tôi gặp lỗi sau: bash: ulimit: mở tệp: không thể sửa đổi giới hạn: Thao tác không được phép
Abbadon

Xin chào, tôi đang có một vấn đề rất giống nhau. Tôi nghĩ sẽ rất hữu ích khi cung cấp thêm chi tiết về những hệ thống khác nhau này.
Time4Tea

Câu trả lời:


4

Kiểm tra /etc/ssh/sshd_configcó chứa:

UsePAM=yes

/etc/pam.d/sshdcó chứa:

session    required   pam_limits.so

Vẫn không có câu trả lời tại sao 1048576 là tối đa.

1048576 dường như là trên mỗi quá trình. Vì vậy, bằng cách có nhiều quá trình giới hạn này có thể được khắc phục.


4
Nếu đây thực sự là giải pháp cho vấn đề của riêng bạn, tôi nghĩ sẽ tốt hơn nếu có thêm mối liên hệ giữa vấn đề và giải pháp trên.
Jeff Schaller

2
Re: 1048576 (= 2 ^ 10 * 2 ^ 10 = 1024 ^ 2, để tham khảo). Có thể có một số thông tin liên quan trong câu trả lời này tại đây: stackoverflow.com/a/1213069/2320823
saladi

1
Ssh phải làm gì với nó?
Linas

Tôi đồng ý với @Linas. Xin lỗi, tôi nghĩ rằng liên kết giữa câu trả lời và câu hỏi không rõ ràng.
Time4Tea
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.