文章目录
-
- 1. 硬件相关
-
- 1.1 网卡
- 1.2 内存
-
- 1.2.1 free - 查看系统内存信息
-
- 1.2.1.1 使用方式
- 1.2.1.2 举例说明
- 1.2.2 vmstat - 虚拟内存统计
-
- 1.2.2.1 使用方式
- 1.2.2.2 举例说明
-
- 1.2.2.2.1 使用虚拟内存显示虚拟内存
- 1.2.2.2.2 显示活跃和非活跃内存
- 1.2.2.2.3 查看内存使用的详细信息
- 1.3 numa
- 1.4 超线程
- 1.5 时钟源
- 1.6 raid
- 1.7 文件
- 1.8 磁盘
-
- 1.8.1 iostat - I/O信息统计
-
- 1.8.1.1 使用方式
- 1.8.1.2 举例说明
-
- 1.8.1.2.1 显示所有设备的负载情况
- 1.8.1.2.2 所有信息定期显示
- 1.8.1.2.3 磁盘统计信息只显示
- 1.8.1.2.4 查看扩展信息
- 1.8.1.2.5 只查看CPU的统计信息
- 1.8.2 iotop - 磁盘的动态显示I/O统计信息
-
- 1.8.2.1 使用方式
- 1.8.2.2 举例说明
- 1.9 sn
- 1.10 CPU
-
- 1.10.1 mpstat - CPU信息统计
-
- 1.10.1.1 使用方式
- 1.10.1.2 举例说明
-
- 1.10.1.2.1 显示CPU信息统计
- 1.10.1.2.2 显示指定CPU信息的统计
- 1.11 sar - 收集系统信息
-
- 1.11.1 使用方式
- 1.11.2 举例说明
-
- 1.11.2.1 查看系统CPU整体负
- 1.11.2.2 显示运行队列的大小
- 1.11.2.3 显示系统内存的使用状态
- 1.11.2.4 显示缓冲区的使用情况
- 1.11.2.5 显示网络的运行状态
- 1.11.2.6 检查系统磁盘的读写性能
- 2. 容器相关
-
- 2.1 docker
- 2.2 kubernetes
- 3. 快捷方式
-
- 3.1 切屏
- 3.2 快速命令
- 3.3 vim快捷方式
- 4. 问题排查相关
-
- 4.1 流程管理命令
-
- 4.1.1 ps - 查看进程
-
- 4.1.1.1 使用方式
- 4.1.1.2 命令输出后第一行参数的解释
- 4.1.2 kill - 结束进程
-
- 4.1.2.1 使用方式
- 4.1.2.2 举例说明
-
- 4.1.2.2.1 列出所有信号的名称
- 4.1.2.2.2 终止进程
- 4.1.3 killall - 流程通过流程名终止
-
- 4.1.3.1 使用方式
- 4.1.3.2 举例说明
-
- 4.1.3.2.1 定期任务服务流程终止
- 4.1.3.2.2 终止指定用户的所有过程
- 4.1.4 pkill - 流程通过流程名终止
-
- 4.1.4.1 使用方式
- 4.1.4.2 举例说明
-
- 4.1.4.2.1 流程通过流程名终止
- 4.1.4.2.2 通过终端名终止流程
- 4.1.4.2.3 用户名终止流程
- 4.1.5 top - 实时显示系统中各过程的资源占用情况
-
- 4.1.5.1 使用方式
- 4.1.5.2 举例说明
-
- 4.1.5.2.1 显示过程信息
- 4.1.5.2.2 按使用内存排序
- 4.1.5.2.3 过程信息以批处理模式显示
- 4.1.5.2.4 显示过程的完整路径
- 4.1.5.2.5 补充其他用途
- 4.1.6 nohup - 用户退出系统的过程继续工作
-
- 4.1.6.1 使用方式
- 4.1.6.2 举例说明
- 4.1.7 strace - 系统调用跟踪过程
-
- .1.7.1 使用方式
- 4.1.7.2 举例说明
-
- 4.1.7.2.1 排查Nginx 403 forbidden错误
- 4.1.7.2.2 只跟踪与文件操作有关的系统调用(使用过滤器)
- 4.1.7.2.3 通过pid跟踪进程
- 4.1.7.2.4 跟踪系统调用统计
- 4.1.7.2.5 重定向输出
- 4.1.7.2.6 对系统调用进行计时
- 4.1.8 ltrace - 跟踪进程调用库函数
-
- 4.1.8.1 使用方式
- 4.1.8.2 举例说明
- 5. 网络相关
-
- 5.1 tcpdump - 监听网络流量
-
- 5.1.1 使用方式
- 5.1.2 举例说明
-
- 5.1.2.1 不加参数运行tcpdump命令监听网络
- 5.1.2.2 精简输出信息
- 5.1.2.3 监听指定网卡收到的数据包
- 5.1.2.4 监听指定主机的数据包
- 5.1.2.5 监听指定端口的数据包
- 5.1.2.6 监听指定协议的数据包
- 5.1.2.7 利用tcpdump抓包详解tcp/ip连接和断开过程的案例
- 5.2 nmap - 网络探测工具和安全/端口扫描器
-
- 5.2.1 使用方式
- 5.2.2 举例说明
-
- 5.2.2.1 查看主机当前开放的端口
- 5.2.2.2 扫描主机的指定端口
- 5.2.2.3 扫描局域网内所有的IP
- 5.2.2.4 探测目标主机的服务和操作系统的版本
1. 硬件相关
1.1 网卡
lspci | grep -i eth #查询网卡信息,可查询网卡数量,型号等
ethtool ethX #查询eth*网口基本信息
ethtool –i ethX #查询ethX网口的相关信息
ethtool –d ethX #查询ethX网口注册性信息
ethtool –S ethX #查询ethX网口收发包统计
dmesg | grep -i eth
//更改网卡名:前提网卡down掉且onboot=yes
ip link set [$现在的名字] name [$预期的名字] #重启会失效
//查询网口对应的交换机口
tcpdump -i eth0 -c 1 -n -e -v ether proto 0x88cc 2>/dev/null | egrep 'Subtype Interface Name|System Name'|awk -F':' '{print $2}'
1.2 内存
1.2.1 free - 查看系统内存信息
1.2.1.1 使用方式
参数选项 | 解释说明 |
---|---|
-b | 以Byte为单位显示内存的使用情况 |
-m | 以MB为单位显示内存的使用情况@ |
-K | 以KB为单位显示内存的使用情况 |
-h | 以人类可读的形式显示内存的使用情况@ |
-t | 显示内存总和列 |
-s <间隔秒数> | 根据指定的间隔秒数持续显示内存的使用情况@ |
-o | 不显示系统缓冲区列 |
1.2.1.2 举例说明
(1)查看系统内存
[root@nginx ~]# free #不加参数默认显示的是字节数,很难读懂
total used free shared buffers cached
Mem: 1004412 85788 918624 0 6168 22904
-/+ buffers/cache: 56716 947696
Swap: 2031608 0 2031608
[root@nginx ~]# free -m #使用-m选项,以MB为单位显示内存的使用情况
total used free shared buffers cached
Mem: 980 83 897 0 6 22
-/+ buffers/cache: 55 925
Swap: 1983 0 1983
(2)定时查询内存
[root@nginx ~]# free -s 10 #使用-s选项定时刷新内存的使用情况,单位为秒
total used free shared buffers cached
Mem: 1004412 85888 918524 0 6168 22932
-/+ buffers/cache: 56788 947624
Swap: 2031608 0 2031608
(3)检查使用超过100m的进程
cat /proc/slabinfo |awk '{if($3*$4/1024/1024 > 100){print $1,$3*$4/1024/1024} }'
1.2.2 vmstat - 虚拟内存统计
1.2.2.1 使用方式
参数选项 | 解释说明 |
---|---|
-a | 显示活跃和非活跃内存 |
-f | 显示从系统启动至今的fork进程数量 |
-m | 显示slab信息 |
-n | 只在开始时显示一次各字段名称 |
-s | 显示内存相关统计信息及多种系统活动数量@ |
-d | 显示磁盘相关统计信息 |
-p | 显示指定磁盘分区统计信息 |
-S | 使用指定单位显示。参数有k,K,m,M,分别代表1000,1024,1000000,1048576字节(byte)。默认单位为K(1024byte) |
-t | 统计信息带上时间戳 |
1.2.2.2 举例说明
1.2.2.2.1 显示虚拟内存的使用情况
[root@nginx ~]# 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 915796 8792 22900 0 0 1188 54 203 474 2 6 90 1 0
[root@nginx ~]# vmstat 5 #表示每5秒钟更新一次输出信息,循环输出,按Ctrl + C组合键停止输出
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 915796 8792 22928 0 0 343 24 64 144 1 2 97 0 0
[root@nginx ~]# vmstat 5 6 #表示每5秒钟更新一次输出信息,统计6次后停止输出
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 915796 8792 22928 0 0 781 53 137 316 1 4 94 1 0
- 第1列:procs
- r列表示运行和等待CPU时间片的进程数。
- b列表示正在等待资源的进程数。
- 第2列:memory
- swpd列表示使用虚拟内存的大小。
- free列表示当前空闲的物理内存数量.
- buff列表示buffers的内存数量.
- cache列表示cache的内存数量.
- 第3列:swap
- si(swap in)列表示由磁盘调入内存,也就是内存进入内存交换区的数量。
- so(swap out)列表示由内存调入磁盘,也就是内存交换区进入内存的数量。
- 第4列:I/O项显示磁盘读写状况
- bi列表示从块设备读入数据的总量(即读磁盘)(块/s)
- bo列表示写入块设备的数据总量(即写磁盘))(块/s)
- 第5列:system显示采集间隔内发生的中断数
- in列表示在某一时间间隔中观测到的每秒设备中断数。
- cs列表示每秒产生的上下文切换次数。
- 第6列:CPU项显示了CPU的使用状态
- us列显示了用户进程消耗的CPU时间百分比。
- sy列显示了系统(内核)进程消耗的CPU时间百分比。
- id列显示了CPU处在空闲状态的时间百分比。
- wa列显示了I/O等待所占用的CPU时间百分比
- st列显示了虚拟机占用的CPU时间的百分比。
1.2.2.2.2 显示活跃和非活跃内存
[root@nginx ~]# vmstat -a 2 5
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free inact active si so bi bo in cs us sy id wa st
0 0 0 915324 19284 18180 0 0 5 0 6 9 0 0 100 0 0
0 0 0 915284 19284 18180 0 0 0 0 10 9 0 0 100 0 0
0 0 0 915284 19284 18180 0 0 0 0 10 10 0 0 100 0 0
0 0 0 915284 19284 18212 0 0 0 0 9 10 0 0 100 0 0
0 0 0 915284 19284 18212 0 0 0 0 9 11 0 0 100 0 0
1.2.2.2.3 查看内存使用的详细信息
[root@nginx ~]# vmstat -s
1004412 total memory
89096 used memory
18196 active memory
19268 inactive memory
915316 free memory
8816 buffer memory
23244 swap cache
2031608 total swap
0 used swap
2031608 free swap
......
这些信息分别来自于/proc/meminfo,/proc/stat和/proc/vmstat
[root@nginx ~]# vmstat -d
disk- ------------reads------------ ------------writes----------- -----IO------
total merged sectors ms total merged sectors ms cur sec
ram0 0 0 0 0 0 0 0 0 0 0
ram1 0 0 0 0 0 0 0 0 0 0
ram2 0 0 0 0 0 0 0 0 0 0
ram3 0 0 0 0 0 0 0 0 0 0
ram4 0 0 0 0 0 0 0 0 0 0
ram5 0 0 0 0 0 0 0 0 0 0
ram6 0 0 0 0 0 0 0 0 0 0
ram7 0 0 0 0 0 0 0 0 0 0
ram8 0 0 0 0 0 0 0 0 0 0
ram9 0 0 0 0 0 0 0 0 0 0
ram10 0 0 0 0 0 0 0 0 0 0
ram11 0 0 0 0 0 0 0 0 0 0
ram12 0 0 0 0 0 0 0 0 0 0
ram13 0 0 0 0 0 0 0 0 0 0
ram14 0 0 0 0 0 0 0 0 0 0
ram15 0 0 0 0 0 0 0 0 0 0
loop0 0 0 0 0 0 0 0 0 0 0
loop1 0 0 0 0 0 0 0 0 0 0
loop2 0 0 0 0 0 0 0 0 0 0
loop3 0 0 0 0 0 0 0 0 0 0
disk- ------------reads------------ ------------writes----------- -----IO------
total merged sectors ms total merged sectors ms cur sec
loop4 0 0 0 0 0 0 0 0 0 0
loop5 0 0 0 0 0 0 0 0 0 0
loop6 0 0 0 0 0 0 0 0 0 0
loop7 0 0 0 0 0 0 0 0 0 0
sr0 33 0 264 47 0 0 0 0 0 0
sda 2144 1571 70016 659 411 452 6898 277 0 0
dm-0 2786 0 62426 1755 854 0 6832 583 0 0
dm-1 287 0 2296 35 0 0 0 0 0 0
这些信息主要来自于/proc/diskstats。其中的merged表示一次来自于合并的写/读请求,系统一般会把多个连接/邻近的读/写请求合并到一起来操作。
(5)查看/dev/sda1磁盘的读写统计信息
[root@nginx ~]# vmstat -p /dev/sda1
sda1 reads read sectors writes requested writes
431 3518 9 66
- 说明:
- reads:来自于该分区的读的次数
- read sectors:来自于该分区的读扇区的次数
- writes:来自于该分区的写的次数
- requested writes:来自于该分区的写请求次数。
1.3 numa
lscpu | grep -i numa #查询numa
开关,1为关闭 dmesg | grep -i numa #同上
1.4 超线程
//检查超线程的开关
grep 'siblings' /proc/cpuinfo
grep 'cpu cores' /proc/cpuinfo
如果“siblings”和“cpu cores”一致,则说明不支持超线程,或者超线程未打开。
如果“siblings”是“cpu cores”的两倍,则说明支持超线程,并且超线程已打开。
1.5 时钟源
chronyc -n sources -v
cat /etc/ntp.conf
1.6 raid
storcli64 /c0 show #查看磁盘模式与raid
storcli64 /c0/v0 delete #清空raid组
storcli64 /c0 set jbod=on #设置jbod
storcli64 /c0/eall/sall show #显示控制器为0的所有物理磁盘信息
//设置raid模式 = ‘8:4-1’根据环境情况而定
storcli64 /c0 add vd type=raid1 size=all names=t1 drives=8:4-1
1.7 文件
//过滤大文件
find . -type f -size +200M -print | xargs ls -lh
//权限
chmod 755 test #将文件设置为755权限
chown admin:admin test #将文件的属组属主设置为admin
1.8 磁盘
e2label /dev/sda3 #查看磁盘
标签 lsblk #查看磁盘大小,分区,挂载 df -hT #查看磁盘大小,分区,挂载,格式,使用量
1.8.1 iostat - I/O信息统计
1.8.1.1 使用方式
参数选项 | 解释说明 |
---|---|
-c | 显示CPU的使用情况@ |
-d | 显示磁盘的使用情况@ |
-k | 每秒以kB为单位显示数据 |
-m | 每秒以MB为单位显示数据 |
-n | 显示NFS的使用情况 |
-t | 显示每次统计的执行时间 |
-p device | 指定要统计的磁盘设备名称,默认为所有的磁盘设备 |
-x | 显示扩展统计 |
1.8.1.2 举例说明
1.8.1.2.1 显示所有设备的负载情况
[root@nginx ~]# iostat #如果省略“时间间隔”和“次数”参数,则仅显示一次报告后就退出
Linux 2.6.32-431.el6.x86_64 (test) 03/10/2018 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.02 0.00 0.05 0.01 0.00 99.93
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
scd0 0.02 0.13 0.00 1976 0
sda 0.34 28.21 7.76 445866 122724
dm-0 1.30 27.73 7.76 438306 122664
dm-1 0.02 0.15 0.00 2296 0
- 以下是命令结果说明
- %user : 用户进程消耗的CPU时间百分比
- %nice : 改变过优先级的进程占用的CPU时间百分比
- %system : 系统(内核)进程消耗的CPU时间百分比
- %iowait : IO等待所占用的CPU时间百分比
- %steal : 虚拟机强制CPU等待的时间百分比
- %idle : CPU处在空闲状态的时间百分比
- tps : 表示该设备每秒的传输次数,“一次传输”的意思是“一次I/O请求”,多个逻辑请求可能会被合并为“一次I/O请求”,“一次传输”请求的大小是未知的。
- Blk_read/s : 表示每秒读取的数据块数
- Blk_wrtn/s : 表示每秒写入的数据块数
- Blk_read : 表示读取的所有块数
- Blk_wrtn : 表示写入的所有块数
1.8.1.2.2 定时显示所有信息
[root@nginx ~]# iostat 2 3 #每隔2秒刷新显示一次,共显示3次
Linux 2.6.32-431.el6.x86_64 (test) 03/10/2018 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.01 0.00 0.04 0.00 0.00 99.94
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
scd0 0.02 0.09 0.00 1976 0
sda 0.25 19.82 5.51 445866 123988
dm-0 0.92 19.48 5.51 438306 123928
dm-1 0.01 0.10 0.00 2296 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 0.00 0.00 0.00 100.00
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
scd0 0.00 0.00 0.00 0 0
sda 0.00 0.00 0.00 0 0
dm-0 0.00 0.00 0.00 0 0
dm-1 0.00 0.00 0.00 0 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 0.50 0.00 0.00 99.50
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
scd0 0.00 0.00 0.00 0 0
sda 0.00 0.00 0.00 0 0
dm-0 0.00 0.00 0.00 0 0
dm-1 0.00 0.00 0.00 0 0
1.8.1.2.3 只显示磁盘统计信息
[root@nginx ~]# iostat -d #选项-d只显示磁盘的统计信息
Linux 2.6.32-431.el6.x86_64 (test) 03/10/2018 _x86_64_ (1 CPU)
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
scd0 0.02 0.09 0.00 1976 0
sda 0.24 19.50 5.43 445866 124108
dm-0 0.91 19.17 5.42 438306 124048
dm-1 0.01 0.10 0.00 2296 0
[root@nginx ~]# iostat -d -k #选项-k以KB为单位显示数据
Linux 2.6.32-431.el6.x86_64 (test) 03/10/2018 _x86_64_ (1 CPU)
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
scd0 0.02 0.04 0.00 988 0
sda 0.24 9.72 2.70 222933 62054
dm-0 0.91 9.55 2.70 219153 62024
dm-1 0.01 0.05 0.00 1148 0
[root@nginx ~]# iostat -d -m #选项-m以MB为单位显示数据
Linux 2.6.32-431.el6.x86_64 (test) 03/10/2018 _x86_64_ (1 CPU)
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
scd0 0.02 0.00 0.00 0 0
sda 0.24 0.01 0.00 217 60
dm-0 0.90 0.01 0.00 214 60
dm-1 0.01 0.00 0.00 1 0
1.8.1.2.4 查看扩展信息
[root@nginx ~]# iostat -d -x -k #选项-x显示扩展信息
Linux 2.6.32-431.el6.x86_64 (test) 03/10/2018 _x86_64_ (1 CPU)
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
scd0 0.00 0.00 0.02 0.00 0.04 0.00 5.41 0.00 1.09 1.09 0.00
sda 0.08 0.61 0.18 0.05 9.49 2.65 102.62 0.00 0.79 0.42 0.01
dm-0 0.00 0.00 0.22 0.66 9.33 2.65 27.03 0.01 6.17 0.11 0.01
dm-1 0.00 0.00 0.01 0.00 0.05 0.00 8.00 0.00 0.24 0.13 0.00
- 命令结果说明
- rrqm/s:每秒进行merge的读操作数目
- wrqm/s:每秒进行merge的写操作数目
- r/s:每秒完成的读I/O设备次数
- w/s:每秒完成的写I/O设备次数
- rkB/s:每秒读入的千字节数
- wkB/s:每秒写入的千字节数
- avgrq-sz:设备平均每次进行I/O操作的数据大小(扇区)
- avgqu-sz:平均I/O队列长度
- await:设备平均每次I/O操作的等待时间(毫秒)
- svctm:设备平均每次I/O操作的服务时间(毫秒)
- %util:每秒钟用于I/O操作的百分比
1.8.1.2.5 只查看CPU的统计信息
[root@nginx ~]# iostat -c #使用-c选项只显示系统CPU的统计信息
Linux 2.6.32-431.el6.x86_64 (test) 03/10/2018 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.01 0.00 0.04 0.00 0.00 99.95
1.8.2 iotop - 动态显示磁盘I/O统计信息
1.8.2.1 使用方式
参数选项 | 解释说明 |
---|---|
-o | 显示正在使用I/O的进程或者线程,默认是显示所有@ |
-d | 设置显示的间隔秒数 |
-p | 只显示指定PID的信息@ |
-u | 显示指定用户的信息 |
-P | 只显示进程,一般是显示所有的线程 |
-a | 显示从iotop启动后每个线程完成了的I/O总数 |
-k | 设置显示单位为KB |
-t | 在每一行前添加一个当前的时间 |
1.8.2.2 举例说明
- 不接任何参数启动iotop命令
[root@nginx ~]# iotop
Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % init
2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd]
3 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/0]
4 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/0]
5 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/0]
6 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [watchdog/0]
7 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [events/0]
8 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [cgroup]
9 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [khelper]
10 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [netns]
11 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [async/mgr]
12 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [pm]
13 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [sync_supers]
14 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [bdi-default]
15 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kintegrityd/0]
16 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kblockd/0]
17 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kacpid]
18 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kacpi_notify]
19 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kacpi_hotplug]
20 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ata_aux]
21 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ata_sff/0]
22 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksuspend_usbd]
23 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [khubd]
24 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kseriod]
- 命令结果说明
- Total DISK READ:总的磁盘读取速度
- Total DISK WRITE:总的磁盘写入速度
- TID:进程pid值
- PRIO:优先级
- USER:用户
- DISK READ:磁盘读取速度
- DISK WRITE:磁盘写入速度
- SWAPIN:从swap分区读取数据占用的百分比
- IO:I/O占用的百分比
- COMMAND:消耗I/O的进程名
1.9 sn
dmidecode |grep "Serial Number"
或
dmidecode -t 1
1.10 CPU
1.10.1 mpstat - CPU信息统计
1.10.1.1 使用方式
参数选项 | 解释说明 |
---|---|
-P | 指定CPU编号,例如:-P 0表示第一个CPU,-P 1表示第二个CPU,-P ALL表示所有CPU |
1.10.1.2 举例说明
1.10.1.2.1 显示CPU信息统计
[root@nginx ~]# mpstat #如果省略“时间间隔”和“次数”参数,则仅显示一次报告后就退出
Linux 2.6.32-431.el6.x86_64 (test) 03/10/2018 _x86_64_ (1 CPU)
06:13:34 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
06:13:34 PM all 0.01 0.00 0.06 0.01 0.00 0.00 0.00 0.00 99.93
[root@nginx ~]# mpstat 5 6 #表示每5秒更新一次输出信息,统计6次后停止输出。
Linux 2.6.32-431.el6.x86_64 (test) 03/10/2018 _x86_64_ (1 CPU)
06:15:16 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
06:15:21 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
06:15:26 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
06:15:31 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
06:15:36 PM all 0.00 0.00 0.20 0.00 0.00 0.00 0.00 0.00 99.80
06:15:41 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
06:15:46 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
Average: all 0.00 0.00 0.03 0.00 0.00 0.00 0.00 0.00 99.97
第1列:06:13:34 PM,表示当前时间 第2列:CPU,all表示所有CPU,0表示第一个CPU… 后面9列的含义分别如下:
- %usr:用户进程消耗的CPU时间百分比。
- %nice:改变过优先级的进程占用的CPU时间百分比
- %sys:系统(内核)进程消耗的CPU时间百分比
- %iowait:IO等待所占用的CPU时间百分比
- %irq:硬中断占用的CPU时间百分比
- %soft:软中断占用的CPU时间百分比
- %steal:虚拟机强制CPU等待的时间百分比
- %guest:虚拟机占用CPU时间的百分比
- %idle:CPU处于空闲状态的时间百分比
1.10.1.2.2 显示指定CPU信息的统计
[root@nginx ~]# mpstat -P 0 #显示第一个CPU信息
Linux 2.6.32-431.el6.x86_64 (test) 03/10/2018 _x86_64_ (1 CPU)
06:29:46 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
06:29:46 PM 0 0.01 0.00 0.05 0.01 0.00 0.00 0.00 0.00 99.93
1.11 sar - 收集系统信息
1.11.1 使用方式
参数选项 | 解释说明 |
---|---|
-A | 显示系统所有资源设备(CPU,内存,磁盘)的运行状态 |
-u | 显示系统所有CPU在采样时间内的负载状态@ |
-P | 显示当前系统中指定CPU的使用情况 |
-d | 显示系统所有硬盘设备在采样时间内的使用状况@ |
-r | 显示在采样时间内系统内存的使用状况@ |
-b | 显示在采样时间内缓冲区的使用情况@ |
-v | 显示索引节点,文件和其他内核表的状态 |
-n | 显示网络运行状态@ |
-q | 显示运行队列的大小,它与系统当时的平均负载相同@ |
-R | 显示进程在采样时间内的活动情况 |
-y | 显示终端设备在采样时间内的活动情况 |
-w | 显示系统交换活动在采样时间内的状态 |
-o filename | 将命令结果以二进制格式存放在文件中,filename是文件名 |
1.11.2 举例说明
1.11.2.1 查看系统CPU的整体负载情况
[root@nginx ~]# sar -u 2 3
Linux 2.6.32-431.el6.x86_64 (test) 03/10/2018 _x86_64_ (1 CPU)
11:44:34 PM CPU %user %nice %system %iowait %steal %idle
11:44:36 PM all 0.00 0.00 1.00 0.00 0.00 99.00
11:44:38 PM all 0.00 0.00 0.50 0.00 0.00 99.50
11:44:40 PM all 0.00 0.00 0.00 0.00 0.00 100.00
Average: all 0.00 0.00 0.50 0.00 0.00 99.50
- 命令结果说明
- %user:用户进程消耗的CPU时间百分比
- %nice:改变过优先级的进程占用的CPU时间百分比
- %system:系统(内核)进程消耗的CPU时间百分比
- %iowait:IO等待所占用的CPU时间百分比
- steal:虚拟机强制CPU等待的时间百分比
- idle:CPU处在空闲状态的时间百分比
1.11.2.2 显示运行队列的大小
[root@nginx ~]# sar -q 2 3 #使用-q选项显示运行队列的大小
Linux 2.6.32-431.el6.x86_64 (localhost) 03/14/2018 _x86_64_ (1 CPU)
04:59:18 PM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15
04:59:20 PM 0 69 0.00 0.00 0.00
04:59:22 PM 0 69 0.00 0.00 0.00
04:59:24 PM 0 70 0.00 0.00 0.00
Average: 0 69 0.00 0.00 0.00
- 命令结果的详解说明
- runq-sz:运行队列的长度(等待运行的进程数)
- plist-sz:进程列表中进程(process)和线程(thread)的数量
- ldavg-1:最后一分钟的系统平均负载(system load average)
- ldavg-5:过去5分钟的系统平均负载
- ldavg-15:过去15分钟的系统平均负载
1.11.2.3 显示系统内存的使用状况
[root@nginx ~]# sar -r 2 3 #使用-r选项显示系统内存在采样时间内的使用状况
Linux 2.6.32-431.el6.x86_64 (localhost) 03/14/2018 _x86_64_ (1 CPU)
05:03:44 PM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit
05:03:46 PM 913012 91400 9.10 11136 23324 43344 1.43
05:03:48 PM 913012 91400 9.10 11136 23324 43344 1.43
05:03:50 PM 913012 91400 9.10 11136 23324 43344 1.43
Average: 913012 91400 9.10 11136 23324 43344 1.43
- 以下命令结果的详细说明
- kbmemfree:空闲物理内存量
- kbmemused:使用中的物理内存量
- %memused:物理内存量的使用率
- kbbuffers:内核中作为缓冲区使用的物理内存容量
- kbcached:内核中作为缓存使用的物理内存容量
- kbcommit:应用程序当前使用的内存大小
- %commit:应用程序当前使用的内存大小占总大小的使用百分比
1.11.2.4 显示缓冲区的使用情况
[root@nginx ~]# sar -b 2 3 #使用-b选项显示缓冲区在采样时间内的使用情况
Linux 2.6.32-431.el6.x86_64 (localhost) 03/14/2018 _x86_64_ (1 CPU)
05:15:01 PM tps rtps wtps bread/s bwrtn/s
05:15:03 PM 0.00 0.00 0.00 0.00 0.00
05:15:05 PM 0.00 0.00 0.00 0.00 0.00
05:15:07 PM 0.00 0.00 0.00 0.00 0.00
Average: 0.00 0.00 0.00 0.00 0.00
- 以下是命令的详细结果说明
- tps:每秒钟物理设备的I/O传输总量
- rtps:每秒钟从物理设备读入的数据总量
- wtps:每秒钟向物理设备写入的数据总量
- bread/s:每秒钟从物理设备读入的数据量,单位为块/s
- bwrtn/s:每秒钟向物理设备写入的数据量,单位为块/s
1.11.2.5 显示网络的运行状态
(1)
[root@nginx ~]# sar -n DEV 2 3 #使用-n DEV显示网络接口的信息
Linux 2.6.32-431.el6.x86_64 (localhost) 03/14/2018 _x86_64_ (1 CPU)
05:22:13 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
05:22:15 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:22:15 PM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:22:15 PM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:22:15 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
05:22:17 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:22:17 PM eth0 0.50 0.50 0.03 0.24 0.00 0.00 0.00
05:22:17 PM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:22:17 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
05:22:19 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:22:19 PM eth0 0.50 0.50 0.03 0.24 0.00 0.00 0.00
05:22:19 PM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: eth0 0.33 0.33 0.02 0.16 0.00 0.00 0.00
Average: eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
- 命令结果说明
- IFACE:网络接口
- rxpck/s:每秒钟接收的数据包
- txpck/s:每秒钟发送的数据包
- rxkB/s:每秒钟接收的字节数
- txkB/s:每秒钟发送的字节数
- rxcmp/s:每秒钟接收的压缩数据包
- txcmp/s:每秒钟发送的压缩数据包
- rxmcst/s:每秒钟接收的多播数据包
(2)
[root@nginx ~]# sar -n EDEV 2 3 #使用-n EDEV显示网络错误的统计数据
Linux 2.6.32-431.el6.x86_64 (localhost) 03/14/2018 _x86_64_ (1 CPU)
05:32:03 PM IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s
05:32:05 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:32:05 PM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:32:05 PM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:32:05 PM IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s
05:32:07 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:32:07 PM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:32:07 PM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:32:07 PM IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s
05:32:09 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:32:09 PM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:32:09 PM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s
Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
- 以下是命令结果的详细说明
- IFACE:网络接口
- rxerr/s:每秒钟接收的坏数据包
- txerr/s:每秒钟发送的坏数据包
- coll/s:每秒的冲突数
- rxdrop/s:因为缓冲充满,每秒钟丢弃的已接收数据包数
- txdrop/s:因为缓冲充满,每秒钟丢弃的已发送数据包数
- txcarr/s:发送数据包时,每秒载波错误数
- rxfram/s:每秒接收数据包的帧对齐错误数
- rxfifo/s:接收的数据包每秒FIFO过速的错误数
- txfifo/s:发送的数据包每秒FIFO过速的错误数
(3)
[root@nginx ~]# sar -n SOCK 2 3 #使用-n SOCK显示套接字信息
Linux 2.6.32-431.el6.x86_64 (test) 03/14/2018 _x86_64_ (1 CPU)
05:42:12 PM totsck tcpsck udpsck rawsck ip-frag tcp-tw
05:42:14 PM 281 2 0 0 0 0
05:42:16 PM 281 2 0 0 0 0
05:42:18 PM 281 2 0 0 0 0
Average: 281 2 0 0 0 0
- 命令结果说明
- totsck:使用的套接字总数量
- tcpsck:使用的TCP套接字数量
- udpsck:使用的UDP套接字数量
- rawsck:使用的raw套接字数量
- ip-frag:使用的IP段数量
- tcp-tw:处于TIME_WAIT状态的TCP套接字数量
1.11.2.6 查看系统磁盘的读写性能
[root@nginx ~]# sar -d 2 3 #使用-d选项显示系统所有硬盘设备在采样时间内的使用状况
Linux 2.6.32-431.el6.x86_64 (test) 03/14/2018 _x86_64_ (1 CPU)
05:47:59 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
05:48:01 PM dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:48:01 PM dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:48:01 PM dev253-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:48:01 PM dev253-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:48:01 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
05:48:03 PM dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:48:03 PM dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:48:03 PM dev253-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:48:03 PM dev253-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:48:03 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
05:48:05 PM dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:48:05 PM dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:48:05 PM dev253-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:48:05 PM dev253-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
Average: dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: dev253-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: dev253-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
- 以下是命令结果的详细说明
- DEV:表示磁盘的设备名称
- tps:表示该设备每秒的传输次数,“一次传输”的意思是“一次I/O请求”,多个逻辑请求可能会被合并为“一次I/O请求”,“一次传输”请求的大小是未知的。
- rd_sec/s:表示每秒从设备读取的扇区数
- wr_sec/s:表示每秒写入设备的扇区数目
- avgrq-sz:设备平均每次I/O操作的数据大小(扇区)
- avgqu-sz:平均I/O队列长度
- await:设备平均每次I/O操作的等待时间(毫秒)
- svctm:设备平均每次I/O操作的服务时间(毫秒)
- %util:每秒钟用于I/O操作的百分比
2. 容器相关
2.1 docker
docker logs [$container_id] #查看容器日志信息
docker exec -it [$container_id] bash #进入容器内
docker rm [$container_id] #删除容器
docker rmi [$container_id] #删除镜像
docker stop(start/restart) [$container_id] #停止(启动/重启)容器
docker save -o [$xxx.tar] [$镜像名称]:[$镜像tag] #打包镜像文件
docker images #查看所有镜像
docker ps (-a) #查看容器(-a可查看已经退出的容器)
docker pull(push) [$镜像名称]:[$镜像tag] #拉取/上传镜像
docker run -it [$container_id] #启动容器
docker cp [$container_id]:[$文件绝对路径] [文件存放路径] #复制文件
docker kill [$container_id] #杀死正在运行的容器
docker stats [$container_id] #显示一个容器的实时资源占用
docker pause [$container_id] #暂停容器内所有进程
docker unpause [$container_id] #恢复容器内被所有暂停的进程
docker logs -f -t --tail=100 [$container_id] #查看容器后百行日志
docker version #查看docker版本
docker info #查看docker系统信息
2.2 kubernetes
kubectl get nodes #查询节点
kubectl get pod -A #查询pod,-n可通过命名空间查看对应命名空间内的pod
kubectl get cs
kubectl get ns #查询命名空间
kubectl describe po {pod_name} #查看pod的基础信息
kubectl cluster-info #查看k8s集群的信息
kubectl version #查看版本
kubectl logs {pod_name} -n {namespace} #查看pod日志
kubectl run pod --image={image_name} -n {namespace} #运行pod
kubectl delete pod {pod_name} -n {namespace} #删除pod
3. 快捷方式
3.1 切屏
screen -dmS test #创建名为test的切屏
screen -x test #进入切屏
ctrl +a+d #退出切屏
screen -ls #查看创建的切屏
3.2 命令行快捷方式
//每输入一个字符,终端都会滚动显示历史命令。提示:(reverse-i-search),
Ctrl + r
//移动操作快捷键
ESC + f #向右移动一个单词,MAC下建议用ALT + →
ESC + b #向左移动一个单词,MAC下建议用ALT + ←
Ctrl + a #跳到行首
Ctrl + e #跳到行尾
//删除操作快捷键
Ctrl + d #向右删除一个字符
Ctrl + h #向左删除一个字符
Ctrl + u #删除当前位置字符至行首(输入密码错误的时候多用下这个)
Ctrl + k #删除当前位置字符至行尾
Ctrl + w #删除从光标到当前单词开头
3.3 vim快捷方式
https://blog.csdn.net/m0_51777056/article/details/125188844?spm=1001.2014.3001.5501
4. 问题排查相关
4.1 进程管理命令
4.1.1 ps - 查看进程
4.1.1.1 使用方式
参数选项 | 解释说明 |
---|---|
-a | 显示所有终端下执行的进程 |
a | 显示与终端相关的所有进程,包含每个进程的完整路径 |
x | 显示与终端无关的所有进程 |
u | 显示进程的用户信息 |
-u | 显示指定用户相关的进程信息 |
-e | 显示所有进程 |
-f | 额外显示UID,PPID,C与STIME栏位 |
f | 显示进程树 |
-H | 显示进程树 |
-l | 以详细的格式来显示进程的状况 |
-o | 自定义输出指定的字段,以逗号分隔 |
-sort key | key表示为指定字段排序,默认升序,+key升序,-key降序 |
4.1.1.2 命令输出后第一行参数的解释说明
- ps
[root@test1 ~]# ps
PID TTY TIME CMD
1135 pts/0 00:00:00 bash
1152 pts/0 00:00:00 bash
1162 pts/0 00:00:00 bash
1173 pts/0 00:00:00 bash
1182 pts/0 00:00:00 ps
- PID是进程的标识号
- TTY是进程所属的终端控制台
- TIME列是进程所使用的总的CPU时间
- CMD列是正在执行的命令行
- ps -ef
[root@test1 ~]# ps -ef # -e显示所有进程,-f格外显示UID,PPID,C与STIME栏位
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 15:00 ? 00:00:00 /sbin/init
root 2 0 0 15:00 ? 00:00:00 [kthreadd]
root 3 2 0 15:00 ? 00:00:00 [migration/0]
root 4 2 0 15:00 ? 00:00:00 [ksoftirqd/0]
root 5 2 0 15:00 ? 00:00:00 [migration/0]
root 6 2 0 15:00 ? 00:00:00 [watchdog/0]
root 7 2 0 15:00 ? 00:00:00 [events/0]
root 8 2 0 15:00 ? 00:00:00 [cgroup]
root 9 2 0 15:00 ? 00:00:00 [khelper]
root 10 2 0 15:00 ? 00:00:00 [netns]
root 11 2 0 15:00 ? 00:00:00 [async/mgr]
root 12 2 0 15:00 ? 00:00:00 [pm]
root 13 2 0 15:00 ? 00:00:00 [sync_supers]
root 14 2 0 15:00 ? 00:00:00 [bdi-default]
root 15 2 0 15:00 ? 00:00:00 [kintegrityd/0]
root 16 2 0 15:00 ? 00:00:00 [kblockd/0]
root 17