Giới hạn phiên Shell
Các giới hạn được đặt qua ulimit
chỉ ảnh hưởng đến các quy trình được tạo bởi phiên shell hiện tại.
- "Giới hạn mềm" là giới hạn thực tế được sử dụng. Nó có thể được đặt, miễn là nó không lớn hơn "giới hạn cứng".
- "Giới hạn cứng" cũng có thể được đặt, nhưng chỉ ở một giá trị nhỏ hơn giá trị hiện tại và chỉ ở một giá trị không nhỏ hơn "giới hạn mềm".
- "Giới hạn cứng", cũng như giới hạn toàn hệ thống, có thể được tăng lên bởi
root
(quản trị viên) bằng cách thực hiện các lệnh cấu hình hệ thống hoặc sửa đổi các tệp cấu hình hệ thống.
Sau khi bạn chấm dứt phiên vỏ (bằng Ctrl+ D, exit
hoặc đóng Terminal.app
cửa sổ, vv), các thiết lập đã mất hết. Nếu bạn muốn cài đặt tương tự trong phiên shell tiếp theo, hãy thêm cài đặt vào tập lệnh khởi động shell.
LƯU Ý: Nếu bạn đang sử dụng bash
, thì nó nên ~/.bash_proile
hoặc ~/.bash_login
. Nếu bạn đang sử dụng các shell khác, nó có thể nên được ~/.profile
.
Giới hạn hệ thống (Yêu cầu khởi động lại để có hiệu lực)
Đối với 10.9 (Mavericks), 10.10 (Yosemite), 10.11 (El Capitan) và 10.12 (Sierra):
Bạn phải tạo một tệp tại /Library/LaunchDaemons/limit.maxfiles.plist
(chủ sở hữu : root:wheel
, mode 0644
:):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>limit.maxfiles</string>
<key>ProgramArguments</key>
<array>
<string>launchctl</string>
<string>limit</string>
<string>maxfiles</string>
<string>262144</string>
<string>524288</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>ServiceIPC</key>
<false/>
</dict>
</plist>
Bạn nên thay đổi số lượng theo nhu cầu của bạn. Chúng là "giới hạn mềm" ( 262144
) và "giới hạn cứng" ( 524288
) tương ứng. Để biết thêm thông tin, tham khảo trang hướng dẫn bằng cách chạy man launchd.plist
.
Cho 10.8 (Sư tử núi):
Bạn có thể thêm các dòng sau vào /etc/sysctl.conf
(chủ sở hữu : root:wheel
, mode 0644
:):
kern.maxfiles=524288
kern.maxfilesperproc=262144
Bạn nên thay đổi số lượng theo nhu cầu của bạn. Chúng lần lượt là "giới hạn toàn hệ thống" ( kern.maxfiles
) và "giới hạn trên mỗi quy trình" ( kern.maxfilesperproc
). Để biết thêm cài đặt, tham khảo trang hướng dẫn bằng cách chạy man sysctl
hoặc đọc mã nguồn tại /usr/include/sys/sysctl.h
.
Đối với Mac OS X cũ hơn (tôi đoán nó hoạt động vào ngày 10.7 (Lion) hoặc trước đó):
Bạn có thể thêm dòng sau vào /etc/launchd.conf
(chủ sở hữu : root:wheel
, mode 0644
:):
limit maxfiles 262144 524288
Bạn nên thay đổi số lượng theo nhu cầu của bạn. Chúng là "giới hạn mềm" ( 262144
) và "giới hạn cứng" ( 524288
) tương ứng.
Nếu hệ thống không cho phép bạn đặt giới hạn trên một giá trị nhất định ...
Hệ thống không cho phép bạn đặt giá trị cao hơn "tối đa cứng" (do Apple đề xuất). Để tăng "tối đa cứng" này, bạn phải mua "Máy chủ OS X" từ "Cửa hàng ứng dụng", sau đó bạn phải thực hiện lệnh sau một lần:
sudo serverinfo --setperfmode true
Điều này kích hoạt "chế độ hiệu suất máy chủ" trên máy của bạn. Sau đó, bạn có thể đặt mức tối đa theo cấu hình của máy (xem phần này) . Tôi đã thử điều này trước đây (trên Mountain và Mavericks) và nó hoạt động! Xin vui lòng xem bài viết của tôi ( ở đây ) để biết thêm thông tin.
Người giới thiệu