Linux日常应用管理
单元一 Linux常用系统命令
任务1.1 监控系统的状态
实现的是查看查看系统负载信息和查看系统内存、网卡、进程等信息
-
使用w查看当前系统的负载
[root@localhost ~]# w 19:27:11 up 42 days, 3:40, 1 user, load average: 0.01, 0.00, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 49.78.212.159 19:27 0.00s 0.00s 0.00s w
第一行从左面开始显示的信息依次为:时间,系统运行时间,登录用户数,平均负载。重点关注第一行中的 ‘load average:’ ,即负载均衡。
其中第一个数值表示1分钟内系统的平均负载值;第二个数值表示5分钟内系统的平均负载值;第三个数值表示15分钟系统的平均负载值。这个值的意义是,单位时间段内CPU活动进程数。当然这个值越大就说明你的服务器压力越大。
-
查看服务器有几个cpu
[root@localhost ~]# cat /proc/cpuinfo |head -n20 processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 63 model name : Intel(R) Xeon(R) CPU E5-26xx v3 stepping : 2 microcode : 1 cpu MHz : 2394.454 cache size : 4096 KB physical id : 0 siblings : 1 core id : 0 cpu cores : 1 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes 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 unfair_spinlock eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm xsaveopt pti retpoline bmi1 avx2 bmi2
‘/proc/cpuinfo’ 这个文件记录了cpu的详细信息,查看当前系统有几个cpu,可以使用这个命令:grep -c ‘processor’ /proc/cpuinfo, 查看物理cpu,需要查看关键字 “physical id”。
-
使用 vmstat 监控系统的状态
[root@localhost ~]# vmstat procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 183360 242760 1717108 0 0 13 16 3 3 1 1 99 0 0
vmstat命令打印的结果共分为6部分:procs, memory, swap, io, system, cpu. 请重点关注一下r b si so bi bo几列。
procs 显示进程相关信息
r | 表示运行和等待cpu时间片的进程数,如果长期大于服务器cpu的个数,则说明cpu不够用了; |
---|---|
b | 表示等待资源的进程数,比如等待I/O, 内存等,这列的值如果长时间大于1,则需要关注一下了 |
memory 内存相关信息
swpd | 表示切换到交换分区中的内存数量 |
---|---|
free | 当前空闲的内存数量 |
buff | 缓冲大小,(即将写入磁盘的) |
cache | 缓存大小,(从磁盘中读取的) |
swap 内存交换情况
si | 由交换区写入到内存的数据量 |
---|---|
so | 由内存写入到交换区的数据量 |
io 磁盘使用情况
bi | 从块设备读取数据的量(读磁盘) |
---|---|
bo | 从块设备写入数据的量(写磁盘) |
system 显示采集间隔内发生的中断次数
in | 表示在某一时间间隔中观测到的每秒设备中断数 |
---|---|
cs | 表示每秒产生的上下文切换次数 |
CPU 显示cpu的使用状态
us | 显示了用户下所花费 cpu 时间的百分比 |
---|---|
sy | 显示系统花费cpu时间百分比 |
id | 表示cpu处于空闲状态的时间百分比 |
wa | 表示I/O等待所占用cpu时间百分比 |
st | 表示被偷走的cpu所占百分比(一般都为0,不用关注) |
使用 vmstat 查看系统状态的时候,通常以下面的形式来查看,每隔一秒钟打印一次状态,共打印5次
[root@localhost ~]# vmstat 1 5
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 180632 243168 1718188 0 0 13 16 3 3 1 1 99 0 0
0 0 0 180456 243168 1718188 0 0 0 0 893 2493 1 0 99 0 0
0 0 0 180124 243168 1718188 0 0 0 88 1193 2755 1 1 98 0 0
0 0 0 180556 243168 1718196 0 0 0 0 1062 2564 0 1 99 0 0
0 0 0 180704 243168 1718200 0 0 0 0 944 2534 0 0 99 0 0
-
top 显示进程所占系统资源
[root@localhost ~]# top top - 19:39:46 up 42 days, 3:53, 1 user, load average: 0.00, 0.00, 0.00 Tasks: 189 total, 1 running, 188 sleeping, 0 stopped, 0 zombie Cpu(s): 0.4%us, 0.4%sy, 0.0%ni, 99.2%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 8059000k total, 7878848k used, 180152k free, 243384k buffers Swap: 0k total, 0k used, 0k free, 1718860k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 9028 root 20 0 5655m 826m 5244 S 0.7 10.5 279:10.10 java