최근 VM에 암복호화 솔루션을 설치하면서 공식 문서 대신 직접 설치 경로와 관련 로그 파일을 찾아가는 과정이 있었습니다. 그 과정에서 리눅스와 유닉스 환경에서 메모리, 디스크, 네트워크 등의 상태를 점검하고 문제를 해결하는 다양한 명령어들을 활용하게 되었는데요. 이번 포스팅에서는 그 경험을 공유하며 자주 사용하는 명령어들을 정리해보려 합니다.
1. 디스크 사용량 확인 및 분석
시스템에서 디스크 용량이 가득 찼다는 알림을 받으면, 우선 어느 경로에서 많은 파일이 쌓였는지 확인해야 합니다.
1-1. 전체 디스크 상태 확인
- df -h
사람이 읽기 쉬운 단위(GB/MB)로 파일 시스템의 전체 사용량을 확인합니다.
이를 통해 어느 파티션이 거의 가득 찼는지 빠르게 파악할 수 있습니다.
1-2. 특정 경로 내 용량 많은 디렉터리/파일 찾기
최상위 디렉터리 용량 확인루트(/) 아래 각 폴더의 용량을 요약하여 확인할 수 있습니다.
하위 디렉터리에서 큰 파일/폴더 찾기/var와 같이 용량이 클 것으로 예상되는 디렉터리에서 가장 많은 용량을 차지하는 파일 또는 폴더 10개를 정렬해 보여줍니다.
- du -ah /var | sort -rh | head -10
특정 크기 이상의 파일 검색1GB 이상인 파일을 시스템 전체에서 검색하여 불필요한 파일을 정리할 때 유용합니다.
- find / -type f -size +1G 2>/dev/null
2. 메모리 사용 현황 점검
VM 환경에서 메모리 부족 현상이 발생할 경우, 어떤 프로세스가 메모리를 많이 사용하는지 확인하는 것이 중요합니다.
2-1. 메모리 전체 상태 확인
- free -m
메모리의 총 용량, 사용 중인 용량, 캐시 용량 등을 MB 단위로 확인할 수 있습니다.
2-2. 프로세스별 메모리 사용량 확인
메모리 사용량 높은 프로세스 정렬메모리 사용률이 높은 상위 10개의 프로세스를 확인할 수 있습니다.
- ps aux --sort=-%mem | head -10
실시간 모니터링또는를 사용하여 실시간으로 메모리와 CPU 사용 현황을 점검할 수 있으며, Shift + M로 메모리 기준 정렬도 가능합니다.
2-3. 캐시 메모리 관리
- 캐시 메모리 해제
echo 3 > /proc/sys/vm/drop_caches sync
캐시가 과도하게 쌓여 있는 경우, 임시로 캐시를 비워 메모리를 확보할 수 있습니다. 단, 캐시 해제는 시스템 성능에 영향을 줄 수 있으니 신중하게 사용해야 합니다.
3. 네트워크 트래픽 분석 (TCPDump 활용)
애플리케이션의 네트워크 트래픽을 분석할 때 TCPDump는 매우 유용한 도구입니다.
3-1. 기본적인 패킷 캡처
네트워크 인터페이스 선택 및 캡처 시작먼저 사용 가능한 인터페이스 목록을 확인한 후, 원하는 인터페이스에서 패킷 캡처를 시작합니다.
- tcpdump -D tcpdump -i eth0
특정 IP 또는 포트 필터링특정 IP나 포트를 대상으로 하는 트래픽만 캡처할 수 있습니다.
- tcpdump -i eth0 host 172.111.222.100 tcpdump -i eth0 port 80
3-2. 패킷 상세 분석 및 저장
- 패킷 내용 상세 출력 (HEX 및 ASCII)
tcpdump -X -i eth0 port 80
- 전체 패킷 캡처 및 파일 저장
tcpdump -i eth0 -s 0 -w capture.pcap
4. 애플리케이션 및 서비스 관리
솔루션이 VM에 설치된 경우, 애플리케이션 관리와 서비스 상태 점검도 매우 중요합니다.
4-1. 프로세스 관리
- 프로세스 조회 및 종료
ps aux | grep <솔루션명 또는 관련 키워드>
kill -9 <PID>
pkill -9 <프로세스명>
설치 경로나 로그 파일 위치를 찾기 위해 관련 프로세스를 조회하고, 필요시 종료하는 과정이 필요할 수 있습니다.
4-2. 서비스 관리 (systemd 기반)
- 서비스 상태 확인 및 재시작
systemctl status <서비스명>
systemctl restart <서비스명>
서비스를 재시작하거나 상태를 확인하여 애플리케이션의 정상 작동 여부를 점검할 수 있습니다.
5. 기타 유용한 명령어
애플리케이션 로그를 모니터링하고, 실시간 시스템 상태를 확인할 수 있는 명령어들도 함께 정리합니다.
5-1. 로그 모니터링
- 실시간 로그 확인
로그 파일의 내용을 실시간으로 모니터링하면서 문제 발생 시 원인을 분석할 수 있습니다.
5-2. 실시간 시스템 상태 모니터링
- watch 명령어 활용
1초 간격으로 메모리 상태를 지속적으로 확인할 수 있습니다.
5-3. 네트워크 포트 사용 확인
- 포트 사용 현황 확인
netstat -tulnp | grep 80 ss -tulnp | grep 80
네트워크 포트와 연결된 프로세스를 확인하는 데 유용합니다.
결론
공식 문서가 부족한 상황에서, VM에 설치된 암복호화 솔루션의 설치 경로와 관련 로그 파일을 직접 찾아가며 시스템 상태를 점검했던 경험은 매우 유익했습니다. 위에서 소개한 명령어들을 활용하면, 디스크와 메모리 사용 현황, 네트워크 트래픽, 애플리케이션 상태 등 다양한 측면에서 시스템을 효과적으로 관리할 수 있습니다. 여러분도 필요에 따라 이 명령어들을 적용하여 보다 안정적인 시스템 운영에 도움이 되시길 바랍니다.