Làm cách nào để đặt giới hạn số lượng tệp Linux có thể mở?


11

Tôi dự định chạy một ứng dụng Java bằng cách sử dụng nohup ... &. Giới hạn phải áp dụng cho các lệnh như thế này.


Nhưng điều này gây ra lỗi trong chương trình java của tôi

Câu trả lời:


5

Hầu hết các hệ thống sử dụng PAM và có các pam_limitsgiới hạn thiết lập mô-đun dựa trên /etc/security/limits.conf. Giới hạn cho mỗi người dùng cho các tệp đang mở được gọi nofile. Bạn có thể đặt nó cho mọi người dùng hoặc cho một người dùng hoặc nhóm cụ thể và bạn có thể đặt giới hạn mà người dùng có thể ghi đè (giới hạn mềm) và một giới hạn khác mà chỉ root mới có thể ghi đè (giới hạn cứng). Các tài liệulimits.conftrang người đàn ông có các chi tiết. Ví dụ: để tăng giới hạn lên 50000 cho mọi người, hãy đặt dòng này vào /etc/limits.conf(cài đặt có hiệu lực khi bạn đăng nhập):

* - nofile 50000

3

bạn có thể thêm fs.file-max = <your number>vào /etc/sysctl.conf. Sau đó khởi động lại.


cat / Proc / sys / fs / file-max là 169203 nhưng ulimit -n là 1024

Không cần phải khởi động lại. Cứ chạy đi sysctl fs.file-max=123456. ( /etc/sysctl.confđược đọc vào lúc khởi động bởi một đoạn script gọi sysctlnội dung.)
Gilles 'SO- ngừng trở nên xấu xa'

2
ulimit -n

có thể sửa đổi mỗi cài đặt quy trình và

/proc/sys/fs/file-max

hoặc biến sysctl được gọi fs.file-maxcó thể được sử dụng để đọc và đặt giá trị toàn hệ thống


cat / proc / sys / fs / file-max là 169.203, nhưng ulimit -n là 1024

0

Bạn có thể sử dụng ulimit cho việc này:

http://bloggerdigest.blogspot.com/2006/10/purpose-of-ulimit-linux-command.html

Mặc dù bạn nên đảm bảo rằng việc mở quá nhiều tệp xử lý là hoàn toàn cần thiết trước khi sử dụng các điều chỉnh như vậy. Việc tăng các tệp xử lý tối đa chỉ vì bạn đã quên thực hiện một luồng đầu vào.close () trong một vòng lặp sẽ chỉ làm trì hoãn vấn đề tiềm ẩn.


1
Tôi muốn kết nối với nhiều khách hàng

0

vi ~ / .bashrc Và thêm một dòng ở cuối tệp

ulimit -n 169203

0

Sử dụng ulimit (lệnh Bash - man bash hoặc tìm tương tự cho shell của bạn) cho mỗi phiên bản chương trình. Không sử dụng giới hạn hệ thống toàn cầu nếu bạn không biết bạn đang làm gì - DoS có thể.

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.