linux端口,进程管理,主机状态监控

linux端口,进程管理,主机状态监控

一、端口

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:查看次数(不填无限次数)

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 22:00:03       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 22:00:03       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 22:00:03       57 阅读
  4. Python语言-面向对象

    2024-07-15 22:00:03       68 阅读

热门阅读

  1. AWS云计算实战:电商平台发卡机器人开发指南

    2024-07-15 22:00:03       23 阅读
  2. lua 实现一个 StateMachine状态机

    2024-07-15 22:00:03       19 阅读
  3. vim全局替换、添加新行、同时注释多行

    2024-07-15 22:00:03       20 阅读
  4. 算法题——冒泡排序

    2024-07-15 22:00:03       16 阅读
  5. 构建加速秘籍:精通Gradle构建启动参数

    2024-07-15 22:00:03       20 阅读
  6. FATE Flow 源码解析 - 资源分配流程

    2024-07-15 22:00:03       17 阅读
  7. 每天一个数据分析题(四百二十九)- 假设检验

    2024-07-15 22:00:03       20 阅读
  8. Redis6.2.1版本集群新加副本

    2024-07-15 22:00:03       23 阅读
  9. Linux-线程同步(条件变量、POSIX信号量)

    2024-07-15 22:00:03       21 阅读