前言

如果本文中的命令无法使用,那么先apt install xxx
如果apt install xxx不成功,就先升级aptapt update,然后再安装apt install xxx
如果以上操作不成功,可以加上sudo前缀重试一遍。

整机:top

iostat命令能打时间吗 tabstat命令怎么用_linux

主要关注load averageCPUMEM
load average也就是系统的负载均衡,一共三个值,分别代表1分钟、5分钟、15分钟系统的平均负载值。
如果三个值相加除以3再乘以100%的结果大于60%,则表示系统负荷过高。

top命令后,一直按键盘上的1,则会显示每个CPU内核的详细情况。

iostat命令能打时间吗 tabstat命令怎么用_linux_02


top命令后,按shift+H,可以显示线程数(或者top -H也行)。

整机:uptime

top的精简版。

整机:pidstat

# pidstat和pidstat -u效果等同,默认就是pidstat -u
pidstat -u -p ALL

iostat命令能打时间吗 tabstat命令怎么用_运维_03


显示进程CPU使用信息。

# -u,即显示CPU,-p,即指定进程号
pidstat -u -p 888

显示进程内存使用信息。

pidstat -p 470 -r 2 # 2表示2秒钟采集一次,循环输出,有点像tail

显示进程IO使用信息。

pidstat -p 470 -d 2 # 2表示2秒钟采集一次,循环输出,有点像tail

参数说明:

-u:显示各个进程的cpu使用统计
-r:显示各个进程的内存使用统计
-d:显示各个进程的IO使用情况
-p:指定进程号
-w:显示每个进程的上下文切换情况
-t:显示选择任务的线程的统计信息外的额外信息
-T { TASK | CHILD | ALL }
这个选项指定了pidstat监控的。TASK表示报告独立的task,CHILD关键字表示报告进程下所有线程统计信息。ALL表示报告独立的task和task下面的所有线程。
注意:task和子线程的全局的统计信息和pidstat选项无关。这些统计信息不会对应到当前的统计间隔,这些统计信息只有在子线程kill或者完成的时候才会被收集。
-V:版本号
-h:在一行上显示了所有活动,这样其他程序可以容易解析。
-I:在SMP环境,表示任务的CPU使用率/内核数量
-l:显示命令名和所有参数

-u结果说明:

PID:进程ID
%usr:进程在用户空间占用cpu的百分比
%system:进程在内核空间占用cpu的百分比
%guest:进程在虚拟机占用cpu的百分比
%CPU:进程占用cpu的百分比
CPU:处理进程的cpu编号
Command:当前进程对应的命令

-r结果说明:

Minflt/s:任务每秒发生的次要错误,不需要从磁盘中加载页
Majflt/s:任务每秒发生的主要错误,需要从磁盘中加载页
VSZ:虚拟地址大小,虚拟内存的使用KB
RSS:常驻集合大小,非交换区五里内存使用KB

-d结果说明:

kB_rd/s:每秒从磁盘读取的KB
kB_wr/s:每秒写入磁盘KB
kB_ccwr/s:任务取消的写入磁盘的KB。当任务截断脏的pagecache的时候会发生。

-w结果说明:

Cswch/s:每秒主动任务上下文切换数量
Nvcswch/s:每秒被动任务上下文切换数量

-t结果说明:

TGID:主线程(线程组)的标识
TID:线程id
%usr:进程在用户空间占用cpu的百分比
%system:进程在内核空间占用cpu的百分比
%guest:进程在虚拟机占用cpu的百分比
%CPU:进程占用cpu的百分比
CPU:处理进程的cpu编号

-T结果说明:

Usr-ms:任务和子线程在用户级别使用的毫秒数。
System-ms:任务和子线程在系统级别使用的毫秒数。
Guest-ms:任务和子线程在虚拟机(running a virtual processor)使用的毫秒数。

CPU: vmstat

一般 vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数。

# 间隔2秒,采样3次
vmstat-n 2 3

结果说明:
procs
r,运行和等待CPU时间片的进程数,原则上1核的CPU的运行队列不要超过2,整个系统的运行队列不能超过总核数的2倍,否则代表系统压力过大。
b,等待资源的进程数,比如正在等待磁盘I/0、网络I/0等。
cpu
us,用户进程消耗CPU时间百分比,us值高,用户进程消耗CPU时间多,如果长期大于5O%,优化程序。
sy,内核进程消耗的CPU时间百分比。
us+sy,参考值为80%,如果us+sy大于80%,说明可能存在CPU不足。
id,处于空闲的CPU百分比。
wa,系统等待IO的CPU时间百分比。
st,来自于一个虚拟机偷取的CPU时间的百分比。

