Làm cách nào để tăng giới hạn tệp mở tối đa trên Ubuntu 18.04?


16

Tôi đã chạy ulimit -n 65536, thêm các dòng sau vào /etc/security/limits.conf:

*    soft nofile 65536
*    hard nofile 65536
alix soft nofile 65536
alix hard nofile 65536
root soft nofile 65536
root hard nofile 65536

Và thêm session required pam_limits.sovào cả hai:

  • /etc/pam.d/common-session
  • /etc/pam.d/common-session-noninteractive

fs.file-max = 65536để /etc/sysctl.d/60-file-max.conf.

Tuy nhiên, sau khi khởi động lại và chạy ulimit -ntrên phiên của tôi, tôi chỉ nhận được 4096 (trước đó là 1024).

Tôi đang thiếu gì?

Câu trả lời:


12

Từ hướng dẫn:

 -n     The maximum number of open file descriptors (most
        systems do not allow this value to be set)

systemd có một tùy chọn cho việc này:

$ more /etc/systemd/system.conf | grep NOFILE
#DefaultLimitNOFILE=

Nhưng điều này cũng chỉ dành cho các thiết lập người dùng đồ họa. Xóa #và bạn có thể đặt thành 65536.

Nhận xét từ Daniel Fernández :

DefaultLimitNOFILE=65536 

cũng có thể cần thiết trong

/etc/systemd/user.conf 

1
Quên đề cập đến, tôi cũng đã làm điều đó.
Alix Axel

1
@AlixAxel: Câu trả lời này có hiệu quả với tôi, ngoài ra * - nofile 16384(tôi chỉ cố gắng 16384) /etc/security/limits.conf.
Doug Smythies

65k là một giả định và dự kiến ​​sẽ có giới hạn mã hóa cứng ở phía trên của những gì được phép. Bạn có thể muốn bắt đầu thấp hơn như Doug đã chỉ định;)
Rinzwind

Ý bạn là gì bởi "Nhưng điều này cũng chỉ dành cho cài đặt người dùng đồ họa"?
sinan

1
Cài đặt ghi chú DefaultLimitNOFILE=65536Cũng có thể cần thiết trong/etc/systemd/user.conf
Daniel Fernández

1

Ubuntu 18.04 Từng bước

Hy vọng tất cả điều này sẽ giúp, khá lâu nhưng nó hoạt động (với bằng chứng)

Tôi đã bắt gặp chủ đề này trong khi cài đặt MongoDb trên Ubuntu 18.04

https://poseidev.com/blog/2009/06/04/set-ulimit-parameter-on-ub Ubuntu /

Như bạn có thể thấy nó khá cũ tuy nhiên nó hoạt động với tôi.

Đây là những gì tôi đã làm.

  1. Cài đặt được đề xuất MongoDb ( https://docs.mongodb.com/manual/reference/ulimit/#review-and-set-resource-limits )

    • -f (kích thước tệp): không giới hạn
    • -t (thời gian cpu): không giới hạn
    • -v (bộ nhớ ảo): không giới hạn [1]
    • -l (kích thước khóa trong bộ nhớ): không giới hạn
    • -n (mở tệp): 64000
    • -m (kích thước bộ nhớ): không giới hạn [1] [2]
    • -u (quy trình / chủ đề): 64000
  2. Kiểm tra giới hạn hiện tại của tôi

ubfox @ isdb-giai đoạn: ~ $ ulimit -a
kích thước tệp lõi (khối, -c) 0
kích thước seg dữ liệu (kbytes, -d) không giới hạn
lập lịch ưu tiên (-e) 0
kích thước tệp (khối, -f) không giới hạn
tín hiệu chờ xử lý (-i) 7873
bộ nhớ bị khóa tối đa (kbytes, -l) 16384
kích thước bộ nhớ tối đa (kbytes, -m) không giới hạn
mở tệp (-n) 1024
kích thước ống (512 byte, -p) 8
Hàng đợi tin nhắn POSIX (byte, -q) 819200
ưu tiên thời gian thực (-r) 0
kích thước ngăn xếp (kbytes, -s) 8192
thời gian cpu (giây, -t) không giới hạn
quy trình người dùng tối đa (-u) 7873
bộ nhớ ảo (kbytes, -v) không giới hạn
khóa tệp (-x) không giới hạn
  1. Ghi lại những gì cần thay đổi

    • kích thước khóa trong bộ nhớ , cần phải được đặt thành không giới hạn.
    • mở tập tin , cần phải được đặt thành 64000
    • quy trình / chủ đề * , cần được đặt thành 64000
  2. Ubuntu nói gì về cách thay đổi các giới hạn này?

$ man giới hạn.

TÊN
   terms.conf - tệp cấu hình cho mô-đun pam_limits

SỰ MIÊU TẢ
   Mô-đun pam_limits.so áp dụng các giới hạn ulimit, mức độ ưu tiên tốt và số lượng phiên đăng nhập đồng thời giới hạn cho các phiên đăng nhập của người dùng. Mô tả cú pháp tệp cấu hình này áp dụng cho

       tập tin /etc/security/limits.conf và tập tin * .conf trong 
       /etc/security/limits.d thư mục.
  1. Có vẻ khá rõ ràng, chỉnh sửa tệp /etc/security/limits.conf. Ok hãy tìm ra nó ....

Đây là sự khởi đầu của tập tin đó, và xem nó thậm chí còn có hướng dẫn trong khóa học, hãy nhớ rằng đây là nguồn mở được viết bởi những người tốt! :)

    vi /etc/security/limits.conf

    # /etc/security/limits.conf 
    Dòng #Each mô tả giới hạn cho người dùng ở dạng:                                                                   
    #                                                                                
    #Ở đâu:                                                               
    # có thể:
    # - tên người dùng

