linux端口,进程管理,主机状态监控
- 一、端口
- 1、什么是端口?
- 2、端口的划分
- 2、查看端口占用
- 二、进程
- 1、什么是进程
- 2、查看进程信息
- 2、关闭进程
- 三、主机状态监控
- 1、查看资源占用
- 2、磁盘信息监控
- 3、查看网络情况
- 四、命令总结
一、端口
1、什么是端口?
端口是指计算机和外部交互的出入口,可以分为物理端口和虚拟端口
- 物理端口: USB、HDMI、DP、VGA、RJ45等
- 虚拟端口: 操作系统和外部交互的出入口
IP只能确定计算机, 通过端口才能锁定要交互的程序
2、端口的划分
Linux系统是一个超大号小区,可以支持65535个端口,这6万多个端口分为3类进行使用
-
公认端口: 1~1023,通常用于一些系统内置或知名程序的预留使用,如SSH服务的22端口, HTTPS服务的443端口非特殊需要,不要占用这个范围的端口
-
注册端口: 1024~49151,通常可以随意使用,用于松散的绑定一些 程序/服务
-
动态端口: 49152~65535,通常不会固定绑定程序,而是当程序对外进行网络链接时,用于临时使用。
2、查看端口占用
查看端口占用情况: 下载yum install net-tools
netstat -anp | grep 3306 # 通过管道过滤出3306
协议 接收队列 发送队列 本地地址 外部地址 状态 PID/程序名称
tcp6 0 0 :::33060 :::* LISTEN 1568/mysqld
tcp6 0 0 :::3306 :::* LISTEN 1568/mysqld
二、进程
1、什么是进程
进程是指程序在操作系统内运行后被注册为系统内的一个进程,并拥有独立的进程ID(进程号)
2、查看进程信息
ps命令查看Linux系统中的进程信息
ps [-e -f] # -e, 显示出全部的进程 -f, 以完全格式化的形式展示信息
固定用法就是: ps -ef
列出全部进程的全部信息
从左到右分别是∶
-
UID︰进程所属的用户ID
-
PID︰进程的进程号ID
-
PPID∶进程的父ID(启动此进程的其它进程)
-
C: 此进程的CPU占用率(百分比)
-
STIME︰进程的启动时间
-
TTY∶启动此进程的终端序号,如显示?,表示非终端启动
-
TIME∶进程占用CPU的时间
-
CMD∶进程对应的名称或启动路径或启动命令
2、关闭进程
kill [-9] 进程ID # -9强制关闭,不使用此选项会向进程发送信号要求其关闭,但是否关闭看进程自身的处理机制。
三、主机状态监控
1、查看资源占用
可以通过top命令查看CPU、内存使用情况,类似windows的任务管理器
默认每5秒刷新一次,语法: 直接输入top即可,按q或ctrl+ c退出
top # 下图一般关注红色即可,us:用户CPU使用率, sy:系统CPU使用率,free:空闲物理内存, used:使用物理内存
前五行
top - 11:38:02 up 59 min, 1 user, load average: 0.09, 0.06, 0.05
top:命令名称, 11:38:02:当前系统时间, up 59 min:启动了59分钟, 1 user:1个用户登录, load:1、5、15分钟平均负载
Tasks: 155 total, 2 running, 153 sleeping, 0 stopped, 0 zombie
Tasks:155个进程, 2 running:2个进程子在运行, 153 sleeping:174个进程睡眠, 0个停止进程, 0个僵尸进程
%Cpu(s): 0.1 us, 0.2 sy, 0.0 ni, 99.2 id, 0.4 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu(s):CPU使用率, us:用户CPU使用率, sy:系统CPU使用率, ni:高优先级进程占用CPU时间百分比, id:空闲CPU率, wa:IO等待CPU占用率, hi: CPU硬件中断率,si: CPU软件中断率,st:强制等待占用CPU率
KiB Mem : 8634968 total, 7184008 free, 653828 used, 797132 buff/cache
Kib Mem:物理内存, total:总量, free:空闲, used:使用,buff/cache: buff和cache占用
KiB Swap: 3801084 total, 3801084 free, 0 used. 7721080 avail Mem
KibSwap:虚拟内存(交换空间), total:总量, free:空闲, used:使用, buff/cache: buff和cache占用
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1568 mysql 20 0 2316496 401948 16268 S 0.7 4.7 0:37.47 mysqld
1653 root 20 0 113948 2188 1332 S 0.7 0.0 0:11.34 bash
749 root 20 0 273004 4800 3660 S 0.3 0.1 0:07.84 vmtoolsd
1631 root 20 0 157936 6636 5080 S 0.3 0.1 0:07.09 sshd
22606 root 20 0 162116 2332 1596 R 0.3 0.0 0:00.02 top
1 root 20 0 43872 4272 2568 S 0.0 0.0 0:01.09 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
4 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.00 ksoftirqd/0
7 root rt 0 0 0 0 S 0.0 0.0 0:00.31 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 R 0.0 0.0 0:03.54 rcu_sched
-
PID: 进程id
-
USER:进程所属用户
-
PR:进程优先级,越小越高
-
NI:负值表示高优先级,正表示低优先级
-
VIRT:进程使用虚拟内存,单位KB
-
RES:进程使用物理内存,单位KB
-
SHR:进程使用共享内存,单位KB
-
S:进程状态(S休眠,R运行,Z僵死状态,N负数优先级,l空闲状态)
-
%CPU:进程占用CPU率
-
%MEM:进程占用内存率
-
TIME+:进程使用CPU时间总计,单位10毫秒
-
COMMAND:进程的命令或名称或文件路径
top的一些选项
选项 | 功能 |
---|---|
-p | 只显示某个进程的信息 |
-d | 设置刷新时间,默认是5s |
-c | 显示产生进程的完整命令,默认是进程名 |
-n | 指定刷新次数,比如top -n 3,刷新输出3次后退出 |
-b | 以非交互非全屏模式运行,以批次的方式执行top,一般配合-n指定输出几次统计信息,将输出重定向到指定文件,比如top -b -n 3 > /tmp /top.tmp |
-i | 不显示任何闲置(idle)或无用(zombie)的进程 |
-u | 查找特定用户启动的进程 |
top交互式选项
当top以交互式运行(非-b选项启动),可以用以下交互式命令进行控制
按键 | 功能 |
---|---|
按下h键 | 会显示帮助画面 |
按下c键 | 会显示产生进程的完整命令,等同于-c参数,再次按下c键,变为默认显示 |
按下f键 | 可以选择需要展示的项目 |
按下M键 | 根据驻留内存大小(RES)排序 |
按下P键 | 根据CPU使用百分比大小进行排序 |
按下T键 | 根据时间/累计时间进行排序 |
按下E键 | 切换顶部内存显示单位 |
按下e键 | 切换进程内存显示单位 |
按下l键 | 切换显示平均负载和启动时间信息 |
按下i键 | 不显示闲置或无用的进程,等同于-i参数,再次按下,变为默认显示 |
按下t键 | 切换显示CPU状态信息 |
按下m键 | 切换显示内存信息 |
2、磁盘信息监控
使用df命令,可以查看硬盘的使用情况
df [-h] # -h,以更加人性化的单位显示
df -h
文件系统的名称或类型 文件系统的总大小 已用空间 可用空间 使用百分比 挂载点
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.2G 0 4.2G 0% /dev
tmpfs 4.2G 0 4.2G 0% /dev/shm
tmpfs 4.2G 12M 4.2G 1% /run
tmpfs 4.2G 0 4.2G 0% /sys/fs/cgroup
/dev/mapper/centos-root 36G 16G 20G 46% /
/dev/sda1 1014M 239M 776M 24% /boot
tmpfs 844M 0 844M 0% /run/user/0
/dev/sr0 4.6G 4.6G 0 100% /mnt/centos
可以使用iostat查看CPU、磁盘的相关信息
iostat [-x] [num1] [num2] # -x显示更多信息, num1刷新间隔,num2刷新次数
tostat -x
名称 | 解释 |
---|---|
rrqm/s: | 每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge,提高lO利用率,避免重复调用); |
wrqm/s: | 每秒这个设备相关的写入请求有多少被Merge了。 |
rsec/s: | 每秒读取的扇区数; sectors |
wsec/: | 每秒写入的扇区数。 |
rKB/s: | 每秒发送到设备的读取请求数 |
wKB/s: | 每秒发送到设备的写入请求数 |
avgrq-sz | 平均请求扇区的大小 |
avgqu-sz | 平均请求队列的长度。毫无疑问,队列长度越短越好。 |
await: | 每一个IO请求的处理的平均时间(单位是微秒毫秒)。 |
svctm | 表示平均每次设备l/O操作的服务时间(以毫秒为单位) |
%util: | 磁盘利用率 |
3、查看网络情况
可以使用sar命令查看网络的相关统计(sar命令非常复杂,这里仅简单用于统计网络)
sar -n DEV num1 num2 # 选项: -n,查看网络,DEV表示查看网络接口, num1:刷新间隔(不填就查看一次结束) , num2:查看次数(不填无限次数)
名称 | 解释 |
---|---|
IFACE | 本地网卡接口的名称 |
rxpck/s | 每秒钟接受的数据包 |
txpck/s | 每秒钟发送的数据包 |
rxKB/S | 每秒钟接受的数据包大小,单位为KB |
KBtxKB/S | 每秒钟发送的数据包大小,单位为KB |
rxcmp/s | 每秒钟接受的压缩数据包 |
txcmp/s | 每秒钟发送的压缩包 |
rxmcst/s | 每秒钟接收的多播数据包 |
四、命令总结
# net-tools查看端口占用情况
netstat -anp | grep xxx
# 查看Linux系统中的进程信息
ps [-e -f] # -e, 显示出全部的进程 -f, 以完全格式化的形式展示信息
# 关闭进程
kill [-9] 进程ID # -9强制关闭,不使用此选项会向进程发送信号要求其关闭,但是否关闭看进程自身的处理机制。
# 查看资源信息
top
# 查看硬盘的使用情况
df [-h] # -h,以更加人性化的单位显示
# 查看CPU、磁盘的相关信息
iostat [-x] [num1] [num2] # -x显示更多信息, num1刷新间隔,num2刷新次数
# 查看网络情况
sar -n DEV [num1] [num2] # 选项: -n,查看网络,DEV表示查看网络接口, num1:刷新间隔(不填就查看一次结束) , num2:查看次数(不填无限次数)