linux命令
整机管理
- top/uptime
top - 14:55:19 up 1 day, 15 min, 1 user, load average: 2.70, 2.38, 1.86
任务: 278 total, 3 running, 186 sleeping, 0 stopped, 0 zombie
%Cpu(s): 15.1 us, 1.6 sy, 0.0 ni, 83.1 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 8072100 total, 288444 free, 3062672 used, 4720984 buff/cache
KiB Swap: 8000508 total, 7997680 free, 2828 used. 4569192 avail Mem
进程 USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
12559 lyy 20 0 26.030g 3.194g 1.323g R 100.0 41.5 59:34.74 python
2222 root 20 0 0 0 0 R 23.5 0.0 74:39.48 nv_queue
15642 root 20 0 46012 4160 3380 R 11.8 0.1 0:00.03 top
2220 root -51 0 0 0 0 S 5.9 0.0 2:03.24 irq/61-nvidia
15158 wq 20 0 961980 95948 34596 S 5.9 1.2 0:06.82 node
1 root 20 0 225868 9500 6572 S 0.0 0.1 0:27.82 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.10 kthreadd
-
load average表示系统1min, 5min, 15min内的平均负载
- 如果三者的平均值>0.6, 则表示系统负载过高
-
PID, %CPU, %MEM, TIME+
- PID: 进程ID
- %CPU: 进程占用CPU的百分比
- %MEM: 进程占用内存的百分比
- TIME+: 进程运行时间
CPU管理
- vmstat的procs列和cpu列
- procs: 系统运行的进程数
- r, b: 运行和阻塞进程数
- r: 运行进程数, 平均不能超过总核数 * 2, 否则表示CPU过载
- b: 阻塞进程数, 等待磁盘IO, 网络IO等
- r, b: 运行和阻塞进程数
- cpu: CPU的使用率
- us, sy, id, wa, st: 各个状态的CPU使用率
- us: 用户态CPU使用率
- sy: 内核态CPU使用率
- id: idle状态CPU使用率
- wa: 等待CPU时间的CPU使用率
- st: 超时等待CPU时间的CPU使用率
- 如果us + sy > 80, 则表示CPU过载
- us, sy, id, wa, st: 各个状态的CPU使用率
- procs: 系统运行的进程数
procs -----------memory---------- ---swap--- -----io---- -system-- ------cpu-----
r b 交换 空闲 缓冲 缓存 si so bi bo in cs us sy id wa st
2 0 2828 404008 630504 4001128 0 0 7 3 32 11 15 2 83 0 0
- mpstat -P ALL: 查看所有和单个cpu的使用率
15时14分04秒 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
15时14分06秒 all 43.54 0.00 1.56 0.06 0.00 0.06 0.00 0.00 0.00 54.77
15时14分06秒 0 38.31 0.00 0.00 0.00 0.00 0.50 0.00 0.00 0.00 61.19
15时14分06秒 1 38.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 61.50
15时14分06秒 2 38.31 0.00 0.50 0.50 0.00 0.00 0.00 0.00 0.00 60.70
15时14分06秒 3 38.61 0.00 0.00 0.50 0.00 0.00 0.00 0.00 0.00 60.89
15时14分06秒 4 85.79 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 14.21
15时14分06秒 5 32.16 0.00 1.51 0.00 0.00 0.00 0.00 0.00 0.00 66.33
15时14分06秒 6 30.85 0.00 8.96 0.00 0.00 0.00 0.00 0.00 0.00 60.20
15时14分06秒 7 47.26 0.00 0.50 0.00 0.00 0.00 0.00 0.00 0.00 52.24
- pidstat -p pid -u 1: 每隔1秒查看指定进程的CPU使用率
15时18分49秒 UID PID %usr %system %guest %wait %CPU CPU Command
15时18分50秒 1001 12559 87.00 13.00 0.00 0.00 100.00 3 python
15时18分51秒 1001 12559 100.00 2.00 0.00 0.00 100.00 3 python
15时18分52秒 1001 12559 100.00 7.00 0.00 1.00 100.00 1 python
15时18分53秒 1001 12559 100.00 6.00 0.00 0.00 100.00 1 python
内存管理
- free -m: 查看内存使用情况
- 如果可用/总内存小于20%, 则表示内存不足
总计 已用 空闲 共享 缓冲/缓存 可用
内存: 7882 2983 373 76 4525 4468
交换: 7812 2 7810
- pidstat -p pid -r 1: 每隔1秒查看指定进程的内存使用情况
- %MEM: 内存使用率
15时24分24秒 UID PID minflt/s majflt/s VSZ RSS %MEM Command
15时24分26秒 1001 12559 21203.00 0.00 27297136 3351248 41.52 python
15时24分28秒 1001 12559 9863.00 0.00 27293872 3347936 41.48 python
15时24分30秒 1001 12559 1290.50 0.00 27293872 3348604 41.48 python
15时24分32秒 1001 12559 17779.00 0.00 27308984 3363516 41.67 python
15时24分34秒 1001 12559 4400.00 0.00 27292924 3347172 41.47 python
15时24分36秒 1001 12559 14001.00 0.00 27301924 3356184 41.58 python
磁盘管理
- df -h: 查看磁盘使用情况
文件系统 容量 已用 可用 已用% 挂载点
udev 3.9G 0 3.9G 0% /dev
tmpfs 789M 1.9M 787M 1% /run
/dev/sda4 94G 8.5G 81G 10% /
/dev/sda5 94G 5.0G 84G 6% /usr
tmpfs 3.9G 4.0K 3.9G 1% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/loop0 2.7M 2.7M 0 100% /snap/gnome-calculator/920
/dev/loop2 2.5M 2.5M 0 100% /snap/gnome-calculator/884
/dev/loop1 112M 112M 0 100% /snap/core/12941
/dev/loop3 56M 56M 0 100% /snap/core18/2344
/dev/loop5 111M 111M 0 100% /snap/core/12834
/dev/loop7 768K 768K 0 100% /snap/gnome-characters/741
/dev/loop4 165M 165M 0 100% /snap/gnome-3-28-1804/161
/dev/loop8 248M 248M 0 100% /snap/gnome-3-38-2004/87
/dev/loop6 249M 249M 0 100% /snap/gnome-3-38-2004/99
/dev/loop9 2.7M 2.7M 0 100% /snap/gnome-system-monitor/169
/dev/loop10 66M 66M 0 100% /snap/gtk-common-themes/1519
/dev/loop11 128K 128K 0 100% /snap/bare/5
/dev/loop12 62M 62M 0 100% /snap/core20/1405
/dev/loop13 82M 82M 0 100% /snap/gtk-common-themes/1534
/dev/loop14 56M 56M 0 100% /snap/core18/2409
/dev/loop16 62M 62M 0 100% /snap/core20/1434
/dev/loop17 640K 640K 0 100% /snap/gnome-logs/112
/dev/loop18 768K 768K 0 100% /snap/gnome-characters/761
/dev/loop15 219M 219M 0 100% /snap/gnome-3-34-1804/72
/dev/loop20 640K 640K 0 100% /snap/gnome-logs/106
/dev/loop19 2.7M 2.7M 0 100% /snap/gnome-system-monitor/174
/dev/loop21 219M 219M 0 100% /snap/gnome-3-34-1804/77
/dev/loop22 161M 161M 0 100% /snap/gnome-3-28-1804/116
/dev/sda3 454M 124M 303M 29% /boot
/dev/sda1 511M 5.3M 506M 2% /boot/efi
/dev/sda6 720G 136G 548G 20% /home
tmpfs 789M 28K 789M 1% /run/user/122
tmpfs 789M 0 789M 0% /run/user/1001
tmpfs 789M 0 789M 0% /run/user/1009
磁盘IO(大表查询)
- iostat -xdk 2 3: 查看磁盘IO情况
- rkB/s: 读取速度, kB/s
- wkB/s: 写入速度, kB/s
- %util: IO请求平均使用率
- svctm: IO请求平均服务时间, ms
- await: IO请求平均等待时间, ms
- 如果svctm和await很接近, 表明IO队列很短, 可以增加磁盘IO请求数量
- 如果await远大于svctm, 表明IO队列很长, 可以减少磁盘IO请求数量或更换磁盘
Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
loop0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22.26 0.00 0.00 2.63 0.00 22.70 0.00
loop1 0.00 0.00 0.01 0.00 0.00 0.00 0.00 0.00 17.69 0.00 0.00 9.58 0.00 11.83 0.00
loop2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 14.40 0.00 0.00 2.60 0.00 14.84 0.00
loop3 0.00 0.00 0.01 0.00 0.00 0.00 0.00 0.00 6.28 0.00 0.00 2.40 0.00 6.61 0.00
loop4 0.00 0.00 0.01 0.00 0.00 0.00 0.00 0.00 151.64 0.00 0.00 18.98 0.00 70.62 0.00
loop5 0.18 0.00 0.19 0.00 0.00 0.00 0.00 0.00 2.69 0.00 0.00 1.06 0.00 0.29 0.01
loop6 0.00 0.00 0.01 0.00 0.00 0.00 0.00 0.00 37.75 0.00 0.00 20.47 0.00 26.67 0.00
loop7 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 7.05 0.00 0.00 2.42 0.00 7.58 0.00
sda 1.64 1.87 54.20 20.54 0.71 1.08 30.25 36.67 5.23 4.37 0.01 33.05 10.99 2.54 0.89
loop8 0.00 0.00 0.01 0.00 0.00 0.00 0.00 0.00 3.87 0.00 0.00 7.44 0.00 4.51 0.00
loop9 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 12.07 0.00 0.00 2.67 0.00 12.37 0.00
loop10 0.01 0.00 0.02 0.00 0.00 0.00 0.00 0.00 2.16 0.00 0.00 3.17 0.00 1.97 0.00
loop11 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 5.00 0.00 0.00 1.00 0.00 7.00 0.00
loop12 0.00 0.00 0.01 0.00 0.00 0.00 0.00 0.00 10.77 0.00 0.00 2.27 0.00 10.64 0.00
loop13 0.01 0.00 0.02 0.00 0.00 0.00 0.00 0.00 4.87 0.00 0.00 2.43 0.00 4.04 0.00
loop14 0.00 0.00 0.01 0.00 0.00 0.00 0.00 0.00 3.64 0.00 0.00 2.40 0.00 4.00 0.00
loop15 0.00 0.00 0.01 0.00 0.00 0.00 0.00 0.00 57.59 0.00 0.00 20.31 0.00 51.37 0.00
loop16 0.00 0.00 0.01 0.00 0.00 0.00 0.00 0.00 5.40 0.00 0.00 2.29 0.00 5.73 0.00
loop17 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 7.37 0.00 0.00 2.42 0.00 7.79 0.00
loop18 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 7.74 0.00 0.00 2.42 0.00 8.21 0.00
loop19 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 9.70 0.00 0.00 2.67 0.00 10.05 0.00
loop20 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 9.79 0.00 0.00 2.42 0.00 10.53 0.00
loop21 0.00 0.00 0.01 0.00 0.00 0.00 0.00 0.00 68.80 0.00 0.00 20.31 0.00 50.27 0.00
loop22 0.00 0.00 0.01 0.00 0.00 0.00 0.00 0.00 31.04 0.00 0.00 10.64 0.00 24.80 0.00
loop23 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 2.00 0.00 0.67 0.00
- pidstat -p pid -d 1: 每隔一秒查看指定进程的IO状态
15时39分57秒 UID PID kB_rd/s kB_wr/s kB_ccwr/s iodelay Command
15时39分59秒 1001 12559 0.00 0.00 0.00 0 python
15时40分01秒 1001 12559 0.00 2.00 0.00 0 python
15时40分03秒 1001 12559 0.00 2.00 0.00 0 python
15时40分05秒 1001 12559 0.00 0.00 0.00 0 python
网络管理
- ifstat
eno1 enp1s0 docker0
KB/s in KB/s out KB/s in KB/s out KB/s in KB/s out
0.00 0.00 0.87 1.63 0.00 0.00
0.00 0.00 5.28 3.92 0.00 0.00
0.00 0.00 0.99 0.44 0.00 0.00
0.00 0.00 0.31 0.38 0.00 0.00
0.00 0.00 0.36 0.58 0.00 0.00
使用linux命令排查问题代码行
- 用以上所有命令查出某资源消耗过高的pid
ps -ef|grep java|grep -v grep
或 jps -l 查看某进程的详细信息ps -mp pid -o THEAD,tid,time
产看该进程下各线程的资源使用情况- jstack pid|grep tid(16进制小写英文) -A60 查看某线程的堆栈信息
- 根据找到的代码行数, 结合业务逻辑, 查log/dump等
- arthas工具能完成上述工作
使用jdk自带工具排查问题
- jps
- jinfo
- jmap
- jstat
- jstack
- jvisualvm
- jconsole
github
- 范围搜索
关键词 in:name/description/readme
, 查找名字/描述/readme中包含关键词的项目关键词 stars:>=1000
, 查找超过1000个star的项目关键词 forks:100..200
, 查找100-200个fork的项目关键词 created:>=2018-01-01
, 查找创建时间在2018-01-01之后的项目
- awesom 关键词
- 某项目文件#L13, 高亮显示第13行
- 某项目文件#L13-L15, 高亮显示13-15行
- 项目主页按t, 以列表形式查看所有文件
- location:beijing language:java 区域用户搜索