(Hãy xem tập tin nếu bạn muốn biết thêm chi tiết)
  1. Cuối cùng thực hiện các thay đổi. Vì MongoDb chạy dưới dạng nhóm mongodb và người dùng, nên chỉ giới hạn người dùng đó là một ý tưởng tốt. Tôi đã thấy '*' được sử dụng ở đây và ở đó, với tôi đó là một rủi ro bảo mật. Nó cung cấp cho tất cả và lặt vặt trên máy chủ những giới hạn này, có thể được sử dụng để tối đa hóa máy chủ của bạn. Vì vậy, hãy làm cho chúng chỉ dành cho người dùng mongodb.

Đây là những thay đổi của tôi: -

mongodb memlock mềm không giới hạn
mongodb cứng memlock không giới hạn
mongodb nofile mềm 64000
mongodb cứng nofile 64000
mongodb nproc 64000
mongodb cứng nproc 64000
  1. Cuối cùng, cuối cùng, hãy nhớ điều này trong mục man giới hạn.

    terms.conf - tệp cấu hình cho mô-đun pam_limits

    Tốt hơn là đảm bảo rằng mô-đun pam_limits được tải để tất cả các công cụ giới hạn này hoạt động. Để làm điều này, bạn chỉnh sửa /etc/pam.d/common-session. Tất nhiên điều này cũng có trong trang người đàn ông.

sudo vi /etc/pam.d/common-session

# Thêm cái này để đảm bảo pam_limits.so được tải.
phiên yêu cầu pam_limits.so

Khởi động lại sẽ hiển thị các giới hạn (đối với người dùng mongodb) đã được áp dụng. Nếu bạn đã áp dụng chúng bằng cách sử dụng '*', bạn có thể kiểm tra mà không phải chuyển sang người dùng mongodb. Chỉ cần thực hiện lệnh này.

$ ulimit -a

kích thước tệp lõi (khối, -c) 0
kích thước seg dữ liệu (kbytes, -d) không giới hạn
lập lịch ưu tiên (-e) 0
kích thước tệp (khối, -f) không giới hạn
tín hiệu chờ xử lý (-i) 7873
bộ nhớ bị khóa tối đa (kbytes, -l) không giới hạn
kích thước bộ nhớ tối đa (kbytes, -m) không giới hạn
mở tệp (-n) 64000
kích thước ống (512 byte, -p) 8
Hàng đợi tin nhắn POSIX (byte, -q) 819200
ưu tiên thời gian thực (-r) 0
kích thước ngăn xếp (kbytes, -s) 8192
thời gian cpu (giây, -t) không giới hạn
quy trình người dùng tối đa (-u) 64000
bộ nhớ ảo (kbytes, -v) không giới hạn
khóa tệp (-x) không giới hạn

Như bạn có thể thấy, Lubbly tưng bừng tất cả được đặt theo giới hạn mà chúng tôi muốn.

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.