개별 프로세스 또는 시스템 전체가 CPU 또는 메모리를 얼마나 소모하는지 파악합니다.
시스템 관리자는 높은 CPU/메모리/네트워크 사용률로 인해 애플리케이션이 느려지거나 응답하지 않는 사고를 처리해야 하는 경우가 많습니다. 서버가 하나의 프로세스만 호스트하는 경우 프로세스가 모든 리소스를 소비하는 시점을 쉽게 알 수 있습니다. 그러나 여러 서비스가 실행되고 있고 어떤 서비스가 모든 리소스를 먹고 있는지 찾아야 하는 공유 서버를 상상해 보십시오.
이를 즉시 수행할 수 있는 많은 모니터링 소프트웨어가 있습니다. 그러나 이러한 솔루션이 없거나 명령 기반 솔루션을 찾고 있다면 여기로 가십시오. 그들은 모두 무료입니다!
목차
맨 위
프로세스 개요를 보기 위해 top 또는 htop 결과를 살펴보는 것으로 시작할 수 있습니다.
아래에서 볼 수 있듯이 모든 프로세스에서 무엇을 활용하고 있는지에 대한 훌륭한 아이디어를 제공합니다. 첫 번째 것을 보면 MySQL은 CPU의 11.9%와 CPU의 2.5%를 차지합니다.
top - 11:57:33 up 0 min, 1 user, load average: 3.69, 0.96, 0.32 Tasks: 165 total, 2 running, 113 sleeping, 0 stopped, 0 zombie %Cpu(s): 21.0 us, 5.5 sy, 0.0 ni, 70.5 id, 1.7 wa, 0.0 hi, 1.3 si, 0.0 st KiB Mem : 7637308 total, 5802888 free, 849512 used, 984908 buff/cache KiB Swap: 0 total, 0 free, 0 used. 6495648 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1986 netdata 20 0 1738856 191560 22948 S 11.6 2.5 0:02.30 mysqld 3021 www-data 20 0 255288 78420 55484 S 6.6 1.0 0:01.55 php-fpm 3138 www-data 20 0 253096 79780 59228 S 6.6 1.0 0:00.92 php-fpm 3153 www-data 20 0 255116 79088 56472 S 5.0 1.0 0:00.70 php-fpm 3037 www-data 20 0 257200 81088 56216 S 4.3 1.1 0:01.50 php-fpm 3048 www-data 20 0 257088 78740 55380 S 4.3 1.0 0:01.46 php-fpm 3054 www-data 20 0 254160 72168 52108 S 3.7 0.9 0:01.32 php-fpm 3135 www-data 20 0 255084 75912 54836 S 3.7 1.0 0:00.91 php-fpm 3051 www-data 20 0 254096 73804 51964 S 3.0 1.0 0:01.38 php-fpm 2962 www-data 20 0 45280 7284 3488 R 2.0 0.1 0:00.22 openresty 1062 netdata 20 0 338748 76144 6720 S 1.0 1.0 0:01.31 netdata 1702 netdata 20 0 21852 4232 2352 S 1.0 0.1 0:00.34 apps.plugin 1729 netdata 20 0 18636 3280 2764 S 0.7 0.0 0:00.05 bash 1980 netdata 20 0 62008 12896 5796 S 0.7 0.2 0:00.14 redis-server 11 root 20 0 0 0 0 I 0.3 0.0 0:00.14 rcu_sched 1007 root 20 0 1347424 74524 38872 S 0.3 1.0 0:00.92 dockerd 1857 root 20 0 10600 5564 4276 S 0.3 0.1 0:00.03 containerd-shim 2045 root 20 0 9948 6028 5016 S 0.3 0.1 0:00.14 forego 2934 root 20 0 13616 8760 5928 S 0.3 0.1 0:00.07 docker-gen 2966 systemd+ 20 0 25784 7924 2340 S 0.3 0.1 0:00.06 nginx
top은 거의 모든 Linux 배포판에 설치됩니다.
용의자를 식별한 후에는 위에서 본 모든 것 대신 해당 프로세스에 집중할 수 있습니다. 여전히 top 명령을 사용할 수 있지만 일부 인수가 있습니다.
프로세스 ID(PID)를 알고 있다고 가정해 보겠습니다. 아래 명령을 사용할 수 있습니다.
상단 -p $PID
top -p 3102의 예 아래
top - 11:59:56 up 3 min, 1 user, load average: 0.72, 0.70, 0.31 Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie %Cpu(s): 7.1 us, 2.9 sy, 0.0 ni, 89.1 id, 0.3 wa, 0.0 hi, 0.7 si, 0.0 st KiB Mem : 7637308 total, 5802024 free, 783672 used, 1051612 buff/cache KiB Swap: 0 total, 0 free, 0 used. 6555636 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3102 www-data 20 0 329500 82376 60640 S 0.0 1.1 0:03.35 php-fpm
top과 함께 grep을 사용할 수도 있습니다. 아래는 Docker 사용률을 확인하는 예입니다.
[email protected]:~# top | grep docker 1007 root 20 0 1347424 74524 38872 S 0.3 1.0 0:01.38 dockerd 2934 root 20 0 14676 9652 5928 S 0.3 0.1 0:00.54 docker-gen 1007 root 20 0 1347424 74524 38872 S 0.3 1.0 0:01.39 dockerd 1007 root 20 0 1347424 74524 38872 S 1.0 1.0 0:01.42 dockerd 2934 root 20 0 14740 9652 5928 S 0.3 0.1 0:00.55 docker-gen 2934 root 20 0 14740 9652 5928 S 0.3 0.1 0:00.56 docker-gen
htop
상단과 유사하지만 더 많은 정보가 있습니다. 가능한 한 프로세스 경로를 식별하는 데 편리한 명령 열이 있습니다. 그리고 그것은 또한 다채롭다.
htop은 기본적으로 설치되어 있지 않을 수 있지만, 항상 아래와 같이 할 수 있습니다.
우분투에 htop 설치
apt-get install htop
CentOS/RHEL 8.x에 htop 설치
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm dnf update dnf install htop
시선
이름에서 알 수 있듯이 단일 화면에서 시스템 활용도를 볼 수 있습니다. 실행 중인 프로세스는 CPU 사용률에 따라 정렬됩니다.
아래와 같이 DNF를 사용하여 CentOS 8에 글랜스를 설치할 수 있습니다.
dnf install glances
CentOS7의 경우 YUM을 사용할 수 있습니다.
yum install glances
꼭대기
위에 나열된 것과 유사하지만 나중에 볼 수 있도록 출력을 파일에 기록하는 뛰어난 기능이 있습니다. 특정 시간대에 문제가 발생하는 패턴이 있다고 상상해 보세요. crontab 또는 기타를 통해 파일에 출력을 쓰도록 예약할 수 있으며 나중에 재생할 수 있습니다.
파일에 출력을 기록하려면:
atop -w filename
그리고 재생하려면:
atop -r filename
간격, 샘플 등과 같은 여러 인수를 지원하며 매뉴얼 페이지를 살펴보는 것이 좋습니다.
실시간 문제 해결에만 관심이 있는 경우 상단에서 실행하면 아래와 같이 표시됩니다.
아래와 같이 상단에 설치할 수 있습니다.
dnf install atop
추신
이제 ps 명령어를 확인해보자.
PID와 함께 ps 명령을 사용하여 CPU 및 메모리 사용률을 인쇄할 수 있습니다.
ps -p $PID -o %cpu,%mem
출력은 다음과 같아야 합니다.
[email protected]:~# ps -p 1048 -o %cpu,%mem %CPU %MEM 0.2 3.0 [email protected]:~#
nmon
CPU, 메모리, 디스크, 네트워크, NFS 및 가상 메모리 활용에 대한 대화형 명령줄 모니터링 도구입니다. 상위 프로세스(활용도별)를 보려면 nmon을 실행하고 t 버튼을 누릅니다.
아래와 같이 nmon을 설치할 수 있습니다.
dnf install nmon
모니터
모니터 서버 리소스, 데몬, 파일, 디렉토리, 파일 시스템 등을 모니터링하는 웹 기반 및 명령줄 오픈 소스 솔루션입니다.
Monit도 멋진 위젯을 얻었습니다.
경량 모니터링 소프트웨어. 그러나 여기에서 더 탐색할 것이 있습니다.
모니터릭스
Linux 서버를 모니터링하는 가벼운 오픈 소스 유틸리티입니다. 모니터릭스 HTTP가 내장되어 있어 웹에서 활용도 및 기타 사항을 확인할 수 있습니다. 기타 사용 보고서에는 다음이 포함됩니다.
- 커널/온도
- 파일 시스템 및 I/O
- 네트워크 트래픽
- 아파치/메일/FTP/Nginx
- MySQL/바니시/Memcached
또한 Monitorix는 경고 구성을 제공하므로 상황이 올바르지 않을 때 알림을 받을 수 있습니다. 클라우드 기반 서버를 관리하고 사전 모니터링 솔루션을 찾고 있을 때 좋은 선택이 될 것입니다.
넷데이터
넷데이터 시스템 리소스, 애플리케이션, 웹 서버, 데이터베이스, DNS, 메일, 하드웨어 센서 등에 대한 실시간 성능 모니터링입니다. 오픈 소스이며 시작하기 쉽습니다. 모든 데이터는 대화형으로 시각화할 수 있도록 수집, 저장 및 스트리밍됩니다. 데이터는 1초마다 수집되므로 아무것도 놓치지 않습니다.
많은 업계 리더들의 사랑을 받고 있습니다.
따라서 여러분이 기다리고 있는 것은 Linux 서버를 제어해 보십시오.
비탑
비탑 Linux 서버를 관리하는 데 도움이 되는 아름다운 UI와 완전히 상호작용하는 편리한 리소스 모니터입니다.
트리 보기에서 프로세스를 쉽게 시각화하고, 프로세스 목록에서 필터링하고, 많은 리소스를 관리할 수 있습니다. btop은 또한 네트워크 사용량을 보여주는 자동 크기 조정 그래프와 함께 제공됩니다.
게다가, 당신은 또한 디스크 속도와 완전한 I/O 활동을 확인할 수 있습니다.
Linux, FreeBSD 및 macOS에서 경험할 수 있는 것보다 더 많은 것이 있습니다.
결론
위의 도구들이 서버 활용도를 실시간으로 시각화하여 필요한 조치를 취하는 데 도움이 되기를 바랍니다. 방금 시스템 관리자로 시작하여 실습 교육을 받으려는 경우 다음을 확인하십시오. 유데미 코스.