zoukankan      html  css  js  c++  java
  • 查看Linux系统内存、CPU、磁盘使用率和详细信息

    一、查看内存占用

    1、free

    # free -m

    以MB为单位显示内存使用情况

    [root@localhost ~]# free -m
                  total        used        free      shared  buff/cache   available
    Mem:          11852        1250        8668         410        1934        9873
    Swap:          6015           0        6015

    # free -h

    以GB为单位显示内存使用情况

    [root@localhost ~]# free -h
                  total        used        free      shared  buff/cache   available
    Mem:            11G        1.2G        8.5G        410M        1.9G        9.6G
    Swap:          5.9G          0B        5.9G

    # free -t

    以总和的形式查询内存的使用信息

    [root@localhost ~]# free -t
                  total        used        free      shared  buff/cache   available
    Mem:       12137332     1285344     8870628      420268     1981360    10105740
    Swap:       6160380           0     6160380
    Total:     18297712     1285344    15031008

    # free -s 5

    周期性的查询内存使用信息

    每5秒执行一次命令

    [root@localhost ~]# free -s 5
                  total        used        free      shared  buff/cache   available
    Mem:       12137332     1280796     8875008      420268     1981528    10110136
    Swap:       6160380           0     6160380

    解释:

    Mem:内存的使用情况总览表(物理内存)

    Swap:虚拟内存。即可以把数据存放在硬盘上的数据

    shared:共享内存,即和普通用户共享的物理内存值

    buffers:用于存放要输出到disk(块设备)的数据的

    cached:存放从disk上读出的数据

    total:机器总的物理内存

    used:用掉的内存

    free:空闲的物理内存

    注:物理内存(total)=系统看到的用掉的内存(used)+系统看到空闲的内存(free)

    2、查看某个pid的物理内存使用情况

    # cat /proc/PID/status | grep VmRSS

    [root@localhost ~]# pidof nginx
    27327 27326
    [root@localhost ~]#
    [root@localhost ~]# cat /proc/27327/status | grep VmRSS
    VmRSS:      2652 kB
    [root@localhost ~]#
    [root@localhost ~]# cat /proc/27326/status | grep VmRSS
    VmRSS:      1264 kB
    [root@localhost ~]#
    [root@localhost ~]# pidof java
    1973
    [root@localhost ~]# cat /proc/1973/status | grep VmRSS
    VmRSS:   1166852 kB

    由上面可知,nginx服务进程的两个pid所占物理内存为"2652+1264=3916k"

    3、查看本机所有进程的内存占比之和

    # cat mem_per.sh

    [root@localhost ~]# cat mem_per.sh
    #!/bin/bash
    ps auxw|awk '{if (NR>1){print $4}}' > /opt/mem_list
    awk '{MEM_PER+=$1}END{print MEM_PER}'  /opt/mem_list
    [root@localhost ~]#
    [root@localhost ~]# chmod 755 mem_per.sh
    [root@localhost ~]#
    [root@localhost ~]# sh mem_per.sh
    64.4
    [root@localhost ~]# 

    脚本配置解释:
    ps -auxw|awk '{print $3}'   表示列出本机所有进程的cpu利用率情况,结果中第一行带"%CPU"字符
    ps -auxw|awk '{print $4}'   表示列出本机所有进程的内存利用率情况,结果中第一行带"%MEM"字符
    ps auxw|awk '{if (NR>1){print $4}}  表示将"ps auxw"结果中的第一行过滤(NR>1)掉,然后打印第4行

    二、查看CPU使用情况

    1、top

    top后键入P看一下谁占用最大

    # top -d 5

    周期性的查询CPU使用信息

    每5秒刷新一次

    top - 02:37:55 up 4 min,  1 user,  load average: 0.02, 0.10, 0.05
    Tasks: 355 total,   1 running, 354 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  3.0 us,  2.8 sy,  0.0 ni, 94.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    # us:表示用户空间程序的cpu使用率(没有通过nice调度)
    # sy:表示系统空间的cpu使用率,主要是内核程序。
    # id:空闲cpu KiB Mem :
    1868660 total, 1081340 free, 578388 used, 208932 buff/cache KiB Swap: 4194300 total, 4194300 free, 0 used. 1123992 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2220 mysql 20 0 1307796 471172 7608 S 0.6 25.2 0:02.31 mysqld 349 root 20 0 0 0 0 S 0.4 0.0 0:01.14 kworker/0:3 644 root 20 0 0 0 0 S 0.4 0.0 0:00.17 xfsaild/dm-0 3489 root 20 0 146432 2268 1440 R 0.4 0.1 0:00.11 top 1 root 20 0 44500 7120 2596 S 0.2 0.4 0:01.69 systemd 283 root 39 19 0 0 0 S 0.2 0.0 0:00.18 khugepaged 2621 root 20 0 141264 5140 3896 S 0.2 0.3 0:00.18 sshd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.01 ksoftirqd/0 4 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 6 root 20 0 0 0 0 S 0.0 0.0 0:00.02 kworker/u256:0 7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh 9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/0 10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/1 11 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/2

     

    2、ps auxw(查看本机的进程所占cpu和mem的百分比情况)

    使用"ps auxw" 可以查看到本机的进程所占cpu和mem的百分比情况

    # ps auxw | head -1

    %CPU 进程的cpu占用率
    %MEM 进程的内存占用率

    [root@localhost ~]# ps auxw | head -1
    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    [root@localhost ~]#

    查看java进程所占本机的cpu百分比, 如下为0.2%

    # ps auxw |grep -v grep|grep -w java|awk '{print $3}'

    [root@localhost ~]# ps auxw |grep -v grep|grep -w java|awk '{print $3}'
    0.2

    查看java进程所占本机的内存百分比, 如下为30.0%

    # ps auxw |grep -v grep|grep -w java|awk '{print $4}'

    [root@localhost ~]# ps auxw |grep -v grep|grep -w java|awk '{print $4}'
    30.0

    3、查看本机所有进程的CPU占比之和

    # cat cpu_per.sh

    [root@localhost ~]# cat cpu_per.sh
    #!/bin/bash
    ps auxw|awk '{if (NR>1){print $3}}' > /opt/cpu_list
    awk '{CPU_PER+=$1}END{print CPU_PER}'  /opt/cpu_list
    [root@localhost ~]#
    [root@localhost ~]# chmod 755 cpu_per.sh
    [root@localhost ~]#
    [root@localhost ~]# sh cpu_per.sh
    44.5
    [root@localhost ~]#

    三、查看cpu信息(信息记录在/proc/cpuinfo中)

    # 总核数 = 物理CPU个数 X 每颗物理CPU的核数

    # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数

    1、查看虚拟机逻辑CPU的个数

    # cat /proc/cpuinfo| grep "processor"| wc -l

    [root@localhost ~]# cat /proc/cpuinfo| grep "processor"| wc -l
    6

    2、查看物理CPU个数

    # cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

    [root@localhost ~]# cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
    1

    3、列出CPU详细信息

    # lscpu

    服务器1:

    [root@localhost ~]# lscpu
    Architecture:          x86_64
    CPU op-mode(s):        32-bit, 64-bit
    Byte Order:            Little Endian
    CPU(s):                6
    On-line CPU(s) list:   0-5
    Thread(s) per core:    1
    Core(s) per socket:    6
    座:                 1
    NUMA 节点:         1
    厂商 ID:           GenuineIntel
    CPU 系列:          6
    型号:              15
    型号名称:        Intel(R) Core(TM)2 Duo CPU     T7700  @ 2.40GHz
    步进:              11
    CPU MHz:             2194.916
    BogoMIPS:            4389.83
    超管理器厂商:  KVM
    虚拟化类型:     完全
    L1d 缓存:          32K
    L1i 缓存:          32K
    L2 缓存:           4096K
    NUMA 节点0 CPU:    0-5
    Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc rep_good nopl eagerfpu pni ssse3 cx16 pcid sse4_2 x2apic hypervisor lahf_lm

    服务器2:

    [root@bogon ~]# lscpu
    Architecture:          x86_64
    CPU op-mode(s):        32-bit, 64-bit
    Byte Order:            Little Endian
    CPU(s):                8
    On-line CPU(s) list:   0-7
    Thread(s) per core:    1
    Core(s) per socket:    8
    Socket(s):             1
    NUMA node(s):          1
    Vendor ID:             GenuineIntel
    CPU family:            6
    Model:                 79
    Model name:            Intel(R) Xeon(R) CPU E7-4830 v4 @ 2.00GHz
    Stepping:              1
    CPU MHz:               1995.192
    BogoMIPS:              3990.38
    Hypervisor vendor:     VMware
    Virtualization type:   full
    L1d cache:             32K
    L1i cache:             32K
    L2 cache:              256K
    L3 cache:              35840K
    NUMA node0 CPU(s):     0-7
    Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf eagerfpu pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx hypervisor lahf_lm 3dnowprefetch epb dtherm arat pln pts

    4、查看每个物理CPU中core的个数(即核数)

    # cat /proc/cpuinfo| grep "cpu cores"| uniq

    [root@localhost ~]# cat /proc/cpuinfo| grep "cpu cores"| uniq
    cpu cores       : 6

    三、Linux下查看哪些进程占用的CPU和内存资源最多的方法

    1、获取占用CPU资源最多的10个进程

     # ps aux | head -1; ps aux | grep -v PID | sort -rn -k +3 | head -10

    [root@localhost ~]# ps aux | head -1; ps aux | grep -v PID | sort -rn -k +3 | head -10
    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root      9416  0.8  0.0 163544  6284 ?        Ss   08:38   0:00 sshd: root@pts/0
    root      3783  0.7  0.0  12072  2032 ?        S    May26 357:27 /bin/bash /usr/local/VMOptimizationTools/sangfor_guest_datareport
    root      9545  0.6  0.0 163224  5904 ?        Ss   08:38   0:00 sshd: root@notty
    root      3966  0.3  0.0  12704  2676 ?        S    May26 183:12 /bin/bash /usr/local/VMOptimizationTools/sangfor_update_ipc_callback
    root      3784  0.3  0.0  12560  2552 ?        S    May26 182:42 /bin/bash /usr/local/VMOptimizationTools/sangfor_sfping
    33       10431  0.3  0.1 409704 17832 ?        S    08:38   0:00 /usr/sbin/apache2 -k start
    root      3986  0.2  0.0  12452  2280 ?        S    May26 122:23 /bin/bash /usr/local/VMOptimizationTools/sangfor_vm_proxyd_w
    root      3781  0.2  0.0  12740  2672 ?        S    May26 115:59 /bin/bash /usr/local/VMOptimizationTools/sangfor_vm_proxyd
    500      23785  0.2  2.0 1790172 249528 ?      Ss   Jun25  11:30 oraclehelowin (LOCAL=NO)
    root      4053  0.1  0.0  12508  2520 ?        S    May26  75:16 /bin/bash /usr/local/VMOptimizationTools/sangfor_watchdog

    2、获取占用内存资源最多的10个进程

    # ps aux | head -1; ps aux | grep -v PID | sort -rn -k +4 | head -10

    [root@localhost ~]# ps aux | head -1; ps aux | grep -v PID | sort -rn -k +4 | head -10
    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    500      32304  0.0  5.7 1794892 700976 ?      Ss   May31   2:53 ora_dbw0_helowin
    500       4785  0.0  4.5 1797912 550132 ?      Ss   May29   4:03 ora_dbw0_helowin
    500       4796  0.0  3.5 1798308 426468 ?      Ss   May29   2:11 ora_smon_helowin
    500      25850  0.0  2.5 1810144 307340 ?      Ss   Jun17   0:10 oraclehelowin (LOCAL=NO)
    500      32471  0.0  2.4 1810184 299704 ?      Ss   Jun14   0:30 oraclehelowin (LOCAL=NO)
    500       3927  0.0  2.3 1791308 283440 ?      Ss   Jun26   0:13 oraclehelowin (LOCAL=NO)
    500       5432  0.0  2.1 1794272 261692 ?      Ss   May29   7:16 ora_cjq0_helowin
    500      23785  0.2  2.0 1790172 249528 ?      Ss   Jun25  11:30 oraclehelowin (LOCAL=NO)
    500      19092  0.0  2.0 1793248 253080 ?      Ss   Jun21   0:28 oraclehelowin (LOCAL=NO)
    500      32310  0.0  1.8 1794224 229200 ?      Ss   May31   1:25 ora_smon_helowin

    3、查看占用cpu最高的进程

    # ps aux | head -1; ps aux | grep -v PID | sort -rn -k +3 | head -1

    [root@localhost ~]# ps aux | head -1; ps aux | grep -v PID | sort -rn -k +3 | head -1
    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root      3783  0.7  0.0  12072  2032 ?        S    May26 357:32 /bin/bash /usr/local/VMOptimizationTools/sangfor_guest_datareport

    4、获取占用内存资源最高的进程

    # ps aux | head -1; ps aux | grep -v PID | sort -rn -k +4 | head -1

    [root@localhost ~]# ps aux | head -1; ps aux | grep -v PID | sort -rn -k +4 | head -1
    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    500      32304  0.0  5.7 1794892 700976 ?      Ss   May31   2:53 ora_dbw0_helowin

    四、Linux下查看某些进程的启动时间和运行时长

    比如查看java进程的启动时间和运行时长

    # ps -ef|grep -v grep|grep -w java|awk '{print $2}'

    # ps -eo pid,lstart,etime | grep 1973

    其中:

    Mon Jun 24 09:25:41 2019       为java进程的启动时间

    4-00:16:55                     为java进程的运行时长,天-小时-分钟-秒

    [root@localhost ~]# ps -ef|grep -v grep|grep -w java|awk '{print $2}'
    1973
    [root@localhost ~]#
    [root@localhost ~]# ps -eo pid,lstart,etime | grep 1973
     1973 Mon Jun 24 09:25:41 2019  4-00:16:55
    [root@localhost ~]#
    [root@localhost ~]# date
    Fri Jun 28 09:42:48 CST 2019

    查看所有进程的启动事件、运行时长

    # ps -eo user,pid,lstart,etime,cmd

    查看nginx进程启动的精确时间和启动后运行的时长

    # ps -eo pid,lstart,etime,cmd|grep nginx

    [root@nginx-proxy-client ~]# ps -eo pid,lstart,etime,cmd|grep nginx
     1418 Mon Jun 24 13:38:18 2019  3-20:21:05 nginx: master process /usr/local/nginx/sbin/nginx
     1419 Mon Jun 24 13:38:18 2019  3-20:21:05 nginx: worker process
     5543 Fri Jun 28 09:59:23 2019       00:00 grep --color=auto nginx
    [root@nginx-proxy-client ~]#
    [root@nginx-proxy-client ~]# date
    2019年 06月 28日 星期五 09:59:45 CST
    [root@nginx-proxy-client ~]#

    五、查看网络情况

    # ifconfig

    [root@localhost ~]# ifconfig 
    eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.2.80  netmask 255.255.255.0  broadcast 192.168.2.255
            inet6 fe80::20c:29ff:fe4c:ff47  prefixlen 64  scopeid 0x20<link>
            ether 00:0c:29:4c:ff:47  txqueuelen 1000  (Ethernet)
            RX packets 7866  bytes 632606 (617.7 KiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 215  bytes 31932 (31.1 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
            inet 127.0.0.1  netmask 255.0.0.0
            inet6 ::1  prefixlen 128  scopeid 0x10<host>
            loop  txqueuelen 0  (Local Loopback)
            RX packets 8  bytes 400 (400.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 8  bytes 400 (400.0 B)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

    # ip a

    [root@localhost ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:0c:29:4c:ff:47 brd ff:ff:ff:ff:ff:ff
        inet 192.168.2.80/24 brd 192.168.2.255 scope global eno16777736
           valid_lft forever preferred_lft forever
        inet6 fe80::20c:29ff:fe4c:ff47/64 scope link 
           valid_lft forever preferred_lft forever

    四、查看磁盘以及分区情况

    # df -Th

    查看分区、挂载情况

    [root@localhost ~]# df -Th
    Filesystem              Type      Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root xfs        15G  2.8G   13G  19% /
    devtmpfs                devtmpfs  903M     0  903M   0% /dev
    tmpfs                   tmpfs     913M     0  913M   0% /dev/shm
    tmpfs                   tmpfs     913M  8.6M  904M   1% /run
    tmpfs                   tmpfs     913M     0  913M   0% /sys/fs/cgroup
    /dev/sda1               xfs       297M  115M  183M  39% /boot
    tmpfs                   tmpfs     183M     0  183M   0% /run/user/0

    # lsblk

    查看磁盘情况

    [root@localhost ~]# lsblk 
    NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda               8:0    0   20G  0 disk 
    ├─sda1            8:1    0  300M  0 part /boot
    └─sda2            8:2    0   19G  0 part 
      ├─centos-root 253:0    0   15G  0 lvm  /
      └─centos-swap 253:1    0    4G  0 lvm  [SWAP]
    sr0              11:0    1    4G  0 rom  

    # fdisk -l

    查看详细的硬盘分区情况

    [root@localhost ~]# fdisk -l
    
    Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: dos
    Disk identifier: 0x0004a0a8
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *        2048      616447      307200   83  Linux
    /dev/sda2          616448    40478719    19931136   8e  Linux LVM
    
    Disk /dev/mapper/centos-root: 16.1 GB, 16106127360 bytes, 31457280 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    
    
    Disk /dev/mapper/centos-swap: 4294 MB, 4294967296 bytes, 8388608 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes

    end

  • 相关阅读:
    Python常用转换函数
    Python随机数
    sublime text的pylinter插件设置pylint_rc后提示错误
    使用Pydoc生成文档
    字符编码笔记:ASCII,Unicode和UTF-8
    Windows编程MessageBox函数
    魔方阵算法及C语言实现
    iOS通讯录整合,兼容iOS789写法,附demo
    谈谈iOS app的线上性能监测
    ReactiveCocoa代码实践之-更多思考
  • 原文地址:https://www.cnblogs.com/djlsunshine/p/10833343.html
Copyright © 2011-2022 走看看