최근에, 회사에서 채굴관련 웹 서버를 운영하는데 stratum 서버에 다수의 채굴기가 연결 되면서 서버 트래픽이 급격히 증가하면서 다운되는 현상이 있었다.
동시 접속자와 네트워크 트래픽이 증가하면 어떻게 처리를 할까 검색을 하던 중 ulimit 이라는 아주 최고의 설정을 발견했다.
ulimit 이란?
프로세스의 소켓 최대 개수를 늘려 자원 한도를 설정하는 명령어
라고 한다.
ulimit -a
로 전체적인 설정 값들을 볼 수 있으며,
ulimit -n
으로 현재 설정되어있는 ulimit 값을 볼 수 있습니다.
(참고로, 우리가 원하는 정보는 ulimit -n 명령어로도 충분하다.)
sudo vim /etc/security/limits.conf
에서 다음과 같이 설정해주면 된다.
맨 마지막 부분에 * - nofile 100000
해당 값을 넣어주고 서버 자체를 reboot 해준다.
그리고 다시 ulimit -n으로 확인해보면 기본 값(ubuntu 기준) 1024 -> 100000 으로 변경된걸 확인해볼 수 있다.
가장 중요한게, 시스템 설정이라 한 번 잘 못 수정했다가 reboot을 해버렸다가 재부팅이 안되는 진짜 살면서 있어서는 안 될 현상이 생긴다.
해당 설정은 필자가 ubuntu 에서 설정하고 재부팅해서 성공적으로 적용한 내용이다.
설정을 하기 전에, 서버 스냅샷을 꼭 찍는 것을 추천한다. (aws는 AMI를 활용하면 되겠다.)
'Server Engineering > Linux' 카테고리의 다른 글
Postgresql WAL(Write-Ahead Logging) 아카이브 및 풀 백업과 복구 (0) | 2019.05.22 |
---|---|
패키지 관리자를 통해 NGINX 최신 버전(Mainline/Stable) 설치하기 (0) | 2019.02.11 |
netcat(nc)를 이용해 포트 열기 (0) | 2018.05.11 |