모든 프로세스에 대해 열린 파일 제한을 늘리려면 어떻게해야합니까?


32

ulimit를 사용할 수는 있지만 쉘 세션에만 영향을 미친다고 생각합니다. 모든 프로세스에 대한 제한을 늘리고 싶습니다. 이것은 Red Hat에 있습니다.


그런데 어떤 버전의 Red Hat이 있습니까? RHEL5?
mattdm

답변:


26

저스틴의 대답은 어떻게 사용할 수 열려있는 파일의 수를 인상하는 방법을 알려줍니다 전체 시스템에 관한 것이다. 그러나 전 세계적으로 사용자 당 한도를 높이는 방법을 묻는다고 생각합니다. 이에 대한 답은 다음 줄을 추가하는 것입니다 /etc/security/limits.conf.

*               soft    nofile            2048
*               hard    nofile            2048

*는 모든 사용자를 의미합니다.

해당 파일 자체와에 요약 문서가 man limits.conf있습니다. 이는에 pam_limits.so구성된 다양한 서비스를 위해 호출 되는 모듈을 통해 구현됩니다 /etc/pam.d/.

그리고 나는 그것이 1024의 기본값이 어디에서 왔는지 전혀 모른다 는 것을 인정해야합니다 . 그리고 저를 믿었습니다. pam_limits 모듈을 구성하지 않고 시도했지만 여전히 있습니다. 어딘가에 하드 코딩되어 있어야하지만 정확히 어디에 있는지 확실하지 않습니다.


2
흠 ... 나는 이것을 올바르게 설정했다. SSH를 종료하고 다시 들어 와서 소프트 한계가 여전히 1024로 설정되어 있습니다. "활성화"하기 위해 누락 된 것이 있습니까? 감사.
Joshua Pinter

- @mattdm 그것은 어떤 리눅스 배포판에 언급 된 파일이 아래에있을 것입니다 가치가 언급이다 /etc/limits.conf는
가이 아브라함

13

Linux에서 최대 열린 파일 / 파일 설명자 (FD) 수 증가 기사에 따르면에 항목을 추가하여 열린 파일 제한을 늘릴 수 있습니다 /etc/sysctl.conf.

다음과 같이 구성 지시문을 추가하십시오.

fs.file-max = 100000

그런 다음 파일을 저장하고 닫습니다. 변경 사항을 적용하려면 사용자가 로그 아웃했다가 다시 로그인해야하거나 다음 명령을 입력하면됩니다.

# sysctl -p

다음 명령으로 설정을 확인할 수도 있습니다.

# cat /proc/sys/fs/file-max

시스템 전체에 적용되는이 특정 설정에 대해 로그 아웃했다가 다시 로그인해야한다는 것에 회의적입니다. (그것은 sysctl에서 거의 모든 것을 간다 ...)
mattdm

13

Linux에서 최대 ulimit 열린 파일 수 늘리기

1. 단계 :를 열고이 sysctl.conf 줄을 추가하십시오 fs.file-max = 65536

$ vi /etc/sysctl.conf

새 줄을 추가하고

fs.file-max = 65536

저장하고 종료.

2. 단계 :

$ vi /etc/security/limits.conf

언급 된 아래에 추가하십시오.

* soft     nproc          65535
* hard     nproc          65535
* soft     nofile         65535
* hard     nofile         65535

저장하고 종료 확인 최대 열린 파일 ulimit

# ulimit -a

....
open files                      (-n) 65535

6

그러나 MariaDB 또는 다른 서비스 ( systemd 사용 ) 와 같은 서비스 의 열린 파일의 최대 수를 늘리려면 파일 .service에서 직접해야합니다.

/lib/systemd/system/<servicename>.service

이 같은 것입니다 :

[Unit]
Description=Some Daemon
After=syslog.target network.target

[Service]
Type=notify
LimitNOFILE=49152
ExecStart=/usr/sbin/somedaemon

[Install]
WantedBy=multi-user.target

완전한 대답은 여기에 있습니다 : CentOS 7에서 systemd에 의해 시작된 프로세스에 대한 nproc 증가


systemdLinux 에코 시스템에서 지속적인 변화와 함께 보편적 인 변화가 일어나고 있기 때문에이를 상향 조정해야합니다 . 그러나 cp -r /lib/systemd/system/mariadb.service /etc/systemd/system/패키지에서 제공하는 시스템 전체의 서비스 파일이 아니라 해당 파일에 대한 답변을 편집하고 해당 파일을 변경하는 것이 좋습니다.
ILMostro_7

3

보충 :

다른 곳에서 구성을 찾을 수 있습니다. /etc/security/limits.d/*.conf

나는 그것을 수정해야했다. 그것 없이는 작동하지 않았습니다. 형식은와 동일limits.conf


또한 CentOS 서버에서 설정을 완전히 사용하도록이 파일을 업데이트해야했습니다.
John Eisbrener 2012 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.