리눅스에서 프로그램을 운영할때 중요한점은 File descript를 관리하는 부분일 것입니다.
만약에 해당 프로그램에 File descript의 Max Open 이 1000대라고 가정할 때 소켓이 1000대이상 넘어가면
새로운 Client는 해당 서버에 접속 할 수 없는 문제가 발생 하므로 관리자는 항상 소켓을 확인하여 관리해야 합니다.
자 그럼 리눅스에서 해당 프로그램의 소켓이 몇개가 열려있고 통신중인지 확인할수 있는 방법에는 무엇이 있을까요?
1. 해당 프로그램의 PID 번호를 통해 가능합니다.
현재 리눅스에서 PID조회시 여기서는 gps_trackin이라는 프로그램을 기준으로 설명하겠습니다.
해당 프로그램이 동작중이며 PID값이 31688 이라는것을 알 수 있습니다.
자 그럼 해당 프로그램의 소켓은 몇개가 연결되어 있을지 한번 추적해 봅시다.
리눅스는 기본적으로 /proc/해당PID/fd 경로에 현재 열려있는 소켓의 정보들이 File 형태로 저장되어 있습니다.
현재 설명중인 해당 프로그램의 경우에는 Client가 6대가 운영중이라는 것을 알수 있습니다.
그런대 여기서 문제가 한가지 생긴다.. 예를들면 해당 프로그램같이 작은수의 유저를 관리하는 프로그램은 육안으로
확인이 가능하지만 만약에 게임같이 대규모 유저를 관리하는 경우라면 어떻게 현재 유저수를 알 수 있을까요?
ls -l | wc -l
위와같은 명령어를 해당 경로에서 입력시 현재 갯수를 화면에 출력해 줍니다.
이로써 서버 관리자는 유저를 관리할 수 있습니다.
'서버 > 리눅스' 카테고리의 다른 글
[Linux] Logrotate란? (0) | 2021.10.13 |
---|---|
[Linux] 파일 내용만 지우기 (0) | 2021.09.15 |
[Linux] TCP/IP란? (0) | 2021.09.13 |
[Linux] 시간 동기화 (0) | 2021.09.09 |
[Linux] 디스크 부족 / 용량 많은 파일 찾기 (0) | 2021.08.30 |
댓글