Câu trả lời:
Câu trả lời của Justin cho bạn biết làm thế nào để nâng cao số lượng tập tin mở sẵn tổ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 tập tin đó 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 cấu hình trong /etc/pam.d/
.
Và, tôi phải thừa nhận, tôi không biết 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.
Theo bài viết Linux Tăng số lượng tối đa của tệp mở / mô tả tệp (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
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 tin mở tối đa ulimit
# ulimit -a
....
open files (-n) 65535
Nhưng nếu bạn đang cố gắng 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 thực hiện 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
systemd
cùng với những thay đổi đang diễn ra của nó đang gia tăng trên hệ sinh thái Linux. Mặc dù, tôi sẽ đề nghị chỉnh sửa câu trả lời cp -r /lib/systemd/system/mariadb.service /etc/systemd/system/
và thực hiện các thay đổi cho tệp đó, thay vì tệp dịch vụ toàn hệ thống do gói cung cấp.
BỀN VỮNG:
Bạn có thể tìm thấy cấu hình ở nơi khác nhau: /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ư cholimits.conf