10.1 使用w查看系统负载
w 查看系统负载
[root@arslinux-01 ~]# w 20:13:32 up 31 min, 1 user, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 192.168.194.1 19:51 4.00s 0.13s 0.07s w [root@arslinux-01 ~]# date 2019年 04月 09日 星期二 20:13:42 CST
网络登录的是pts/0,pts/1等,虚拟机直接登录时tty1...
load average: 0.00, 0.01, 0.05表示:1分钟,5分钟,15分钟时间段内,系统的负载
该时间段内,使用CPU的活动的进程有多少个(平均值)
有多少逻辑CPU,可以在cpuinfo中查看,processor参数,0表示有cpu1个,1为两个,以此类推
当CPU为一个时,第一个数字1为最理想;CPU为8个时,第一个数字为8最理想,此时processor为7每一个CPU都有一个进程占用,是理想状态,不忙也不闲,高于这个数字就表示要排队了,比较忙。
一般情况下,最关注的第一个数字。
uptime 也可以查看系统负载
[root@arslinux-01 ~]# uptime 21:20:53 up 40 min, 1 user, load average: 0.01, 0.03, 0.05
(uptime比w较精简,一般使用w命令即可)
10.2 vmstat命令
CPU 不够用的话,要考虑什么原因导致 CPU 不够用,进程都在干什么,有哪些任务在使用 CPU ?
需要进一步查看系统信息
vmstat 可以看到 CPU,内存,虚拟磁盘,交换分区,磁盘,系统进程等信息
[root@arslinux-01 ~]# vmstat procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 2 0 0 716340 2200 145592 0 0 37 4 44 124 0 1 99 0 0
vmstat 时间(s) 表示按单位时间显示一次,Ctrl + C结束
[root@arslinux-01 ~]# vmstat 1 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 2 0 0 716068 2200 145624 0 0 36 4 44 122 0 1 99 0 0 0 0 0 716072 2200 145624 0 0 0 2 32 45 1 1 98 0 0 0 0 0 716072 2200 145624 0 0 0 0 34 50 0 0 100 0 0 0 0 0 716072 2200 145624 0 0 0 0 43 57 0 0 100 0 0 0 0 0 716072 2200 145624 0 0 0 0 33 41 0 0 100 0 0 0 0 0 716072 2200 145624 0 0 0 0 24 35 0 0 100 0 0 0 0 0 716072 2200 145624 0 0 0 0 26 38 0 0 100 0 0 0 0 0 716072 2200 145624 0 0 0 0 27 36 0 1 99 0 0 ^C [root@arslinux-01 ~]#
vmstat 时间(s) 次数 表示按单位时间显示一次,只显示几次
[root@arslinux-01 ~]# 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 2 0 0 716172 2200 145656 0 0 36 4 43 120 0 1 99 0 0 0 0 0 716148 2200 145656 0 0 0 0 32 51 0 0 100 0 0 0 0 0 716148 2200 145656 0 0 0 0 36 50 0 0 99 1 0 0 0 0 716148 2200 145656 0 0 0 0 23 35 0 0 100 0 0 0 0 0 716148 2200 145656 0 0 0 0 29 39 0 0 100 0 0 [root@arslinux-01 ~]#
每秒显示1次,共显示5次
r = run 有多少进程处于 run 的状态 (无论是在使用CPU中,还是在排队中,都是 r 状态)
b = block 表示有多少进程在等待(进程被CPU以外的,比如硬盘、网络阻断,处于等待状态)
swpd 数字不断变化,交换分区和内存频繁交换数据,内存不够了
si 有多少kb数据从swap进入到内存中(和swap有关)
so 有多少kb数据从内存出来到swap中(和swap有关)
bi 从磁盘里进入到内存里去,读的数据量(和磁盘有关)
bo 从磁盘里进入到内存里去,写的数据量(和磁盘有关)
us 用户态的资源占用CPU的百分比(数字长时间大于50,表示资源不够, us+sy+id=100)
sy 系统占用
id 空闲
wa wait 等待CPU的进程占百分比
10.3 top命令
top 命令
3秒显示一次,动态显示占用最高的进程
[root@arslinux-01 ~]# top top - 21:53:44 up 1:13, 1 user, load average: 0.00, 0.01, 0.05 Tasks: 94 total, 1 running, 93 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.3 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 995896 total, 706728 free, 134772 used, 154396 buff/cache KiB Swap: 1999868 total, 1999868 free, 0 used. 690576 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 128040 6540 4136 S 0.0 0.7 0:02.20 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.30 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.01 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:01.00 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.03 watchdog/0 13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs 14 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 netns 15 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khungtaskd 16 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 writeback 17 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kintegrityd 18 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset 19 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset 20 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset 21 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kblockd 22 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 md 23 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 edac-poller 24 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 watchdogd 30 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kswapd0 31 root 25 5 0 0 0 S 0.0 0.0 0:00.00 ksmd 32 root 39 19 0 0 0 S 0.0 0.0 0:00.02 khugepaged 33 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 crypto 41 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kthrotld 42 root 20 0 0 0 0 S 0.0 0.0 0:00.17 kworker/u256:1 43 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kmpath_rdacd 44 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kaluad 45 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kpsmoused 47 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 ipv6_addrconf 60 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 deferwq 91 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kauditd 1676 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 nfit 1702 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 mpt_poll_0 1707 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 ata_sff 1708 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 mpt/0 1766 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_0 1769 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 scsi_tmf_0 1786 root 20 0 0 0 0 S 0.0 0.0 0:00.01 scsi_eh_1 1788 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 scsi_tmf_1 1791 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_2 1797 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 scsi_tmf_2 1939 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 ttm_swap 1946 root -51 0 0 0 0 S 0.0 0.0 0:00.00 irq/16-vmwgfx 2919 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset
st 被偷走了的 CPU 百分比,服务器做了虚拟化,有些虚拟机可能偷走部分 CPU
★平时需要多关注 us ,长时间在 60% 以上,肯定对 CPU 的寿命会有影响。
系统负载和CPU使用率不一样,系统负载可以很高,但是CPU使用率us可能为0。
大部分情况下,us百分比很高,系统负载肯定很高。
RES 物理内存大小 单位KB
默认情况下,会按照CPU的百分比去从高到低排列。
如果想要按使用内存占比排列,那么按 M 就可以切换到内存排列,按 P 切换回CPU排列
按数字1,可以查看所有CPU的使用情况 (按1来回切换)
按q键可以退出top命令
top -c 可以查看具体命令,全局的路径
top -bn1 静态显示所有信息(适合在写脚本时使用)
[root@arslinux-01 ~]# top -bn1 top - 22:15:10 up 1:34, 1 user, load average: 0.00, 0.01, 0.05 Tasks: 94 total, 1 running, 93 sleeping, 0 stopped, 0 zombie %Cpu(s): 5.9 us, 5.9 sy, 0.0 ni, 88.2 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 995896 total, 706672 free, 134756 used, 154468 buff/cache KiB Swap: 1999868 total, 1999868 free, 0 used. 690528 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 128040 6540 4136 S 0.0 0.7 0:02.23 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.33 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.01 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:01.01 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.04 watchdog/0 13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs 14 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 netns 15 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khungtaskd 16 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 writeback 17 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kintegrityd 18 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset 19 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset 20 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset 21 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kblockd 22 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 md 23 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 edac-poller 24 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 watchdogd 30 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kswapd0 31 root 25 5 0 0 0 S 0.0 0.0 0:00.00 ksmd 32 root 39 19 0 0 0 S 0.0 0.0 0:00.03 khugepaged 33 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 crypto 41 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kthrotld 42 root 20 0 0 0 0 S 0.0 0.0 0:00.22 kworker/u256:1 43 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kmpath_rdacd 44 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kaluad 45 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kpsmoused 47 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 ipv6_addrconf 60 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 deferwq 91 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kauditd 1676 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 nfit 1702 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 mpt_poll_0 1707 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 ata_sff 1708 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 mpt/0 1766 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_0 1769 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 scsi_tmf_0 1786 root 20 0 0 0 0 S 0.0 0.0 0:00.01 scsi_eh_1 1788 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 scsi_tmf_1 1791 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_2 1797 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 scsi_tmf_2 1939 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 ttm_swap 1946 root -51 0 0 0 0 S 0.0 0.0 0:00.00 irq/16-vmwgfx 2919 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset 2924 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 xfsalloc 2930 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 xfs_mru_cache 2933 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 xfs-buf/sda3 2937 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 xfs-data/sda3 2938 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 xfs-conv/sda3 2939 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 xfs-cil/sda3 2940 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 xfs-reclaim/sda 2941 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 xfs-log/sda3 2942 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 xfs-eofblocks/s 2943 root 20 0 0 0 0 S 0.0 0.0 0:00.39 xfsaild/sda3 2944 root 0 -20 0 0 0 S 0.0 0.0 0:00.04 kworker/0:1H 3012 root 20 0 37112 2812 2484 S 0.0 0.3 0:00.23 systemd-journal 3037 root 20 0 340348 7596 2620 S 0.0 0.8 0:00.02 lvmetad 3048 root 20 0 48208 5632 2864 S 0.0 0.6 0:00.85 systemd-udevd 5045 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kdmflush 5047 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset 5085 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 xfs-buf/sda1 5091 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 xfs-data/sda1 5096 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 xfs-conv/sda1 5097 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 xfs-cil/sda1 5106 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 xfs-reclaim/sda 5113 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 xfs-log/sda1 5117 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 xfs-eofblocks/s 5118 root 20 0 0 0 0 S 0.0 0.0 0:00.00 xfsaild/sda1 6095 root 16 -4 62044 1084 496 S 0.0 0.1 0:00.01 auditd 6238 root 20 0 26376 1744 1440 S 0.0 0.2 0:00.07 systemd-logind 6246 root 20 0 99564 6112 4504 S 0.0 0.6 0:00.03 VGAuthService 6248 root 20 0 300936 6492 5116 S 0.0 0.7 0:07.96 vmtoolsd 6256 polkitd 20 0 612996 10956 4932 S 0.0 1.1 0:00.11 polkitd 6260 dbus 20 0 66456 2584 1896 S 0.0 0.3 0:00.24 dbus-daemon 6271 chrony 20 0 117784 1812 1352 S 0.0 0.2 0:00.16 chronyd 6382 root 20 0 126284 1696 1068 S 0.0 0.2 0:00.42 crond 6402 root 20 0 110092 860 728 S 0.0 0.1 0:00.01 agetty 6416 root 20 0 358512 29328 7184 S 0.0 2.9 0:01.32 firewalld 6586 root 20 0 473980 10744 6688 S 0.0 1.1 0:00.41 NetworkManager 7066 root 20 0 112756 4320 3292 S 0.0 0.4 0:00.03 sshd 7068 root 20 0 573820 17128 6036 S 0.0 1.7 0:01.54 tuned 7070 root 20 0 220784 4072 3300 S 0.0 0.4 0:00.81 rsyslogd 7197 root 20 0 89544 2084 1072 S 0.0 0.2 0:00.06 master 7203 postfix 20 0 89648 4064 3068 S 0.0 0.4 0:00.02 pickup 7204 postfix 20 0 89716 4092 3088 S 0.0 0.4 0:00.01 qmgr 7341 root 20 0 158760 5592 4240 S 0.0 0.6 0:00.74 sshd 7344 root 20 0 116088 2836 1796 S 0.0 0.3 0:00.17 bash 7363 root 20 0 0 0 0 S 0.0 0.0 0:03.62 kworker/0:1 7486 root 20 0 0 0 0 S 0.0 0.0 0:00.02 kworker/0:2 7487 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kworker/0:0 7490 root 20 0 161880 2108 1548 R 0.0 0.2 0:00.00 top [root@arslinux-01 ~]#
·杀死进程:kill + 进程的PID
10.4 sar命令
监控系统状态
安装 sar 命令:
[root@arslinux-01 ~]# sar -bash: sar: 未找到命令 [root@arslinux-01 ~]# yum install -y sysstat
[root@arslinux-01 ~]# sar 无法打开 /var/log/sa/sa12: 没有那个文件或目录
·sar 命令如果不加具体选项,默认会去调用系统中保存在 /var/log/sa 中的历史文件
·sar 每十分钟会把系统状态过滤一遍,保存在 /var/log/sa 目录下,因此,安装完成后需要等待十分钟后,才能不加参数使用
sar -n DEV 时间 次数 网卡流量
[root@arslinux-01 ~]# sar -n DEV 1 5 Linux 3.10.0-957.el7.x86_64 (arslinux-01) 2019年04月12日 _x86_64_(1 CPU) 19时55分23秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 19时55分24秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 19时55分24秒 ens33 1.01 0.00 0.06 0.00 0.00 0.00 0.00 19时55分24秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 19时55分25秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 19时55分25秒 ens33 2.00 2.00 0.12 0.44 0.00 0.00 0.00 19时55分25秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 19时55分26秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 19时55分26秒 ens33 1.00 1.00 0.06 0.38 0.00 0.00 0.00 19时55分26秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 19时55分27秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 19时55分27秒 ens33 1.00 1.00 0.06 0.38 0.00 0.00 0.00 19时55分27秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 19时55分28秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 19时55分28秒 ens33 1.00 1.00 0.06 0.38 0.00 0.00 0.00 平均时间: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 平均时间: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 平均时间: ens33 1.20 1.00 0.07 0.32 0.00 0.00 0.00 [root@arslinux-01 ~]#
每隔一秒查看一次,共查看5次
rxpck/s:接收到的数据包 数值为几千,比较正常,上万就不太正常了
txpck/s:发送出去的数据包
rxkB/s:接收的数据量
txkB/s:发送出去的数据量
rxcmp/s:txcmp/s:rxmcst/s不重要,一般都是 0
[root@arslinux-01 ~]# sar Linux 3.10.0-957.el7.x86_64 (arslinux-01) 2019年04月12日 _x86_64_(1 CPU) [root@arslinux-01 ~]# ls /var/log/sa sa12
日期为几号,就是sa多少,13号就是sa13,17号就是sa17
sar -n DEV -f /var/log/sa/sa?? 查看网卡历史数据,??为日期
/var/log/sa 目录下数据最多保留1个月
sar -q 查询间隔 查询次数 查看系统负载
[root@arslinux-01 ~]# sar -q 1 5 Linux 3.10.0-957.el7.x86_64 (arslinux-01) 2019年04月12日 _x86_64_(1 CPU) 20时11分35秒 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked 20时11分36秒 1 114 0.00 0.01 0.05 0 20时11分37秒 1 114 0.00 0.01 0.05 0 20时11分38秒 0 114 0.00 0.01 0.05 0 20时11分39秒 1 114 0.00 0.01 0.05 0 20时11分40秒 1 114 0.00 0.01 0.05 0 平均时间: 1 114 0.00 0.01 0.05 0
sar -q 默认查看当天
[root@arslinux-01 ~]# sar -q Linux 3.10.0-957.el7.x86_64 (arslinux-01) 2019年04月12日 _x86_64_(1 CPU) 20时00分02秒 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked 20时10分01秒 0 114 0.00 0.01 0.05 0 平均时间: 0 114 0.00 0.01 0.05 0
sar -b 查询间隔 查询次数 查看磁盘数据
[root@arslinux-01 ~]# sar -b 1 5 Linux 3.10.0-957.el7.x86_64 (arslinux-01) 2019年04月12日 _x86_64_(1 CPU) 20时14分48秒 tps rtps wtps bread/s bwrtn/s 20时14分49秒 0.00 0.00 0.00 0.00 0.00 20时14分50秒 0.00 0.00 0.00 0.00 0.00 20时14分51秒 0.00 0.00 0.00 0.00 0.00 20时14分52秒 0.00 0.00 0.00 0.00 0.00 20时14分53秒 0.00 0.00 0.00 0.00 0.00 平均时间: 0.00 0.00 0.00 0.00 0.00
/var/log/sa/ 下不仅会生成 sa 日期文件,还会生成 sar 日期文件
sa 日期是二进制文件,只能 sar 命令去查看,无法 cat;而 sar日期 文件是可以 cat 的
10.5 nload命令
nload 默认是没有安装的,需要安装 nload
在安装 nload 前,需要安装 epel-release
[root@arslinux-01 ~]# nload -bash: nload: 未找到命令 [root@arslinux-01 ~]# yum install -y epel-release [root@arslinux-01 ~]# yum install -y nload
按右方向键,可以切换到另外一个网卡
实际运行图
通常情况下,我们买带宽指的是 outgoing 的带宽
如果遇到***,那么 Incoming 流量会非常大
10.6 监控 io 性能
iostat 查看磁盘使用情况
[root@arslinux-01 ~]# iostat Linux 3.10.0-957.el7.x86_64 (arslinux-01) 2019年04月12日 _x86_64_(1 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.25 0.00 0.39 0.01 0.00 99.35 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 0.92 23.78 9.09 219756 84010 sdb 0.02 0.47 0.00 4336 0 scd0 0.00 0.11 0.00 1028 0 dm-0 0.00 0.11 0.00 1036 0
·每隔一秒查看一次磁盘使用情况
[root@arslinux-01 ~]# iostat 1
·每隔一秒查看磁盘情况一次,共查看两次
[root@arslinux-01 ~]# iostat 1 2 Linux 3.10.0-957.el7.x86_64 (arslinux-01) 2019年04月12日 _x86_64_(1 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.25 0.00 0.39 0.01 0.00 99.36 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 0.91 23.38 8.94 219756 84073 sdb 0.02 0.46 0.00 4336 0 scd0 0.00 0.11 0.00 1028 0 dm-0 0.00 0.11 0.00 1036 0 avg-cpu: %user %nice %system %iowait %steal %idle 0.00 0.00 0.00 0.00 0.00 100.00 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 0.00 0.00 0.00 0 0 sdb 0.00 0.00 0.00 0 0 scd0 0.00 0.00 0.00 0 0 dm-0 0.00 0.00 0.00 0 0
iostat -x
[root@arslinux-01 ~]# iostat -x Linux 3.10.0-957.el7.x86_64 (arslinux-01) 2019年04月12日 _x86_64_(1 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.25 0.00 0.38 0.01 0.00 99.36 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.02 0.64 0.26 23.28 8.91 71.10 0.00 0.87 0.62 1.47 0.47 0.04 sdb 0.00 0.00 0.02 0.00 0.46 0.00 46.13 0.00 0.38 0.38 0.00 0.28 0.00 scd0 0.00 0.00 0.00 0.00 0.11 0.00 114.22 0.00 1.56 1.56 0.00 1.22 0.00 dm-0 0.00 0.00 0.00 0.00 0.11 0.00 48.19 0.00 0.30 0.30 0.00 0.23 0.00
%util表示一秒内IO操作所占的比例,数字很大,说明磁盘很忙
如果数字很大,那么磁盘读写也会很大;但是如果读写不大,而%util很大,那么磁盘可能存在故障
iotop
iotop 默认没有安装,需要安装
iotop 安装:
[root@arslinux-01 ~]# yum install -y iotop
iotop 和 top 命令类似,都是动态显示
[root@arslinux-01 ~]# iotop
10.7 free命令
free 查看内存使用情况
[root@arslinux-01 ~]# free total used free shared buff/cache available Mem: 995896 130944 710480 7800 154472 694244 Swap: 1999868 0 1999868
free -m 指定以 M 为单位,查看内存使用情况
[root@arslinux-01 ~]# free -m total used free shared buff/cache available Mem: 972 127 693 7 150 677 Swap: 1952 0 1952
free -h 自动以合适的单位,并显示单位,方便查看,更人性化
[root@arslinux-01 ~]# free -h total used free shared buff/cache available Mem: 972M 127M 693M 7.6M 150M 677M Swap: 1.9G 0B 1.9G
buffer 缓冲:CPU——>内存(buffer)——>磁盘
cache 缓存:磁盘——>内存(cache)——>CPU
total = used + free + buff/cache
available = free + buff/cache剩余部分
请注意,这只是一个很理想的计算方式,实际中的数据往往有较大的误差。
10.8 ps命令
ps aux 查看系统进程
[root@arslinux-01 ~]# ps aux
ps aux | grep 关键字 查看某个进程是否在运行
[root@arslinux-01 ~]# ps aux |grep mysql root 7793 0.0 0.0 112724 988 pts/0 R+ 22:52 0:00 grep --color=auto mysql [root@arslinux-01 ~]# ps aux |grep nginx root 7795 0.0 0.0 112724 988 pts/0 S+ 22:53 0:00 grep --color=auto nginx
ps -elf 查看系统所有进程(和 ps aux 差不多)
PID的用处:
1,kill进程用 kill + 进程号
2,查看进程所在目录 ll /proc/数字
STAT部分说明:
D 不能中断的进程
R run状态的进程(某个时间段内在使用)
S sleep状态进程 (vmstat运行时间很短,运行一下就sleep,并不会消耗CPU资源)
T 暂停的进程
+ 前台进程
Z 僵尸进程(很少会有,但也会有)
< 高优先级进程
N 低优先级进程(不急)
L 内存中被锁了内存分页(不常见)
s 主进程
l 多线程进程(一个进程中有多个线程)
线程和进程的区别:
https://www.cnblogs.com/zhehan54/p/6130030.html
https://baijiahao.baidu.com/s?id=1611925141861592999&wfr=spider&for=pc
10.9 查看网络状态
netstat 查看网络状态(tcp/ip通讯状态)
[root@arslinux-01 ~]# netstat Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 52 arslinux-01:ssh 192.168.19:contamac_icm ESTABLISHED Active UNIX domain sockets (w/o servers) Proto RefCnt Flags Type State I-Node Path unix 2 [ ] DGRAM 34934 /var/run/chrony/chronyd.sock unix 2 [ ] DGRAM 21364 /run/systemd/shutdownd unix 3 [ ] DGRAM 8926 /run/systemd/notify unix 2 [ ] DGRAM 8928 /run/systemd/cgroups-agent unix 5 [ ] DGRAM 8945 /run/systemd/journal/socket unix 13 [ ] DGRAM 8947 /dev/log unix 3 [ ] STREAM CONNECTED 34979 unix 3 [ ] STREAM CONNECTED 34088 unix 3 [ ] STREAM CONNECTED 39375 unix 3 [ ] STREAM CONNECTED 35794 unix 3 [ ] STREAM CONNECTED 39376
只列举部分
netstat -lnp 查看监听端口
[root@arslinux-01 ~]# netstat -lnp Active 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 7038/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 7174/master tcp6 0 0 :::22 :::* LISTEN 7038/sshd tcp6 0 0 ::1:25 :::* LISTEN 7174/master udp 0 0 127.0.0.1:323 0.0.0.0:* 6395/chronyd udp6 0 0 ::1:323 :::* 6395/chronyd raw6 0 0 :::58 :::* 7 6558/NetworkManager Active UNIX domain sockets (only servers) Proto RefCnt Flags Type State I-Node PID/Program name Path unix 2 [ ACC ] STREAM LISTENING 39411 7174/master public/showq unix 2 [ ACC ] STREAM LISTENING 39381 7174/master private/rewrite unix 2 [ ACC ] STREAM LISTENING 35359 6376/VGAuthService /var/run/vmware/guestServicePipe unix 2 [ ACC ] STREAM LISTENING 39378 7174/master private/tlsmgr unix 2 [ ACC ] STREAM LISTENING 21378 1/systemd /run/lvm/lvmetad.socket unix 2 [ ACC ] STREAM LISTENING 33953 1/systemd /run/dbus/system_bus_socket unix 2 [ ACC ] STREAM LISTENING 39384 7174/master private/bounce unix 2 [ ACC ] STREAM LISTENING 21183 1/systemd /run/systemd/private unix 2 [ ACC ] STREAM LISTENING 39387 7174/master private/defer unix 2 [ ACC ] STREAM LISTENING 39390 7174/master private/trace unix 2 [ ACC ] STREAM LISTENING 39393 7174/master private/verify unix 2 [ ACC ] STREAM LISTENING 39399 7174/master private/proxymap unix 2 [ ACC ] STREAM LISTENING 39402 7174/master private/proxywrite unix 2 [ ACC ] STREAM LISTENING 39405 7174/master private/smtp unix 2 [ ACC ] STREAM LISTENING 39408 7174/master private/relay unix 2 [ ACC ] STREAM LISTENING 39414 7174/master private/error unix 2 [ ACC ] STREAM LISTENING 39417 7174/master private/retry unix 2 [ ACC ] STREAM LISTENING 39420 7174/master private/discard unix 2 [ ACC ] STREAM LISTENING 39367 7174/master public/pickup unix 2 [ ACC ] STREAM LISTENING 39423 7174/master private/local unix 2 [ ACC ] STREAM LISTENING 39371 7174/master public/cleanup unix 2 [ ACC ] STREAM LISTENING 39426 7174/master private/virtual unix 2 [ ACC ] STREAM LISTENING 39374 7174/master public/qmgr unix 2 [ ACC ] STREAM LISTENING 39429 7174/master private/lmtp unix 2 [ ACC ] STREAM LISTENING 39432 7174/master private/anvil unix 2 [ ACC ] STREAM LISTENING 39435 7174/master private/scache unix 2 [ ACC ] STREAM LISTENING 8942 1/systemd /run/systemd/journal/stdout unix 2 [ ACC ] STREAM LISTENING 21232 1/systemd /run/lvm/lvmpolld.socket unix 2 [ ACC ] SEQPACKET LISTENING 21235 1/systemd /run/udev/control unix 2 [ ACC ] STREAM LISTENING 39396 7174/master public/flush
netstat -an 查看所有连接状态
[root@arslinux-01 ~]# netstat -an Active 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.194.130:22 192.168.194.1:4846 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 39411 public/showq unix 2 [ ACC ] STREAM LISTENING 39381 private/rewrite unix 2 [ ACC ] STREAM LISTENING 35359 /var/run/vmware/guestServicePipe unix 2 [ ACC ] STREAM LISTENING 39378 private/tlsmgr unix 2 [ ] DGRAM 34934 /var/run/chrony/chronyd.sock unix 2 [ ] DGRAM 21364 /run/systemd/shutdownd unix 2 [ ACC ] STREAM LISTENING 21378 /run/lvm/lvmetad.socket unix 2 [ ACC ] STREAM LISTENING 33953 /run/dbus/system_bus_socket unix 2 [ ACC ] STREAM LISTENING 39384 private/bounce unix 2 [ ACC ] STREAM LISTENING 21183 /run/systemd/private unix 2 [ ACC ] STREAM LISTENING 39387 private/defer unix 2 [ ACC ] STREAM LISTENING 39390 private/trace unix 2 [ ACC ] STREAM LISTENING 39393 private/verify unix 2 [ ACC ] STREAM LISTENING 39399 private/proxymap unix 2 [ ACC ] STREAM LISTENING 39402 private/proxywrite
只列举部分
netstat -lntp 只查看 tcp 的连接状态
[root@arslinux-01 ~]# netstat -lntp Active 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 7038/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 7174/master tcp6 0 0 :::22 :::* LISTEN 7038/sshd tcp6 0 0 ::1:25 :::* LISTEN 7174/master
netstat -lntup 查看 tcp 和 udp 的连接状态
[root@arslinux-01 ~]# netstat -lntup Active 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 7038/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 7174/master tcp6 0 0 :::22 :::* LISTEN 7038/sshd tcp6 0 0 ::1:25 :::* LISTEN 7174/master udp 0 0 127.0.0.1:323 0.0.0.0:* 6395/chronyd udp6 0 0 ::1:323 :::* 6395/chronyd
netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'
查看所有状态的数字
[root@arslinux-01 ~]# netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}' LISTEN 4 ESTABLISHED 1
★关注 ESTABLISHED,数字越大,越忙
ss -an 显示连接状态(与 netstat 类似)
[root@arslinux-01 ~]# ss -an
ss -an |grep -i listen 查看 listen 状态的连接(-i 忽略大小写)
[root@arslinux-01 ~]# ss -an | grep -i listen u_str LISTEN 0 100 public/showq 39411 * 0 u_str LISTEN 0 100 private/rewrite 39381 * 0 u_str LISTEN 0 32 /var/run/vmware/guestServicePipe 35359 * 0 u_str LISTEN 0 100 private/tlsmgr 39378 * 0 u_str LISTEN 0 128 /run/lvm/lvmetad.socket 21378 * 0 u_str LISTEN 0 128 /run/dbus/system_bus_socket 33953 * 0 u_str LISTEN 0 100 private/bounce 39384 * 0 u_str LISTEN 0 128 /run/systemd/private 21183 * 0 u_str LISTEN 0 100 private/defer 39387 * 0 u_str LISTEN 0 100 private/trace 39390 * 0 u_str LISTEN 0 100 private/verify 39393 * 0 u_str LISTEN 0 100 private/proxymap 39399 * 0 u_str LISTEN 0 100 private/proxywrite 39402 * 0 u_str LISTEN 0 100 private/smtp 39405 * 0 u_str LISTEN 0 100 private/relay 39408 * 0 u_str LISTEN 0 100 private/error 39414 * 0 u_str LISTEN 0 100 private/retry 39417 * 0 u_str LISTEN 0 100 private/discard 39420 * 0 u_str LISTEN 0 100 public/pickup 39367 * 0 u_str LISTEN 0 100 private/local 39423 * 0 u_str LISTEN 0 100 public/cleanup 39371 * 0 u_str LISTEN 0 100 private/virtual 39426 * 0 u_str LISTEN 0 100 public/qmgr 39374 * 0 u_str LISTEN 0 100 private/lmtp 39429 * 0 u_str LISTEN 0 100 private/anvil 39432 * 0 u_str LISTEN 0 100 private/scache 39435 * 0 u_str LISTEN 0 128 /run/systemd/journal/stdout 8942 * 0 u_str LISTEN 0 128 /run/lvm/lvmpolld.socket 21232 * 0 u_seq LISTEN 0 128 /run/udev/control 21235 * 0 u_str LISTEN 0 100 public/flush 39396 * 0 tcp LISTEN 0 128 *:22 *:* tcp LISTEN 0 100 127.0.0.1:25 *:* tcp LISTEN 0 128 :::22 :::* tcp LISTEN 0 100 ::1:25 :::*
缺点:不会显示进程名称
10.10 linux下抓包
tcpdump 抓包工具
[root@arslinux-01 ~]# tcpdump -bash: tcpdump: 未找到命令
tcpdump 安装:
[root@arslinux-01 ~]# yum install -y tcpdump
tcpdump -nn 抓包
[root@arslinux-01 ~]# tcpdump -nn tcpdump: packet printing is not supported for link type NFLOG: use -w
因为网卡名称 ens33 , tcpdump 默认识别 eth0,因此需要指定才能使用
tcpdump -nn -i 网卡名 指定网卡名抓包
[root@arslinux-01 ~]# tcpdump -nn -i ens33 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes 21:14:49.377177 IP 192.168.194.1.4846 > 192.168.194.130.22: Flags [P.], seq 1:53, ack 105604, win 2049, length 52 21:14:49.377216 IP 192.168.194.130.22 > 192.168.194.1.4846: Flags [P.], seq 106356:106520, ack 53, win 304, length 164 ^C 687 packets captured 687 packets received by filter 0 packets dropped by kernel
-nn的第一个n表示IP用数字显示出来,如果不加n,则会显示主机名
-nn用数字显示,比较直观
时间,IP,源IP.端口>方向IP.端口:数据包信息
tcpdump -nn port 端口号指定端口号
[root@arslinux-01 ~]# tcpdump -nn -i eth0 port 22
tcpdump -nn not port 端口号 and host IP地址 同时指定不需要的端口号和只要看的host IP
[root@arslinux-01 ~]# tcpdump -nn -i ens33 not port 22 [root@arslinux-01 ~]# tcpdump -nn -i ens33 not port 22 and host 192.168.194.1
tcpdump -nn -c 个数 指定抓包个数
[root@arslinux-01 ~]# tcpdump -nn -c 20 -i ens33 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes 21:32:20.322745 IP 192.168.194.130.22 > 192.168.194.1.4846: Flags [P.], seq 201793328:201793524, ack 1738012548, win 304, length 196 21:32:20.322908 IP 192.168.194.1.4846 > 192.168.194.130.22: Flags [.], ack 196, win 2052, length 0 21:32:20.323167 IP 192.168.194.130.22 > 192.168.194.1.4846: Flags [P.], seq 196:472, ack 1, win 304, length 276 21:32:20.323432 IP 192.168.194.130.22 > 192.168.194.1.4846: Flags [P.], seq 472:636, ack 1, win 304, length 164 21:32:20.323540 IP 192.168.194.1.4846 > 192.168.194.130.22: Flags [.], ack 636, win 2050, length 0 21:32:20.323689 IP 192.168.194.130.22 > 192.168.194.1.4846: Flags [P.], seq 636:896, ack 1, win 304, length 260 21:32:20.323842 IP 192.168.194.130.22 > 192.168.194.1.4846: Flags [P.], seq 896:1060, ack 1, win 304, length 164 21:32:20.323921 IP 192.168.194.1.4846 > 192.168.194.130.22: Flags [.], ack 1060, win 2048, length 0 21:32:20.324016 IP 192.168.194.130.22 > 192.168.194.1.4846: Flags [P.], seq 1060:1320, ack 1, win 304, length 260 21:32:20.324167 IP 192.168.194.130.22 > 192.168.194.1.4846: Flags [P.], seq 1320:1484, ack 1, win 304, length 164 21:32:20.324236 IP 192.168.194.1.4846 > 192.168.194.130.22: Flags [.], ack 1484, win 2053, length 0 21:32:20.324321 IP 192.168.194.130.22 > 192.168.194.1.4846: Flags [P.], seq 1484:1744, ack 1, win 304, length 260 21:32:20.324432 IP 192.168.194.130.22 > 192.168.194.1.4846: Flags [P.], seq 1744:1908, ack 1, win 304, length 164 21:32:20.324493 IP 192.168.194.1.4846 > 192.168.194.130.22: Flags [.], ack 1908, win 2051, length 0 21:32:20.324604 IP 192.168.194.130.22 > 192.168.194.1.4846: Flags [P.], seq 1908:2168, ack 1, win 304, length 260 21:32:20.324721 IP 192.168.194.130.22 > 192.168.194.1.4846: Flags [P.], seq 2168:2332, ack 1, win 304, length 164 21:32:20.324787 IP 192.168.194.1.4846 > 192.168.194.130.22: Flags [.], ack 2332, win 2049, length 0 21:32:20.324873 IP 192.168.194.130.22 > 192.168.194.1.4846: Flags [P.], seq 2332:2592, ack 1, win 304, length 260 21:32:20.324985 IP 192.168.194.130.22 > 192.168.194.1.4846: Flags [P.], seq 2592:2756, ack 1, win 304, length 164 21:32:20.325048 IP 192.168.194.1.4846 > 192.168.194.130.22: Flags [.], ack 2756, win 2048, length 0 20 packets captured 20 packets received by filter 0 packets dropped by kernel
tcpdump -nn -c 个数 -w 文件绝对路径 指定个数抓包保存到指定文件中
[root@arslinux-01 ~]# tcpdump -nn -i ens33 -c 100 -w /tmp/1.cap tcpdump: listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes 100 packets captured 100 packets received by filter 0 packets dropped by kernel
★1.cap 是无法 cat 的
tcpdump -r 目标文件 查看 .cap 文件信息
[root@arslinux-01 ~]# tcpdump -r /tmp/1.cap reading from file /tmp/1.cap, link-type EN10MB (Ethernet) 21:35:18.927071 IP arslinux-01.ssh > 192.168.194.1.contamac_icm: Flags [P.], seq 201800192:201800324, ack 1738015824, win 304, length 132 21:35:18.927369 IP 192.168.194.1.contamac_icm > arslinux-01.ssh: Flags [.], ack 132, win 2049, length 0 21:35:26.000391 IP 192.168.194.1.5758 > arslinux-01.ssh: Flags [P.], seq 3165712486:3165712538, ack 2941816606, win 251, length 52 21:35:26.000710 IP arslinux-01.ssh > 192.168.194.1.5758: Flags [P.], seq 1:53, ack 52, win 279, length 52
不全部列举
tshark 工具
tshark 安装:
[root@arslinux-01 ~]# yum install -y wireshark
查看指定端口 web 访问情况
[root@arslinux-01 ~]# 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" tshark: -R without -2 is deprecated. For single-pass filtering use -Y. Running as user "root" and group "root". This could be dangerous. Capturing on 'nflog' ^C0 packets captured
类似于访问日志,可以查看什么IP访问什么链接
10.11 Linux网络相关
ifconfig 查看网卡 IP(ip addr 也可以)
ifconfig 安装: [root@arslinux-01 ~]# yum install -y net-tools [root@arslinux-01 ~]# ifconfig ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.194.130 netmask 255.255.255.0 broadcast 192.168.194.255 inet6 fe80::c905:5e78:b916:41da prefixlen 64 scopeid 0x20<link> ether 00:0c:29:24:ea:f2 txqueuelen 1000 (Ethernet) RX packets 111502 bytes 32260235 (30.7 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 246917 bytes 63202425 (60.2 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 32 bytes 2592 (2.5 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 32 bytes 2592 (2.5 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ifconfig -a 查看所有网卡信息(包括没有启动的网卡)
[root@arslinux-01 ~]# ifconfig -a ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.194.130 netmask 255.255.255.0 broadcast 192.168.194.255 inet6 fe80::c905:5e78:b916:41da prefixlen 64 scopeid 0x20<link> ether 00:0c:29:24:ea:f2 txqueuelen 1000 (Ethernet) RX packets 111521 bytes 32261789 (30.7 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 246928 bytes 63204505 (60.2 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 32 bytes 2592 (2.5 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 32 bytes 2592 (2.5 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ifup 网卡名 启动网卡
ifdown 网卡名 关闭网卡
[root@arslinux-01 ~]# ifdown ens33 && ifup ens33 成功断开设备 'ens33'。 连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/3)
设置虚拟网卡
思路:拷贝一份网卡配置文件,根据需求更改参数
[root@arslinux-01 ~]# cd /etc/sysconfig/network-scripts/ [root@arslinux-01 network-scripts]# cp ifcfg-ens33 ifcfg-ens33\:0 [root@arslinux-01 network-scripts]# vim !$
vim ifcfg-ens33\:0 TYPE=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:0 DEVICE=ens33:0 ONBOOT=yes IPADDR=192.168.194.132 NETMASK=255.255.255.0 :wq
[root@arslinux-01 network-scripts]# ifdown ens33 && ifup ens33 成功断开设备 'ens33'。 连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/5) [root@arslinux-01 network-scripts]# ifconfig ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.194.130 netmask 255.255.255.0 broadcast 192.168.194.255 inet6 fe80::c905:5e78:b916:41da prefixlen 64 scopeid 0x20<link> ether 00:0c:29:24:ea:f2 txqueuelen 1000 (Ethernet) RX packets 112363 bytes 32333556 (30.8 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 247469 bytes 63281547 (60.3 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.194.132 netmask 255.255.255.0 broadcast 192.168.194.255 ether 00:0c:29:24:ea:f2 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 32 bytes 2592 (2.5 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 32 bytes 2592 (2.5 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
已经多了一个虚拟网卡
mii-tool 网卡名
[root@arslinux-01 network-scripts]# mii-tool ens33 ens33: negotiated 1000baseT-FD flow-control, link ok ## link ok 为连接
ethtool 网卡名
[root@arslinux-01 network-scripts]# ethtool ens33 Settings 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 ## yes 为连接,no 为未连接
hostname 文件位置:/etc/hostname
[root@arslinux-01 ~]# cat /etc/hostname arslinux-01
修改hostname名称
[root@arslinux-01 ~]# hostnamectl set-hostname alexis [root@arslinux-01 ~]# hostname alexis [root@arslinux-01 ~]# cat /etc/hostname alexis
DNS配置文件:/etc/resolv.conf
[root@arslinux-01 ~]# cat /etc/resolv.conf # Generated by NetworkManager nameserver 119.29.29.29
参数由网卡配置文件所定义,哪怕更改,再重启网卡,依然会被恢复为网卡内的参数
/etc/hosts
[root@arslinux-01 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
前面为IP,后面为域名
一行可以有多个域名(空格分隔)
多个相同的域名不同的IP,默认使用最后一个IP
可以设置解析
[root@arslinux-01 ~]# vim /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.194.150 www.baidu.com [root@arslinux-01 ~]# ping www.baidu.com PING www.baidu.com (192.168.194.150) 56(84) bytes of data. 64 bytes from www.baidu.com (192.168.194.150): icmp_seq=1 ttl=64 time=0.056 ms 64 bytes from www.baidu.com (192.168.194.150): icmp_seq=2 ttl=64 time=0.065 ms 64 bytes from www.baidu.com (192.168.194.150): icmp_seq=3 ttl=64 time=0.054 ms ^C --- www.baidu.com ping statistics --- 6 packets transmitted, 6 received, 0% packet loss, time 5000ms rtt min/avg/max/mdev = 0.053/0.062/0.076/0.011 ms
ping 百度,已经跳解析到192,.168.194.150
★这个仅在本机生效
如果指定不同的 IP 对应同一个网址,那么以最后一个生效
扩展
tcp三次握手四次挥手(重点) http://www.doc88.com/p-9913773324388.html
tshark几个用法:http://www.aminglinux.com/bbs/thread-995-1-1.html
修改网卡:
https://blog.csdn.net/jyusun/article/details/71513086
https://blog.csdn.net/u010039418/article/details/79260553
课堂笔记
三次握手小例子:
在红军时代,A连和B连分在左右翼,约定在几时几分一同发起打击。这个几时几分的信息就需要人工通过通讯员来走路传递。所以A连指挥官派出通讯员。
这是第一次。
假设通讯员到达了B连,并且告知了B连指挥官几时几分,B连指挥官一定会让通讯员再回去通知A连指挥官,可怜的通讯员只能冒着危险返回A连,因为A连指挥官看不到通讯员返回的话,不知道几时几分这个信息到底传达到了B连没有。
这是第二次。
现在B连指挥官开始担心通讯员是否回到了A连,如果没回到,B连指挥官会设身处地的想一想A连指挥官见不到返回的通讯员,肯定是不敢打的,所以B连指挥官最盼望的是再次看到通讯员出现在B连,所以A连指挥官会让通讯员再回B连一次。
这是第三次。
这就是三次握手
由于TCP连接时全双工的,因此,每个方向都必须要单独进行关闭,这一原则是当一方完成数据发送任务后,发送一个FIN来终止这一方向的连接,收到一个FIN只是意味着这一方向上没有数据流动了,即不会再收到数据了,但是在这个TCP连接上仍然能够发送数据,直到这一方向也发送了FIN。首先进行关闭的一方将执行主动关闭,而另一方则执行被动关闭,上图描述的即是如此。
第一次挥手:
Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。
第二次挥手:
Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。
第三次挥手:
Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。
CLOSED:初始状态,表示TCP连接是“关闭着的”或“未打开的”。
LISTEN :表示服务器端的某个SOCKET处于监听状态,可以接受客户端的连接。
SYN_RCVD :表示接收到了SYN报文。在正常情况下,这个状态是服务器端的SOCKET在建立TCP连接时的三次握手会话过程中的一个中间状态,很短暂,基本上用netstat很难看到这种状态,除非故意写一个监测程序,将三次TCP握手过程中最后一个ACK报文不予发送。当TCP连接处于此状态时,再收到客户端的ACK报文,它就会进入到ESTABLISHED 状态。
SYN_SENT :这个状态与SYN_RCVD 状态相呼应,当客户端SOCKET执行connect()进行连接时,它首先发送SYN报文,然后随即进入到SYN_SENT 状态,并等待服务端的发送三次握手中的第2个报文。SYN_SENT 状态表示客户端已发送SYN报文。
ESTABLISHED :表示TCP连接已经成功建立。
FIN_WAIT_1 :这个状态得好好解释一下,其实FIN_WAIT_1 和FIN_WAIT_2 两种状态的真正含义都是表示等待对方的FIN报文。而这两种状态的区别是:FIN_WAIT_1状态实际上是当SOCKET在ESTABLISHED状态时,它想主动关闭连接,向对方发送了FIN报文,此时该SOCKET进入到FIN_WAIT_1 状态。而当对方回应ACK报文后,则进入到FIN_WAIT_2 状态。当然在实际的正常情况下,无论对方处于任何种情况下,都应该马上回应ACK报文,所以FIN_WAIT_1 状态一般是比较难见到的,而FIN_WAIT_2 状态有时仍可以用netstat看到。
FIN_WAIT_2 :上面已经解释了这种状态的由来,实际上FIN_WAIT_2状态下的SOCKET表示半连接,即有一方调用close()主动要求关闭连接。注意:FIN_WAIT_2 是没有超时的(不像TIME_WAIT 状态),这种状态下如果对方不关闭(不配合完成4次挥手过程),那这个 FIN_WAIT_2 状态将一直保持到系统重启,越来越多的FIN_WAIT_2 状态会导致内核crash。
TIME_WAIT :表示收到了对方的FIN报文,并发送出了ACK报文。 TIME_WAIT状态下的TCP连接会等待2*MSL(Max Segment Lifetime,最大分段生存期,指一个TCP报文在Internet上的最长生存时间。每个具体的TCP协议实现都必须选择一个确定的MSL值,RFC 1122建议是2分钟,但BSD传统实现采用了30秒,Linux可以cat /proc/sys/net/ipv4/tcp_fin_timeout看到本机的这个值),然后即可回到CLOSED 可用状态了。如果FIN_WAIT_1状态下,收到了对方同时带FIN标志和ACK标志的报文时,可以直接进入到TIME_WAIT状态,而无须经过FIN_WAIT_2状态。
CLOSING :这种状态在实际情况中应该很少见,属于一种比较罕见的例外状态。正常情况下,当一方发送FIN报文后,按理来说是应该先收到(或同时收到)对方的ACK报文,再收到对方的FIN报文。但是CLOSING 状态表示一方发送FIN报文后,并没有收到对方的ACK报文,反而却也收到了对方的FIN报文。什么情况下会出现此种情况呢?那就是当双方几乎在同时close()一个SOCKET的话,就出现了双方同时发送FIN报文的情况,这是就会出现CLOSING 状态,表示双方都正在关闭SOCKET连接。
CLOSE_WAIT :表示正在等待关闭。怎么理解呢?当对方close()一个SOCKET后发送FIN报文给自己,你的系统毫无疑问地将会回应一个ACK报文给对方,此时TCP连接则进入到CLOSE_WAIT状态。接下来呢,你需要检查自己是否还有数据要发送给对方,如果没有的话,那你也就可以close()这个SOCKET并发送FIN报文给对方,即关闭自己到对方这个方向的连接。有数据的话则看程序的策略,继续发送或丢弃。简单地说,当你处于CLOSE_WAIT 状态下,需要完成的事情是等待你去关闭连接。
LAST_ACK :当被动关闭的一方在发送FIN报文后,等待对方的ACK报文的时候,就处于LAST_ACK 状态。当收到对方的ACK报文后,也就可以进入到CLOSED 可用状态了。
ip命令使用
1. 设置和删除IP
ip addr add 192.168.10.10/24 dev eth0
ip addr show eth0
ip addr del 192.168.10.10/24 dev eth0
2. 路由相关设置
ip route show
ip route add default via 192.168.10.1
ip route add 192.168.5.0/24 dev eth0
ip route del 192.168.10.1
另外用route命令来管理路由:
(a)、网络路由
route add -net 192.168.1.0/24 gw 172.16.1.106
(b)、主机路由
route add -host 192.168.1.110 gw 172.16.1.106
(c)、默认路由
route add default gw 172.16.1.106
或
route add -net 0.0.0.0 gw 172.16.1.106
(d)、删除路由
route del -host 192.168.1.110
route del -net 192.168.1.0/24
3. 显示网络统计数据
ip -s link
ip -s -s link ls eth0
4. 停止开启网卡
ip link set eth0 down
ip linke set eth0 up
更改网卡名字
ip link set ens37 name eth1
永久保存:https://blog.csdn.net/jyusun/article/details/71513086