Max-user-processes와 Open files에 대해서 잘 모릅니다.
Computer Science

Max-user-processes와 Open files에 대해서 잘 모릅니다.

Q. 현재 서버에서 몇 개의 연결까지 가능한가요? 

A. 모르겠다.

 

이 글은 모르는 것들만 잔뜩 모아놓은 글이니 넘어가셔도 됩니다.

 

 

리눅스에는 프로세스 당 별도의 스레드 제한이 없으며 시스템의 총 프로세스 수에 대한 제한만 있다. 스레드는 기본적으로 리눅스에서 공유 주소 공간이 있는 프로세스일 뿐이다. 

 

cat /proc/sys/kernel/threads-max를 통해 max-threads (시스템의 총 프로세스 수와 동일한가?)에 대한 값을 알 수 있다.

 

 

file-max는 커널에 설정된 max file 값인 것 같다. 여기서 파일이라는 것이 정확히 무엇을 의미하는지는 모르겠다.

threads-max는 리눅스에서 최대로 생성할 수 있는 쓰레드의 개수인 것 같다.

 

여기서 ulimit -u를 통해 유저 1명이 사용할 수 있는 최대 프로세스 수를 알 수 있다.

내 경우 ulimit -u 의 결과는 15621이 나온다. 그러면 유저 1명은 최대 15621개의 프로세스를 사용할 수 있고, 이는 max-user-processes값과 같으니 max-user-processes는 유저 1명이 사용할 수 있는 최대 프로세스의 수라는 의미?

 

그럼 open-files는 뭘까? open files는 프로세스가 가질 수 있는 소켓 포함 파일의 개수라고 한다. 그러면 1인당 15621개의 프로세스를 사용할 수 있고, 그 프로세스는 1024개의 소켓 포함 파일을 가질 수 있으니, 유저 1명당 이용할 수 있는 파일의 수는 1024 * 15621 개인건가? 

 

여기서 그럼, 유저 1명은 무엇을 의미하는 걸까? file-max는 커널에 설정된 max-file 값이라고 했는데, 유저 한명당 이용할 수 있는 파일의 수가 1024 * 15621이면 399661은 무엇을 나타내는 걸까?

 

완전 1도 모르겠다.