Im lặng muộn nhưng điều này sẽ giúp mọi người khác có được câu trả lời cho câu hỏi này. Giới hạn thực tế cho số lượng tệp đang mở trong linux cũng có thể được tính bằng cách sử dụng số lượng mô tả tệp tối đa mà một quá trình có thể mở.
Tôi đã thấy giới hạn được thay đổi từ hệ thống này sang hệ thống khác. Từ trang người đàn ông getlimit, bạn có thể thấy rằng RLIMIT_NOFILE-1
chỉ định các giới hạn trong nội bộ.
Để kiểm tra giá trị RLIMIT_NOFILE, bạn có thể sử dụng câu lệnh dưới đây để nhận được một tuple
python -c "import resource; print(resource.getrlimit(resource.RLIMIT_NOFILE))"
Các tuple trả về kết quả là (Soflimit, hardlimit). Đối với tôi chạy trên nhiều hệ thống kết quả như dưới đây
(1024, 1048576) # on UBUNTU linux
(65536, 65536) # on amazon linux
(1024, 9223372036854775807) # on macos
Lưu ý: 9223372036854775807 con số này đơn giản có nghĩa là vô cùng. Bạn sẽ luôn đạt đến các giới hạn tài nguyên khác trước khi bạn đạt được điều này. Nếu bạn đã sửa đổi hardlimit trên một hệ thống ngoài nó là gì, bạn sẽ phải sửa đổi các thông số kernel.