답변:
프로세스가 스크립트를 통해 시작된 경우 데몬을 실행하기 직전에 스크립트에서 ulimit를 호출 할 수 있습니다.
사용자 또는 모든 사용자의 ulimit를 늘리려면 pam_limits
로그인시 적용되는 제한을 설정할 수 있습니다 . 이들은에서 설정됩니다 /etc/security/limits.conf
. 귀하의 경우 다음과 같이 할 수 있습니다.
* hard nofile 2048
"hard"는 초과 할 수없고 변경할 수없는 하드 한계를 나타냅니다. 소프트 제한은 사용자 (예 : 루트 기능이없는 사람)에 의해 변경 될 수 있지만 하드 제한을 넘어서는 안됩니다.
limits.conf
사용에 대한 자세한 내용 은를 읽으십시오 pam_limits
.
커널에 열려있는 파일의 "총 최대 값"도 있으며 다음을 사용하여 현재 설정을 확인할 수 있습니다.
cat /proc/sys/fs/file-max
그리고 다음과 같이 새로운 값을 설정하십시오.
echo "104854" > /proc/sys/fs/file-max
재부팅 사이에 구성을 유지하려면 추가
sys.fs.file-max=104854
에
/etc/sysctl.conf
현재 최대 파일 사용량을 확인하려면
[root@srv-4 proc]# cat /proc/sys/fs/file-nr
3391 969 52427
| | |
| | |
| | maximum open file descriptors
| total free allocated file descriptors
total allocated file descriptors
(the number of file descriptors allocated since boot)
0
되면 할당 된 파일 핸들 수가 사용 된 파일 핸들 수와 정확히 일치 함을 의미합니다.
49152 0 18446744073709551615
. 처음 두 열이 왜 세 번째 열에 합산되지 않는지 이해할 수 없습니다. 그리고 이용 가능한 1.8 조 조가 있다면, 그것들을 어떻게 사용했는지 알 수 없습니다.
다른 사람들이 말했듯이 /etc/security/limits.conf에서 사용자 또는 그룹당 특정 제한을 적용 할 수 있습니다.
참고 : ulimit -n은 소프트 한계를 나타냅니다.
ulimit -H -n
하드 한도를 보여줍니다.
예를 들어, 하드 한계 출력을 볼 것으로 예상되는 것처럼 파일 수를 1024에서 4096으로 늘리는 경우 ulimit -a 및 ulimit -n 출력이 상당히 혼란스러워집니다. 한도.
또한 이러한 제한은 로그인마다 적용되므로 새 셸에서 다시 로그인하고 변경 사항을 확인하고 기존 로그인에 전파 될 것으로 예상하지 마십시오.
장기 실행 프로세스를 시작하는 방법에 따라 다릅니다. 부팅시 (/etc/rcX.d/* 스크립트를 통해) 시작된 경우 기본 제한이 커널에 의해 설정되고 다시 컴파일하지 않고 조정할 수 없으므로 시작 스크립트에 ulimit 호출을 넣어야합니다.
사용하여 /etc/security/limits.conf
당신이 사용하는 경우 일할 수있는 cron
이 같은 항목으로, 예를 들어를 시작합니다 :
@reboot $HOME/bin/my-program
/etc/pam.d/cron이 pam_limits.so를 활성화하기 때문에 작동합니다.
이것을 /etc/security/limits.conf에 추가 할 수 있습니다
root soft nofile 100000
root hard nofile 100000
저장하고 재부팅하십시오.
아주 좋은 명령 ulimit -n
이지만 너무 많은 연결과 너무 많은 열린 파일에 문제가 있습니다.
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 519357
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 1024
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
ulimit -a
아닙니다 ulimit -n
.