查看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