it-swarm-vi.com

Làm cách nào để tăng giới hạn tệp mở cho tất cả các quy trình?

Tôi có thể sử dụng ulimit nhưng tôi nghĩ rằng điều đó chỉ ảnh hưởng đến phiên Shell của tôi. Tôi muốn giới hạn tăng cho tất cả các quy trình. Đây là trên Red Hat.

34
user5554

Câu trả lời của Justin cho bạn biết cách tăng số lượng tệp đang mở tổng cộng cho toàn bộ hệ thống. Nhưng tôi nghĩ bạn đang hỏi làm thế nào để tăng giới hạn cho mỗi người dùng trên toàn cầu. Câu trả lời cho điều đó là thêm các dòng sau vào /etc/security/limits.conf:

*               soft    nofile            2048
*               hard    nofile            2048

(Trong đó * có nghĩa là tất cả người dùng.)

Có một số tài liệu tóm tắt trong chính tệp đó và trong man limits.conf. Điều này được thực hiện thông qua pam_limits.so mô-đun được gọi cho các dịch vụ khác nhau được định cấu hình trong /etc/pam.d/.

Và, tôi phải thừa nhận, tôi có không có ý tưởng nơi 1024 mặc định đó đến từ đâu. Và tin tôi đi, tôi đã nhìn. Tôi thậm chí đã thử mà không có mô-đun pam_limits được cấu hình, và nó vẫn ở đó. Nó phải được mã hóa cứng ở một nơi nào đó, nhưng tôi không chắc chắn chính xác ở đâu.

27
mattdm

Tăng số lượng tối đa của tệp mở ulimit trong Linux

1.Bước: mở sysctl.conf và thêm dòng này fs.file-max = 65536

$ vi /etc/sysctl.conf

thêm dòng mới và

fs.file-max = 65536

lưu và thoát.

2.Bước:

$ vi /etc/security/limits.conf

và thêm vào bên dưới đề cập

* soft     nproc          65535
* hard     nproc          65535
* soft     nofile         65535
* hard     nofile         65535

lưu và thoát kiểm tra tệp mở tối đa ulimit

# ulimit -a

....
open files                      (-n) 65535
14
minhas23

Theo bài viết Linux Tăng số lượng tệp/tệp mô tả tệp tối đa (FD) , bạn có thể tăng giới hạn tệp mở bằng cách thêm một mục vào /etc/sysctl.conf.

Nối một lệnh cấu hình như sau:

fs.file-max = 100000

Sau đó lưu và đóng tệp. Người dùng cần đăng xuất và đăng nhập lại để các thay đổi có hiệu lực hoặc họ chỉ cần gõ lệnh sau:

# sysctl -p

Bạn cũng có thể xác minh cài đặt của mình bằng lệnh:

# cat /proc/sys/fs/file-max
14
Justin Ethier

Nhưng nếu bạn đang cố tăng số lượng tệp mở tối đa của dịch vụ như MariaDB hoặc thứ gì khác (sử dụng systemd) bạn phải làm trực tiếp trong tệp .service

/lib/systemd/system/<servicename>.service

Sẽ là một cái gì đó như thế này:

[Unit]
Description=Some Daemon
After=syslog.target network.target

[Service]
Type=notify
LimitNOFILE=49152
ExecStart=/usr/sbin/somedaemon

[Install]
WantedBy=multi-user.target

Câu trả lời hoàn toàn nằm ở đây: Tăng nproc cho các quy trình được khởi chạy bởi systemd trên CentOS 7

8
Matheus Baldasso

BỀN VỮNG:

Bạn có thể tìm thấy cấu hình ở nơi khác: /etc/security/limits.d/*.conf

Tôi đã phải sửa đổi nó. Nó đã không làm việc mà không có nó. Định dạng giống như với limits.conf

3
Waldemar Wosiński