Làm thế nào để thiết lập giá trị ulimit vĩnh viễn?


17

Trên Debian Wheezy, ulimit -ađưa ra:

open files                      (-n) 1024

Tôi thêm cái này vào /etc/security/limits.conf

*                hard    nofile          64000

sau đó khởi động lại.

ulimit -avẫn cung cấp số lượng tệp mở tối đa là 1024. Bất kỳ ai cũng có thể làm sáng tỏ nó?


Đây có phải là một máy chủ ảo?
Dennis Nolte

không, đó là một máy chủ mongodb
Icu

Câu trả lời:


13

Tùy chọn thứ nhất: Bạn không đặt softlimit cao hơn nữa.

Giải pháp có thể:

trong /etc/security/limits.conf thêm

* soft nofile 2048

kiểm tra với

ulimit -n 2048 

Tùy chọn hai: Bạn đã đăng nhập với tư cách người dùng và trong một số tệp "cấu hình" (hồ sơ, bashrc, đại loại như thế này) giới hạn mềm được đặt thành giá trị thấp hơn.

Giải pháp có thể là grep cho ulimit trong thư mục vv và / hoặc thư mục nhà của bạn.

Cảnh báo: Tùy thuộc vào số lượng tệp / thư mục bạn có trong đó, bạn có thể chỉ muốn xem xét các tệp / tệp cụ thể

ps: có rất nhiều câu hỏi tương tự ở đây bạn có thể muốn đọc lên.

Đặc biệt cứng và giới hạn mềm

Đọc ở đây để biết giải pháp khác có thể đi sâu vào chi tiết Quá nhiều tệp đang mở


Trên thực tế, tôi đã cố gắng chỉ đặt giới hạn cứng thành 64000. Vì vậy, giới hạn mềm vẫn là 1024. Bây giờ tôi đã cố gắng đặt giới hạn mềm thành 64000 + hard = 72000. Nhưng nó không hoạt động. Tôi cũng đã thử "* - nofile 64000" và tôi nhận được kết quả tương tự.
Icu

Sau khi đọc "Too Many Open Files", tôi nghĩ một khung cảnh hạt nhân sẽ được trọng các thiết lập limits.conf nhưng: "fs.file-max = 4933738"
Icu

@Icu hãy thử câu trả lời từ câu hỏi này: serverfault.com/questions/93234/ Có thể liên quan đến vỏ của bạn
Dennis Nolte

Tôi đã thêm 'phiên yêu cầu pam_limits.so' vào /etc/pam.d/ther và phiên chung nhưng nó không giúp ... Thay vào đó, tôi đã thêm 'ulimit -n' vào tập lệnh init của mình và nó hoạt động nhưng tôi tự hỏi tại sao tôi không thể có được các giá trị chính xác trong vỏ của mình.
Icu

19

Có một lỗi trong Debian. Để tăng ulimitbạn cần thêm phần này vào /etc/pam.d/common-sessiontệp:

session required pam_limits.so

/etc/security/limits.confthêm vào :

*               soft    nofile          65535
*               hard    nofile          65535

Sau đó khởi động lại hệ thống.


1
không cần tôi thực hiện bất kỳ thay đổi nào cho /etc/pam.d/common-sessiontập tin. nó hoạt động chỉ bằng cách thêm hai dòng khác vào limits.conftệp :-)
Francesco Casula

Bạn không cần phải khởi động lại.
David Goodwin

Điều này là tàn bạo. Trên debian 7 bây giờ, và điều này không hoạt động. Không chắc chắn phải làm gì :( - Tôi có thể mở một câu hỏi mới
NiCk Newman

12
Bùng nổ. *ký tự đại diện không hoạt động cho root. Tôi đã thêm rootthay vì *, và nó hoạt động. Cảm ơn bạn!
NiCk Newman

@FrancescoCasula - phiên bản nào của Debian? Chỉ cần cố gắng tìm hiểu xem đây có thực sự là một lỗi không, và liệu nó có còn tồn tại không ...
UpTheCux

0

Trong trường hợp của tôi về Apache trên Debian 10, điều trên không giúp được gì mặc dù điều này đã hoạt động:

echo "APACHE_ULIMIT_MAX_FILES='ulimit -n 16384'" >> /etc/apache2/envvars
service apache2 restart

Tôi đã kiểm tra với:

cat /proc/$pid/limits

.. mọi nơi $pidlà ID tiến trình của một trong các quy trình Apache.

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.