w命令查看的是系统总体上的负载。linux
# w 10:42:38 up 7 min, 1 user, load average: 0.16, 0.08, 0.06 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 192.168.100.1 10:36 6.00s 0.04s 0.02s w
上面,ios
第1行从左到右显示的信息依次为:时间、系统运行时间、登陆用户数、平均负载;
第2行显示的是当前登陆的用户及其登陆地址等。web
uptime命令也能够显示上面第1行的内容:shell
# uptime 11:30:06 up 54 min, 1 user, load average: 0.00, 0.01, 0.05
重点关注load average:数据库
第1个数值表示1分钟内系统的平均负载值(该值越大说明服务器压力越大)
第2个数值表示5分钟内系统的平均负载值
第3个数值表示15分钟内系统的平均负载值vim
通常状况下,第1个值不超过服务器的CPU数量就没问题。缓存
查看服务器的CPU数量:bash
# cat /proc/cpuinfo
或者这样查看:服务器
[root@localhost ~]# grep -c 'precessor' /proc/cpuinfo0
在linux中,服务器有2*n个CPU(n为单颗物理CPU上有n核)。若是n是4,则查看/proc/cpuinfo这个文件会显示8段相似信息,最后一段的processor后面会显示为7。网络
vmstat命令显示的结果分为6部分:procs、memory、swap、io、system和cpu。
# vmstatprocs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 0 1556704 2076 168336 0 0 12 1 20 16 0 0 100 0 0
procs——显示进程的相关信息
r(run):表示运行或等待CPU时间片的进程数;
b(block):表示等待资源的进程数,资源指的是I/O、内存等。
memory——显示内存的相关信息
swpd:表示切换到交换分区中的内存数量,单位为KB,该值波动时说明内存不足;
free:表示当前空闲的内存数量,单位为KB;
buff:表示(即将写入磁盘的)缓冲大小,单位为KB;
cache:表示(从磁盘读取的)缓存大小,单位为KB。
swap——显示内存的交换状况
si:表示由交换区写入内存的数据量,单位为KB;
so:表示由内存写入交换区的数据量,单位为KB。
io——显示内存的交换状况
bi:表示从块设备读取数据的量(磁盘→内存),单位为KB;
bo:表示从块设备写入数据的量(内存→磁盘),单位为KB。
system——显示采集间隔内发生的中断次数
in:表示在某一时间间隔内观测到的每秒设备的中断次数;
cd:表示每秒产生的上下文切换次数。
cpu——显示CPU的使用状态
us:表示用户下所花费CPU的时间百分比(一般us<=10比较合适);
sy:表示系统花费CPU的时间百分比(sy与us呈正相关);
id:表示CPU处于空闲状态的时间百分比;
wa:表示I/O等待所占用CPU的时间百分比;
st:表示被偷走的CPU所占的时间百分比(通常为0)。
us + sy + id = 100%
重点关注r、b、si、so、bi、bo、us和wa这几列信息。
vmstat n m表示动态输出,每n秒输出一次,共输出m次。
# vmstat 1 5procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 0 1556356 2076 168376 0 0 6 0 13 11 0 0 100 0 0 0 0 0 1556356 2076 168376 0 0 0 0 84 61 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 81 70 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 62 55 0 0 100 0 0 1 0 0 1556340 2076 168376 0 0 0 0 80 73 0 0 100 0 0
能够看到,vmstat 1 5表示每1秒输出一次,共输出5次。
# vmstat 1procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 0 1556340 2076 168376 0 0 6 0 13 11 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 85 69 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 68 60 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 60 54 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 77 68 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 67 61 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 69 62 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 73 61 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 67 62 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 73 68 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 67 60 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 60 53 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 69 62 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 68 61 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 72 63 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 48 44 40 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 29 22 0 0 100 0 0 0 0 0 1556340 2076 168376 0 0 0 0 41 29 0 0 100 0 0 ^Z[1]+ 已中止 vmstat 1
vmstat 1表示每1秒输出一次,且一直输出,除非按Ctrl+Z停止或Ctrl+C结束。
top命令用于动态监控进程所占的系统资源,每3秒刷新一次,默认把占用系统资源(CPU、内存、磁盘I/O等)最高的进程放在最上面。
top - 14:17:19 up 3:41, 1 user, load average: 0.00, 0.02, 0.05 Tasks: 113 total, 2 running, 111 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 1865308 total, 1370480 free, 139216 used, 355612 buff/cache KiB Swap: 4194300 total, 4194300 free, 0 used. 1532752 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1811 root 20 0 161944 2200 1548 R 0.3 0.1 0:00.10 top 1 root 20 0 193492 6592 4128 S 0.0 0.4 0:01.99 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.02 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.03 ksoftirqd/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.61 kworker/u256:0 7 root rt 0 0 0 0 S 0.0 0.0 0:00.37 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.48 rcu_sched 10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-drain 11 root rt 0 0 0 0 S 0.0 0.0 0:00.08 watchdog/0 12 root rt 0 0 0 0 S 0.0 0.0 0:00.08 watchdog/1 13 root rt 0 0 0 0 S 0.0 0.0 0:00.31 migration/1 14 root 20 0 0 0 0 S 0.0 0.0 0:00.03 ksoftirqd/1 15 root 20 0 0 0 0 S 0.0 0.0 0:00.34 kworker/1:0 16 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/1:0H 17 root rt 0 0 0 0 S 0.0 0.0 0:00.10 watchdog/2
上面左上角显示CPU、内存、交换区的使用状况,右边显示任务、负载、开机时间,下面就是进程实时情况。
top 查看进程使用资源状况;
top -c 显示详细的进程信息;
top -bn1 静态显示全部进程。
# top -bn1 -c | head -15top - 14:24:49 up 3:49, 1 user, load average: 0.00, 0.01, 0.05 Tasks: 114 total, 1 running, 113 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 1.6 sy, 0.0 ni, 98.4 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 1865308 total, 1369280 free, 140300 used, 355728 buff/cache KiB Swap: 4194300 total, 4194300 free, 0 used. 1531624 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1823 root 20 0 161868 2168 1600 R 6.2 0.1 0:00.01 top -bn1 -c 1 root 20 0 193492 6592 4128 S 0.0 0.4 0:02.04 /usr/lib/systemd/systemd --switched-root --syste+ 2 root 20 0 0 0 0 S 0.0 0.0 0:00.02 [kthreadd] 3 root 20 0 0 0 0 S 0.0 0.0 0:00.04 [ksoftirqd/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.62 [kworker/u256:0] 7 root rt 0 0 0 0 S 0.0 0.0 0:00.37 [migration/0] 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [rcu_bh]
q 退出top 1 显示全部核CPU M 按内存使用从高到低排序 P 按CPU使用从高到低排序
top只支持键盘操做,显示单调,htop是Linux系统下一个基本文本模式的、交互式的进程查看器,主要用于控制台或shell中,能够替代top,是top的高级版本。
1. 快速查看关键性能统计数据,如CPU(多核布局)、内存/交换使用; 2. 能够横向或纵向滚动浏览进程列表,以查看全部的进程和完整的命令行; 3. 杀掉进程时能够直接选择而不须要输入进程号; 4. 经过鼠标操做条目; 5. 比top启动得更快。
# yum install -y htop
F1 查看htop使用说明 F2 设置 F3 搜索进程 F4 过滤器,按关键字搜索 F5 显示树形结构 F6 选择排序方式 F7 减小nice值,这样就能够提升对应进程的优先级 F8 增长nice值,这样能够下降对应进程的优先级 F9 杀掉选中的进程 F10 退出htop
-C --no-color 使用一个单色的配色方案 -d --delay=DELAY 设置延迟更新时间,单位秒 -h --help 显示htop 命令帮助信息 -u --user=USERNAME 只显示一个给定的用户的过程 -p --pid=PID,[,PID,PID...] 只显示给定的PIDs -s --sort-key=COLUMN 依此列来排序 -v --version 显示版本信息
上下键或PgUP/PgDn 选定想要的进程,左右键或Home, End 移动字段,固然也能够直接用鼠标选定进程; Space 标记/取消标记一个进程。命令能够做用于多个进程,例如 "kill",将应用于全部已标记的进程 U 取消标记全部进程 s 选择某一进程,按s:用strace追踪进程的系统调用 l 显示进程打开的文件: 若是安装了lsof,按此键能够显示进程所打开的文件(小写l) I 倒转排序顺序,若是排序是正序的,则反转成倒序的,反之亦然(大写i) +, - 在树形模式下,展开或折叠子树 a (在有多处理器的机器上) 设置 CPU affinity: 标记一个进程容许使用哪些CPU u 显示特定用户进程 M 按Memory 使用排序 P 按CPU 使用排序 T 按Time+ 使用排序 F 跟踪进程: 若是排序顺序引发选定的进程在列表上处处移动,让选定条跟随该进程。这对监视一个进程很是有用:经过这种方式,你可让一个进程在屏幕上一直可见。使用方向键会中止该功能。 K 显示/隐藏内核线程 H 显示/隐藏用户线程 Ctrl-L 刷新
sar命令能够监控平均负载、网卡流量、磁盘状态、内存使用等系统状态,能够显示历史信息,能够显示当天从零时开始到当前时刻的系统状态信息,每10分钟记录一次。
# yum install -y sysstat
初次使用sar会报错,这是由于sar尚未生成相应的数据库文件,它的数据库文件保存在/var/log/sa目录下。
# sarLinux 3.10.0-862.2.3.el7.x86_64 (localhost.localdomain) 2018年06月09日 _x86_64_ (4 CPU)10时35分41秒 LINUX RESTART 10时40分01秒 CPU %user %nice %system %iowait %steal %idle 10时50分01秒 all 0.00 0.00 0.01 0.00 0.00 99.99 11时00分01秒 all 0.00 0.00 0.01 0.00 0.00 99.99 11时10分01秒 all 0.00 0.00 0.03 0.05 0.00 99.92 11时20分01秒 all 0.00 0.00 0.01 0.00 0.00 99.98 11时30分01秒 all 0.00 0.00 0.01 0.00 0.00 99.99 11时40分01秒 all 0.00 0.00 0.01 0.01 0.00 99.98 11时50分01秒 all 0.00 0.00 0.01 0.00 0.00 99.99 12时00分01秒 all 0.00 0.00 0.01 0.00 0.00 99.99 12时10分01秒 all 0.00 0.00 0.01 0.00 0.00 99.98 12时20分01秒 all 0.00 0.00 0.02 0.00 0.00 99.98 12时30分01秒 all 0.00 0.00 0.02 0.00 0.00 99.98 12时40分01秒 all 0.00 0.00 0.02 0.00 0.00 99.98 12时50分01秒 all 0.00 0.00 0.01 0.00 0.00 99.98 13时00分01秒 all 0.00 0.00 0.02 0.00 0.00 99.98 13时10分01秒 all 0.00 0.00 0.02 0.00 0.00 99.98 13时20分01秒 all 0.00 0.00 0.02 0.00 0.00 99.98 13时30分01秒 all 0.00 0.00 0.02 0.00 0.00 99.98 13时40分01秒 all 0.01 0.00 0.02 0.00 0.00 99.97 13时50分01秒 all 0.00 0.00 0.02 0.00 0.00 99.98 14时00分01秒 all 0.01 0.00 0.02 0.00 0.00 99.97 14时10分01秒 all 0.00 0.00 0.01 0.00 0.00 99.98 14时20分01秒 all 0.10 0.00 0.22 0.28 0.00 99.41 14时20分01秒 CPU %user %nice %system %iowait %steal %idle 14时30分01秒 all 0.00 0.00 0.01 0.01 0.00 99.98 14时40分01秒 all 0.01 0.00 0.04 0.00 0.00 99.94 14时50分01秒 all 0.01 0.00 0.06 0.00 0.00 99.93 平均时间: all 0.01 0.00 0.03 0.01 0.00 99.95
# sar -n DEV | head -15Linux 3.10.0-862.2.3.el7.x86_64 (localhost.localdomain) 2018年06月09日 _x86_64_ (4 CPU)10时35分41秒 LINUX RESTART 10时40分01秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 10时50分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10时50分01秒 ens33 0.12 0.12 0.01 0.01 0.00 0.00 0.00 11时00分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 11时00分01秒 ens33 0.09 0.11 0.01 0.01 0.00 0.00 0.00 11时10分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 11时10分01秒 ens33 0.38 0.26 0.03 0.03 0.00 0.00 0.00 11时20分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 11时20分01秒 ens33 0.15 0.12 0.01 0.01 0.00 0.00 0.00 11时30分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 11时30分01秒 ens33 0.06 0.07 0.00 0.00 0.00 0.00 0.00
上面,
IFACE 这一列表示设备名称 rxpck/s 这一列表示每秒进入收取的包的数量 txpck/s 这一列表示每秒发送出去的包的数量 rxKB/s 这一列表示每秒收取的数据量(单位为KB) txKB/s 这一列表示每秒发送的数据量(单位为KB)
# sar -n DEV -f /var/log/sa/sa09 | head -15Linux 3.10.0-862.2.3.el7.x86_64 (localhost.localdomain) 2018年06月09日 _x86_64_ (4 CPU)10时35分41秒 LINUX RESTART 10时40分01秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 10时50分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10时50分01秒 ens33 0.12 0.12 0.01 0.01 0.00 0.00 0.00 11时00分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 11时00分01秒 ens33 0.09 0.11 0.01 0.01 0.00 0.00 0.00 11时10分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 11时10分01秒 ens33 0.38 0.26 0.03 0.03 0.00 0.00 0.00 11时20分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 11时20分01秒 ens33 0.15 0.12 0.01 0.01 0.00 0.00 0.00 11时30分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 11时30分01秒 ens33 0.06 0.07 0.00 0.00 0.00 0.00 0.00
使用-f选项能够查看某一天的网卡流量历史,后面跟文件名(以sa开头的文件,不能直接cat),sar的库文件在/var/log/sa目录下,还有sar开头的文件,能够直接cat。
# sar -q | head -15Linux 3.10.0-862.2.3.el7.x86_64 (localhost.localdomain) 2018年06月09日 _x86_64_ (4 CPU)10时35分41秒 LINUX RESTART 10时40分01秒 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked 10时50分01秒 0 130 0.00 0.02 0.05 0 11时00分01秒 0 129 0.00 0.01 0.05 0 11时10分01秒 0 131 0.01 0.02 0.05 0 11时20分01秒 0 130 0.00 0.01 0.05 0 11时30分01秒 0 129 0.00 0.01 0.05 0 11时40分01秒 0 130 0.00 0.01 0.05 0 11时50分01秒 0 130 0.00 0.01 0.05 0 12时00分01秒 0 129 0.00 0.01 0.05 0 12时10分01秒 0 131 0.00 0.01 0.05 0 12时20分01秒 0 131 0.00 0.01 0.05 0
# sar -b | head -15Linux 3.10.0-862.2.3.el7.x86_64 (localhost.localdomain) 2018年06月09日 _x86_64_ (4 CPU)10时35分41秒 LINUX RESTART 10时40分01秒 tps rtps wtps bread/s bwrtn/s 10时50分01秒 0.05 0.00 0.05 0.12 0.54 11时00分01秒 0.06 0.02 0.04 0.59 0.57 11时10分01秒 0.88 0.48 0.40 14.22 9.21 11时20分01秒 0.04 0.00 0.03 0.11 0.36 11时30分01秒 0.05 0.00 0.05 0.00 0.47 11时40分01秒 0.05 0.00 0.05 0.04 0.70 11时50分01秒 0.06 0.00 0.06 0.00 0.70 12时00分01秒 0.02 0.00 0.02 0.00 0.29 12时10分01秒 0.07 0.00 0.07 0.00 0.84 12时20分01秒 0.04 0.00 0.04 0.00 0.40
sar虽然能够查看网卡流量,但不够直观,而nload很是直观
# yum install -y epel-release;yum install -y nload
nload动态显示,按向右箭头能够其它网卡的网络流量。
输出结果分为两个部分,Incoming 为进入网卡的流量,Outgoing 为网卡出去的流量,通常关注 Curr 那行数据,其单位也能够动态自动调整。
iostat -x和iotop均可以查看磁盘使用状况。
# iostat -xLinux 3.10.0-862.2.3.el7.x86_64 (localhost.localdomain) 2018年06月09日 _x86_64_ (4 CPU)avg-cpu: %user %nice %system %iowait %steal %idle 0.01 0.00 0.04 0.04 0.00 99.91 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util sda 0.00 0.01 0.42 0.12 13.15 4.38 65.53 0.01 13.35 10.98 21.69 4.82 0.26 scd0 0.00 0.00 0.00 0.00 0.06 0.00 114.22 0.00 43.78 43.78 0.00 43.22 0.00
Total DISK READ : 0.00 B/s | Total DISK WRITE : 0.00 B/s Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 0.00 B/s TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND 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 % systemd --switched-root --system --deserialize 22 2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd] 3 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/0] 5 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/0:0H] 6 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/u256:0] 7 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/0] 8 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_bh] 9 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_sched] 10 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [lru-add-drain] 11 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [watchdog/0] 12 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [watchdog/1] 13 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/1] 14 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/1] 15 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/1:0] 16 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/1:0H]
free命令能够查看当前系统的总内存大小以及使用内存的状况。
# free total used free shared buff/cache available Mem: 1865308 139724 1369236 9692 356348 1532092 Swap: 4194300 0 4194300
上面,
total 内存总大小 used 真正使用的内存大小 free 剩余物理内存大小 shared 共享内存大小 buff/cache 分配给buffer和cache的内存,即缓冲/缓存(数据通过CPU计算,即将写入磁盘,用到的内存为buffer;CPU要计算时,须要把数据从磁盘中读出来,临时放入内存中,用到的内存是cache) available 系统可以使用的内存大小,包含free和buffer/cache剩余部分 total = used + free + buff/cache
free命令能够加-m和-g选项,分别以MB和GB为单位显示内存的使用情况,也支持-h选项。
ps命令专门查看系统进程。
# ps PID TTY TIME CMD 1253 pts/0 00:00:00 bash 1939 pts/0 00:00:00 ps
# ps aux | head -15USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.3 193492 6592 ? Ss 10:35 0:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 22 root 2 0.0 0.0 0 0 ? S 10:35 0:00 [kthreadd]root 3 0.0 0.0 0 0 ? S 10:35 0:00 [ksoftirqd/0]root 5 0.0 0.0 0 0 ? S< 10:35 0:00 [kworker/0:0H]root 6 0.0 0.0 0 0 ? S 10:35 0:00 [kworker/u256:0]root 7 0.0 0.0 0 0 ? S 10:35 0:00 [migration/0]root 8 0.0 0.0 0 0 ? S 10:35 0:00 [rcu_bh]root 9 0.0 0.0 0 0 ? R 10:35 0:00 [rcu_sched]root 10 0.0 0.0 0 0 ? S< 10:35 0:00 [lru-add-drain]root 11 0.0 0.0 0 0 ? S 10:35 0:00 [watchdog/0]root 12 0.0 0.0 0 0 ? S 10:35 0:00 [watchdog/1]root 13 0.0 0.0 0 0 ? S 10:35 0:00 [migration/1]root 14 0.0 0.0 0 0 ? S 10:35 0:00 [ksoftirqd/1]root 15 0.0 0.0 0 0 ? S 10:35 0:00 [kworker/1:0]
上面,
PID 表示进程的ID,kill使用时后面须要跟上PID STAT 进程的状态,主要有如下几种: D 不能中断进程(一般为IO) R 正在运行中的进程 S 已经中断的进程 Z 僵尸进程,杀不掉、打不死的进程(主进程意外丢失) < 高优先级进程 N 低优先级进程 s 主进程 l 多线程进程 - \+ 在前台运行的进程
ps连同管道符一块儿使用,能够查看某个进程或它的数量(grep -c)。
# ps aux | grep sshdroot 923 0.0 0.2 112796 4296 ? Ss 10:36 0:00 /usr/sbin/sshd -D root 1249 0.0 0.2 158800 5540 ? Ss 10:36 0:00 sshd: root@pts/0 root 1974 0.0 0.0 112724 984 pts/0 S+ 16:02 0:00 grep --color=auto sshd
netstat命令用来查看网络链接情况、系统所开放端口、路由表等信息。
# netstat -lnp | head -15Active Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 923/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1152/master tcp6 0 0 :::22 :::* LISTEN 923/sshd tcp6 0 0 ::1:25 :::* LISTEN 1152/master udp 0 0 127.0.0.1:323 0.0.0.0:* 571/chronyd udp6 0 0 ::1:323 :::* 571/chronyd raw6 0 0 :::58 :::* 7 595/NetworkManager Active UNIX domain sockets (only servers)Proto RefCnt Flags Type State I-Node PID/Program name Path unix 2 [ ACC ] STREAM LISTENING 19801 1152/master private/tlsmgr unix 2 [ ACC ] STREAM LISTENING 19804 1152/master private/rewrite unix 2 [ ACC ] STREAM LISTENING 19807 1152/master private/bounce unix 2 [ ACC ] STREAM LISTENING 19810 1152/master private/defer
netstat -lnp查看当前系统启动了哪些端口(netstat -ltnp查看tcp端口;netstat -lunp查看udp端口)。
# netstat -an | head -20Active Internet connections (servers and established)Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp 0 52 192.168.100.128:22 192.168.100.1:51990 ESTABLISHED tcp6 0 0 :::22 :::* LISTEN tcp6 0 0 ::1:25 :::* LISTEN udp 0 0 127.0.0.1:323 0.0.0.0:* udp6 0 0 ::1:323 :::* raw6 0 0 :::58 :::* 7 Active UNIX domain sockets (servers and established)Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 19801 private/tlsmgr unix 2 [ ACC ] STREAM LISTENING 19804 private/rewrite unix 2 [ ACC ] STREAM LISTENING 19807 private/bounce unix 2 [ ACC ] STREAM LISTENING 19810 private/defer unix 2 [ ACC ] STREAM LISTENING 19852 private/discard unix 2 [ ACC ] STREAM LISTENING 19858 private/virtual unix 2 [ ACC ] STREAM LISTENING 17445 /run/dbus/system_bus_socket unix 2 [ ACC ] STREAM LISTENING 19813 private/trace
netstat -an |awk '/^tcp/{+=sta[$NF]}END{for(key in sta) print key,"\t",sta[key]}'**查看tcp每一种状态出现的数量。
当初步断定服务器上有流量***时,使用抓包工具来抓取数据包能够知道的IP。
# yum install -y tcpdump
-nn 做用是让第3列和第4列显示成“ip+端口号”的形式,不加-nn则显示“主机名+服务名” -i 指定设备名称 -c 指定抓包数量,抓够了自动退出 -w 指定保存位置 -r 读取抓到的包内容 tcp 指定抓tcp的包
# tcpdump -nn -i ens33 -c 10tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes 16:29:43.007506 IP 192.168.100.128.22 > 192.168.100.1.51990: Flags [P.], seq 1203060315:1203060527, ack 4165463380, win 251, length 212 16:29:43.008347 IP 192.168.100.128.22 > 192.168.100.1.51990: Flags [P.], seq 212:408, ack 1, win 251, length 196 16:29:43.008424 IP 192.168.100.128.22 > 192.168.100.1.51990: Flags [P.], seq 408:572, ack 1, win 251, length 164 16:29:43.008491 IP 192.168.100.128.22 > 192.168.100.1.51990: Flags [P.], seq 572:736, ack 1, win 251, length 164 16:29:43.008555 IP 192.168.100.128.22 > 192.168.100.1.51990: Flags [P.], seq 736:900, ack 1, win 251, length 164 16:29:43.008620 IP 192.168.100.128.22 > 192.168.100.1.51990: Flags [P.], seq 900:1064, ack 1, win 251, length 164 16:29:43.008684 IP 192.168.100.128.22 > 192.168.100.1.51990: Flags [P.], seq 1064:1244, ack 1, win 251, length 180 16:29:43.008747 IP 192.168.100.128.22 > 192.168.100.1.51990: Flags [P.], seq 1244:1424, ack 1, win 251, length 180 16:29:43.008823 IP 192.168.100.128.22 > 192.168.100.1.51990: Flags [P.], seq 1424:1604, ack 1, win 251, length 180 16:29:43.009124 IP 192.168.100.1.51990 > 192.168.100.128.22: Flags [.], ack 1604, win 2053, length 0 10 packets captured 11 packets received by filter 0 packets dropped by kernel
# yum install -y wireshark
# tshark -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri"
ifconfig命令相似于Windows的ipconfig命令,后面不跟任何选项和参数时,只显示当前网卡IP的相关信息(如子网掩码、网关等)。
# yum install -y net-tools
# ifconfigens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.100.128 netmask 255.255.255.0 broadcast 192.168.100.255 inet6 fe80::b76:caa8:3d7c:71bc prefixlen 64 scopeid 0x20<link> ether 00:0c:29:e4:fc:a5 txqueuelen 1000 (Ethernet) RX packets 12004 bytes 6150452 (5.8 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 16570 bytes 4217661 (4.0 MiB) 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 1000 (Local Loopback) RX packets 78 bytes 6856 (6.6 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 78 bytes 6856 (6.6 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
设置(修改)IP:vim /etc/sysconfig/network_scripts/ifcfg-ens33(这里以ens33为网卡名为例)。
# ifdown 网卡名
# ifup 网卡名
# ifdown 网卡名; ifup 网卡名(远程时这样没法重启,会断开)或# ifdown 网卡名 && ifup 网卡名或# systemctl restart network
# cd /etc/sysconfig/network-scripts/# cp ifcfg-ens33 ifcfg-ens33:1# vim ifcfg-ens33:1TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33:1 UUID=d71e4905-fa6f-4d09-8533-714dfb0b9e5d DEVICE=ens33:1 ONBOOT=yes IPADDR=192.168.100.130 NETMASK=255.255.255.0 GATEWAY=192.168.100.2 DNS1=8.8.8.8 DNS2=4.2.2.2
# systemctl restart network# ifconfigens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.100.128 netmask 255.255.255.0 broadcast 192.168.100.255 inet6 fe80::b76:caa8:3d7c:71bc prefixlen 64 scopeid 0x20<link> ether 00:0c:29:e4:fc:a5 txqueuelen 1000 (Ethernet) RX packets 12802 bytes 6219046 (5.9 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 17083 bytes 4281925 (4.0 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ens33:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.100.130 netmask 255.255.255.0 broadcast 192.168.100.255 ether 00:0c:29:e4:fc:a5 txqueuelen 1000 (Ethernet)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 1000 (Local Loopback) RX packets 90 bytes 7912 (7.7 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 90 bytes 7912 (7.7 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
# mii-tool ens33ens33: negotiated 1000baseT-FD flow-control, link ok
# ethtool ens33Settings for ens33: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supported pause frame use: No Supports auto-negotiation: Yes Supported FEC modes: Not reported Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised pause frame use: No Advertised auto-negotiation: Yes Advertised FEC modes: Not reported Speed: 1000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 0 Transceiver: internal Auto-negotiation: on MDI-X: off (auto) Supports Wake-on: d Wake-on: d Current message level: 0x00000007 (7) drv probe link Link detected: yes
hostname(重启后失效);
hostnamectl set-hostname(重启后不变)。
vi /etc/resolv.conf(临时修改);
修改网卡配置文件(永久修改)。