查看CPU详细信息:

# 显示所有CPU信息,间隔2秒采集一次
mpstat-P ALL 2

内存:free

# -m,即按MB单位显示内存信息;-g,即按GB单位显示内存信息。
free -m

iostat命令能打时间吗 tabstat命令怎么用_iostat命令能打时间吗_04

结果说明:
total,内存总大小。
used,内存已使用大小。
free,内存剩余大小。
use,磁盘已使用百分比。
hared,多个进程共享的内存总额。
buff/cache,磁盘的缓存大小。
available,可以被新应用程序使用的内存大小。

当可用物理内存占比低于20%,可认为系统内存不足,应该更换更大的内存条。

Mem:物理内存
Swap:虚拟内存

swap介绍:
Linux 的交换分区(swap),或者叫内存置换空间(swap space),是磁盘上的一块区域,可以是一个分区,也可以是一个文件,或者是他们的组合。

SWAP的作用类似Windows系统下的“虚拟内存”。当物理内存不足时,拿出部分硬盘空间当SWAP分区(虚拟成内存)使用,从而解决内存容量不足的情况。

SWAP意思是交换,顾名思义,当某进程向OS请求内存发现不足时,OS会把内存中暂时不用的数据交换出去,放在SWAP分区中,这个过程称为SWAP OUT。当某进程又需要这些数据且OS发现还有空闲物理内存时,又会把SWAP分区中的数据交换回物理内存中,这个过程称为SWAP IN。

当然,swap大小是有上限的,一旦swap使用完,操作系统会触发OOM-Killer机制,把消耗内存最多的进程kill掉以释放内存。

硬盘:df

df -h

结果说明:
size,磁盘总大小。
used,磁盘已使用大小。
avail,磁盘剩余大小。
use,磁盘已使用百分比。

磁盘IO: iostat

iostat -xdk 2 3 # 每隔2秒钟采集一次,总共采集3次

iostat命令能打时间吗 tabstat命令怎么用_子线程_05


结果说明:

rkB/s,每秒读取数据量kB。

wkB/s,每秒写入数据量kB。

r_await,读的平均等待时间,单位毫秒;值越小,性能越好。

w_await,写的平均等待时间,单位毫秒;值越小,性能越好。

util,一秒中有百分几的时间用于l/O操作,接近100%时,表示磁盘带宽跑满,需要优化程序或者增加磁盘。

rkB/s、wkB/s根据系统应用不同会有不同的值,但有规律遵循:长期、超大数据读写,肯定不正常,需要优化程序读取。

网络lO: ifstat

ifstat 2 # 每隔2秒采集1次,不写默认就是1秒采集1次

结果说明:
KB/s in,下载网速,如果转化成通用的Kb/s需要乘以8。
KB/s out,上传网速,如果转化成通用的Kb/s需要乘以8。

防火墙

centos

一、防火墙的开启、关闭、禁用命令

(1)设置开机启用防火墙:

systemctl enable firewalld.service

(2)设置开机禁用防火墙:

systemctl disable firewalld.service

(3)启动防火墙:

systemctl start firewalld

(4)关闭防火墙:

systemctl stop firewalld

(5)检查防火墙状态:

systemctl status firewalld

二、使用firewall-cmd配置端口

(1)查看防火墙状态:

firewall-cmd --state

(2)重新加载配置:

firewall-cmd --reload

(3)查看开放的端口:

firewall-cmd --list-ports

(4)开启防火墙端口:

firewall-cmd --zone=public --add-port=9200/tcp --permanent

命令含义:

–zone #作用域

–add-port=9200/tcp #添加端口,格式为:端口/通讯协议

–permanent #永久生效,没有此参数重启后失效

注意:添加端口后,必须用命令firewall-cmd --reload重新加载一遍才会生效

(5)关闭防火墙端口:

firewall-cmd --zone=public --remove-port=9200/tcp --permanent

ubuntu

1.查看防火墙当前状态

sudo ufw status

2.开启防火墙

sudo ufw enable

3.关闭防火墙

sudo ufw disable

4.查看防火墙版本

sudo ufw version

5.默认允许外部访问本机

sudo ufw default allow

6.默认拒绝外部访问主机

sudo ufw default deny

7.允许外部访问53端口

sudo ufw allow 53

8.拒绝外部访问53端口

sudo ufw deny 53

9.允许某个IP地址访问本机所有端口

sudo ufw allow from 192.168.0.1