Linux 상용 명령 의 성능 명령

본 고 는 리 눅 스 의 상용 성능 통계 분석 명령,모니터링 프로 세 스 나 시스템 성능 을 소개 한다.주로 CPU(top,mpstat),메모리(vmstat,free),I/O(iostat),네트워크 성능(sar),시스템 로그 정보(demsg),프로 세 스 상태 보기(pidstat)를 포함한다.다음은 이 명령 들 의 사용 방법 을 간략하게 소개 한다.
mpstat,iostat,pidstat 와 sr 명령 은 sysstat 패 키 지 를 설치 해 야 합 니 다.sysstat 는 시스템 성능 모니터링 도 구 를 포함 하고 설치 방법 은 다음 과 같 습 니 다.

yum install sysstat # CentOS
apt-get install sysstat # Ubuntu
부하
CPU 부하(cpu load)는 특정한 시간 대 프로 세 스 가 시스템 에 미 치 는 압력 을 말한다.특정 시간 간격 으로 실행 대기 열 에 있 는 평균 프로 세 스 수 를 표시 합 니 다.프로 세 스 가 다음 조건 을 만족 시 키 면 실행 대기 열 에 있 습 니 다.
  • IO 작업 결 과 를 기다 리 고 있 지 않 습 니 다.
  • 대기 상태 에 주동 적 으로 들 어가 지 않 았 습 니 다(즉,'wait'를 호출 하지 않 았 습 니 다)
  • 정지 되 지 않 았 습 니 다(예:종료 대기)
  • 단일 CPU 만부 하 운행 시 cpuload 는 1 로 여러 CPU 또는 다 핵 일 때 다리 에 여러 차선 이 있 고 만부 하 운행 시 cpuload 값 은 CPU 수 또는 다 핵 수 입 니 다.CPU 부하 계산(단일 CPU 의 경우),1 분 안에 10 개의 작업 을 수행 하 는 것 이 만부 하 를 나타 낸다 고 가정 하면,1 분 에 30 개의 작업 을 수행 할 때 CPU 는 10 개 만 처리 할 수 있 고,나머지 20 개 는 처리 할 수 없습니다.cpuload=3;

    단일 핵 CPU
  • cpu load=1,만부 하 운행
  • cpu load=0.5,반 부하 운행
  • cpu load=1.7,과부하 운행
  • 일반적으로 모든 CPU 커 널 의 현재 활동 프로 세 스 수가 3 보다 많 지 않 으 면 시스템 운행 이 양호 합 니 다!
    만약 다 핵 cpu 가 필요 하 다 면,4 핵 cpu<12
    uptime
    uptime 명령 에 표 시 된 평균 부하 에는 CPU 에서 실행 중인 프로 세 스 와 중단 할 수 없 는 수면 상태(uninteruptible)I/O(보통 디스크 I/O)에서 실행 중인 프로 세 스 가 포함 되 어 있 습 니 다.
    
    [root@server ~]# uptime
     16:54:53 up 29 days, 2:02, 1 user, load average: 0.03, 0.03, 0.00
    [root@server ~]# cat /proc/loadavg
    0.03 0.03 0.00 3/166 16903
  • 은 최근 1 분,5 분,15 분 시스템 부하 의 이동 평균 치 를 나타 내 는데 이들 은 부하 가 시간 에 따라 변동 하 는 상황 을 공동으로 보 여 주 었 다.
  • 3:실행 중인 프로 세 스 수,166:전체 프로 세 스 수,16903:최근 실행 중인 프로 세 스 의 ID.
  • ps 와 top 명령
    ps 명령
    ps 명령 은 ProcessStatus 의 줄 임 말로 시스템 프로 세 스 정 보 를 보 는 데 사 용 됩 니 다.
  • -e,-A:다른 사용 자 를 포함 한 모든 프로 세 스 를 표시 합 니 다
  • -f:전체 형식 표시
  • -l:긴 목록 표시
  • -a:모든 프로 세 스,플러스-x 매개 변 수 는 제어 단말기 가 없 는 프로 세 스
  • 을 표시 합 니 다.
  • -u:username,지정 한 사용자 의 프로 세 스 를 표시 합 니 다.예 를 들 어 ps-u root
  • -x:현재 사용자 가 모든 터미널 에 있 는 프로 세 스 를 표시 합 니 다
  • -aux:모든 사용 자 를 포함 한 모든 프로 세 스 를 표시 합 니 다.그룹 별 상황
  • ps 상용 용법,보통 grep 와 조합 하여 사용
    1.dhcpd 프로 세 스 ps ax | grep dhcpd | grep -v grep  보이 기
    2. ps-ef모든 프로 세 스 보기
    3. ps-aux모든 프로 세 스 보이 기
    CPU 나 메모리 사용량 에 따라 프로 세 스 를 선택 합 니 다:
    
    ps -aux --sort -pcpu
    #  
    ps -aux --sort -pmem
    프로 세 스 종료
    
    #            , ,             
    Ctrl+C   
    
    # kill  
    kill -9   ID
    # killall  :           
    killall -9 dhclient
    top 명령
    ps 명령 은 현재 프로 세 스 의 스냅 샷 을 보 여 줍 니 다.top 은 시스템 성능 을 지속 적 으로 감시 할 수 있 습 니 다.
    프로 세 스 정 보 를 동적 으로 표시 합 니 다.
  • -n cpu 의 실행 상황 을 여러 번 가 져 옵 니 다.top-n 4:
  • 만 4 번 업데이트 합 니 다.
  • -d 간격,top-d 4:4 초 마다
  • 업데이트
  • -p 지정 한 포트 프로 세 스 의 데 이 터 를 가 져 옵 니 다.top-p 22
  • 지정 한 프로 세 스 의 cpu 를 1 초 간격 으로 20 회 감지 합 니 다.
    
    top -d 1 -n 20
    예시
    지정 한 pid 프로 세 스 의 cpu 정 보 를 인쇄 합 니 다.간격 은 1s 이 고 20 회 인쇄 합 니 다.

    프로 세 스 의 pid 보기:
    
    ps -ef | grep systemd

    순환 인쇄
    
    #     
    top -p 1 -n 1 | grep systemd | awk '{print $10}'
    #     20 
    for i in {1..20};do top -p 1 -n 1 | grep systemd | awk '{print $10}';sleep 1s;done
    
    for((i=0;i<20;i++));do top -p 1 -n 1 | grep systemd | awk '{print $10}';sleep 1s;done
    dmesg | tail
    기본적으로 최신 10 개의 시스템 정 보 를 표시 합 니 다.성능 문 제 를 일 으 키 는 오류 정 보 를 볼 수 있 습 니 다.
    1.최신 20 개 시스템 정보 표시
    
    [root@centos7 ~]# dmesg | tail -20
    [ 15.356358] RPC: Registered named UNIX socket transport module.
    [ 15.356360] RPC: Registered udp transport module.
    [ 15.356361] RPC: Registered tcp transport module.
    [ 15.356362] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [ 15.551529] type=1305 audit(1584428235.986:4): audit_pid=1054 old=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:auditd_t:s0 res=1
    [ 19.223990] NET: Registered protocol family 40
    [ 23.857606] ip6_tables: (C) 2000-2006 Netfilter Core Team
    [ 24.130255] Ebtables v2.0 registered
    [ 24.366128] Netfilter messages via NETLINK v0.30.
    [ 24.418582] ip_set: protocol 7
    [ 24.517273] IPv6: ADDRCONF(NETDEV_UP): ens33: link is not ready
    [ 24.521156] e1000: ens33 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
    [ 24.524658] IPv6: ADDRCONF(NETDEV_UP): ens33: link is not ready
    [ 24.524669] IPv6: ADDRCONF(NETDEV_CHANGE): ens33: link becomes ready
    [ 24.528687] IPv6: ADDRCONF(NETDEV_UP): ens34: link is not ready
    [ 24.532350] e1000: ens34 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
    [ 24.535760] IPv6: ADDRCONF(NETDEV_UP): ens34: link is not ready
    [ 24.574912] IPv6: ADDRCONF(NETDEV_UP): ens34: link is not ready
    [ 25.391535] nf_conntrack version 0.5.0 (16384 buckets, 65536 max)
    [ 25.525351] IPv6: ADDRCONF(NETDEV_CHANGE): ens34: link becomes ready
    [root@centos7 ~]#
    2.시 작 된 시스템 정보 20 개 표시
    
    [root@centos7 ~]# dmesg | head -20
    [ 0.000000] Initializing cgroup subsys cpuset
    [ 0.000000] Initializing cgroup subsys cpu
    [ 0.000000] Initializing cgroup subsys cpuacct
    [ 0.000000] Linux version 3.10.0-1062.el7.x86_64 ([email protected]) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Wed Aug 7 18:08:02 UTC 2019
    [ 0.000000] Command line: BOOT_IMAGE=/vmlinuz-3.10.0-1062.el7.x86_64 root=UUID=d7dc0c9e-a27d-4239-aba4-7c2e51d9fc93 ro crashkernel=auto spectre_v2=retpoline rhgb quiet LANG=en_US.UTF-8
    [ 0.000000] Disabled fast string operations
    [ 0.000000] e820: BIOS-provided physical RAM map:
    [ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009ebff] usable
    [ 0.000000] BIOS-e820: [mem 0x000000000009ec00-0x000000000009ffff] reserved
    [ 0.000000] BIOS-e820: [mem 0x00000000000dc000-0x00000000000fffff] reserved
    [ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000007fedffff] usable
    [ 0.000000] BIOS-e820: [mem 0x000000007fee0000-0x000000007fefefff] ACPI data
    [ 0.000000] BIOS-e820: [mem 0x000000007feff000-0x000000007fefffff] ACPI NVS
    [ 0.000000] BIOS-e820: [mem 0x000000007ff00000-0x000000007fffffff] usable
    [ 0.000000] BIOS-e820: [mem 0x00000000f0000000-0x00000000f7ffffff] reserved
    [ 0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fec0ffff] reserved
    [ 0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved
    [ 0.000000] BIOS-e820: [mem 0x00000000fffe0000-0x00000000ffffffff] reserved
    [ 0.000000] NX (Execute Disable) protection: active
    [ 0.000000] SMBIOS 2.7 present.
    [root@centos7 ~]#
    vmstat 1
    전 칭 가상 메모리 stat,가상 메모리 상태 통계 정 보 를 한 줄 씩 출력 합 니 다.
    
    [root@centos7 ~]# vmstat
    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
    r b swpd free buff cache si so bi bo in cs us sy id wa st
    1 0 0 1424832 2084 195100 0 0 47 4 45 55 0 0 99 1 0
    vmstat 1:1 초 에 한 번 씩 인쇄 합 니 다.
    
    [root@centos7 ~]#
    [root@centos7 ~]# vmstat 1 #1s    
    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
    r b swpd free buff cache si so bi bo in cs us sy id wa st
    1 0 0 1424472 2084 195120 0 0 28 2 30 37 0 0 99 1 0
    0 0 0 1424456 2084 195120 0 0 0 0 38 53 0 0 100 0 0
    0 0 0 1424456 2084 
    매개 변수 설명:
  • r:실행 대기 열 에서 프로 세 스 수량
  • b:IO 를 기다 리 는 프로 세 스 수량
  • swpd:사용 하 는 가상 메모리
  • free:사용 가능 한 메모리
  • buff:버퍼 로 사용 되 는 메모리 크기
  • cache:캐 시 에 사용 할 메모리 크기
  • us:사용자 프로 세 스 실행 시간(user time)
  • sy:시스템 프로 세 스 실행 시간(system time
  • id:남 은 시간(IO 대기 시간 포함),중앙 처리 장치 의 남 은 시간
  • wa:IO 대기 시간
  • free -m
    linux 메모리 사용 현황 보기
    
    [root@centos7 ~]# free -m
      total used free shared buff/cache available
    Mem:  1819  199 1471  9  148 1470
    Swap:  4095  0 4095
  • Mem:물리 적 메모리
  • totel:전체 물리 적 메모리 단 위 는 M
  • 이다.
  • used:사용 한 메모리
  • free:남 은 물리 적 메모리
  • 공유:공유 메모리
  • buff/cache:캐 시 메모리
  • mpstat -P ALL 1
    mpstat 는 Multiprocessor Statistics 의 줄 임 말로 CPU 성능 을 실시 간 으로 모니터링 합 니 다.mpstat -P ALL 1 2:1s 간격 으로 보고 서 를 인쇄 하고 모두 2 개 인쇄 합 니 다.
  • -P ALL:모든 CPU 모니터링
  • 1:간격 1s
  • 2:인쇄 횟수 2 회
  • 
    [root@centos7 ~]# mpstat
    Linux 3.10.0-1062.el7.x86_64 (centos7) 03/18/2020 _x86_64_ (4 CPU)
    
    04:41:47 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
    04:41:47 AM all 0.66 0.00 1.39 2.65 0.00 0.01 0.00 0.00 0.00 95.28
    [root@centos7 ~]#
    [root@centos7 ~]# mpstat -P ALL 1
    Linux 3.10.0-1062.el7.x86_64 (centos7) 03/18/2020 _x86_64_ (4 CPU)
    
    04:44:11 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
    04:44:11 AM all 0.39 0.00 0.82 1.54 0.00 0.01 0.00 0.00 0.00 97.24
    04:44:11 
    [root@centos7 ~]#
  • %usr:간격 시간 동안 사용자 상태의 CPU 시간(%),nice 값 을 포함 하지 않 음
  • %nice:nice 값 이 마이너스 프로 세 스 인 CPU 시간(%)
  • %sys:핵심 시간(%)
  • %iowait:하 드 디스크 IO 대기 시간(%)
  • %irq:하 드 인 터 럽 트 시간(%)
  • %soft:소프트 인 터 럽 트 시간(%)
  • %steal:가상 컴퓨터 관리자 가 다른 가상 프로세서 에 서 비 스 를 제공 할 때 가상 CPU 가 비 자발적인 대기 시간 에 걸 리 는 백분율
  • %guest:가상 프로 세 서 를 실행 할 때 CPU 가 걸 리 는 시간 비율
  • %idle:CPU 의 남 은 시간(%)
  • pidstat 1
    pidstat 는 모든 프로 세 스 의 자원 점용 상황 을 감시 하 는 데 사 용 됩 니 다.top 명령 과 유사 하지만 출력 을 덮어 쓰 지 않 습 니 다.데이터 가 시간 에 따라 변동 하 는 상황 을 관찰 하 는 데 유리 합 니 다.top 은 이전의 출력 을 덮어 씁 니 다.pidstat -p 1 1:-p 프로 세 스 번 호 를 지정 하고 1s 간격 으로 pid 를 1 로 인쇄 하 는 프로 세 스
    
    [root@centos7 ~]# pidstat
    Linux 3.10.0-1062.el7.x86_64 (centos7) 03/18/2020 _x86_64_ (4 CPU)
    
    
    04:52:29 AM UID PID %usr %system %guest %CPU CPU Command
    04:52:29 AM 0  1 0.05 0.19 0.00 0.24 0 systemd
    04:52:29 AM 0  2 0.00 0.00 0.00 0.00 3 kthreadd
    04:52:29 AM 0  6 0.00 0.00 0.00 0.00 0 ksoftirqd/0
    04:52:29 
  • PID:프로 세 스 ID
  • %usr:프로 세 스 가 사용자 공간 에서 cpu 를 차지 하 는 비율
  • %system:프로 세 스 가 커 널 공간 에서 cpu 를 차지 하 는 비율
  • %guest:프로 세 스 가 가상 컴퓨터 에서 cpu 를 차지 하 는 비율
  • %CPU:프로 세 스 가 cpu 의 백분율 을 차지 하고 각 CPU 의 사용량 의 총 계 는
  • 입 니 다.
  • CPU:프로 세 스 를 처리 하 는 cpu 번호
  • command:현재 프로 세 스에 대응 하 는 명령
  • iostat 1
    iostat 는 CPU 와 블록 장치(디스크 I/O)에 대한 통계 정 보 를 표시 하 는 데 사 용 됩 니 다.
    
    [root@centos7 ~]# iostat 1
    Linux 3.10.0-1062.el7.x86_64 (centos7) 03/18/2020 _x86_64_ (4 CPU)
    
    avg-cpu: %user %nice %system %iowait %steal %idle
      0.15 0.00 0.34 0.60 0.00 98.92
    
    
    Device:  tps kB_read/s kB_wrtn/s kB_read kB_wrtn
    sda  9.46 158.59 15.05 142895 13561
    scd0  0.02  1.14  0.00 1028  0
    avg-cpu:전체 cpu 사용 현황 통계 정보
    링크 ux 각종 장치 파일 은/dev 디 렉 터 리 에서 볼 수 있 습 니 다.
  • tps:초당 프로 세 스 가 디스크 장치 에 보 내 는 IO 읽 기,쓰기 요청 수량
  • kB_read/s:초당 드라이브 에서 읽 는 데이터 양
  • kB_wrtn/s:1 초 에 드라이브 에서 기록 한 데 이 터 량
  • kB read:읽 기 데이터 총량
  • kB wrtn:기록 데이터 총량
  • sar 명령
    sar(System Activity Reporter):시스템 활동 상황 보고,
    Linux 시스템 성능 분석 도구 입 니 다.디스크 I/O,CPU 효율,메모리 사용 등 을 분석 할 수 있 습 니 다.네트워크 성능 을 분석 하 는 방법 을 소개 합 니 다.
    sar -n DEV 1
    네트워크 트 래 픽 의 작업 부 하 를 검사 하면 네트워크 트 래 픽 이 이미 한도액 에 도 달 했 는 지 검사 할 수 있다.
    
    [root@centos7 dev]# sar -n DEV 1
    Linux 4.18.0-147.5.1.el8_1.x86_64 (iZ8vb54310gt89j8qct198Z) 12/19/2020 _x86_64_ (1 CPU)
    
    08:08:37 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
    08:08:38 PM eth0 4.00 2.00 0.23 0.27 0.00 0.00 0.00 0.00
    08:08:38 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
    08:08:38 PM docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
    sar -n TCP 1
    TCP 연결 상황 을 표시 합 니 다.시스템 부하 설명 에 사용 할 수 있 습 니 다.
    
    [root@centos7 dev]# sar -n TCP,ETCP 1
    Linux 4.18.0-147.5.1.el8_1.x86_64 (iZ8vb54310gt89j8qct198Z) 12/19/2020 _x86_64_ (1 CPU)
    
    08:15:48 PM active/s passive/s iseg/s oseg/s
    08:15:49 PM 0.00 0.00 1.00 1.00
    
    08:15:48 PM atmptf/s estres/s retrans/s isegerr/s orsts/s
    08:15:49 PM 0.00 0.00 0.00 0.00 0.00
  • active/s:능 동적 연결 수,로 컬 초당 생 성 된 TCP 연결 수
  • passive/s:수 동적 연결 수,원 격 초당 생 성 된 TCP 연결 수
  • retrans/s:초당 TCP 재 전송 횟수
  • 리 눅 스 상용 명령 의 성능 명령 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 리 눅 스 상용 명령 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 바 랍 니 다!

    좋은 웹페이지 즐겨찾기