1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Linux命令进阶-cpu监控内存监控文件IO网络IO性能分析

Linux命令进阶-cpu监控内存监控文件IO网络IO性能分析

时间:2022-09-22 10:15:21

相关推荐

Linux命令进阶-cpu监控内存监控文件IO网络IO性能分析

Linux命令进阶-cpu监控内存监控文件IO网络IO性能分析

前言1 linux基础命令1.1 grep1.2 ls1.3 find1.4 ulimit1.5 curl1.6 scp1.7 dos2unix和unix2dos1.8 sed1.9 awk2 cpu性能监测2.1 uptime2.2 stress2.3 mpstat2.4 ps2.5 top2.6 pidstat3 内存监测3.1 free4 文件IO4.1 iostat4.2 df4.3 du5 网络IO查看5.1 ifconfig5.2 netstat5.3 ping5.4 nslookup5.5 tcpdump5.6 nc

前言

作为一名linux工程师,我们需要时刻关注设备的cpu性能,内存和网络io等指标,以便保持系统正常运转,同时也是为了检查程序的性能。

这里奉上大神的博客想进一步深造的可以去观摩一下:

1 linux基础命令

#这里不展开讲,只是列出一些常用的命令,想要进一步了解每一个参数,可以利用help查看参数具体使用规则,也可以上网单独查看某一条命令详解。

1.1 grep

grep 作为linux内容查找利器,当之无愧霸榜,用的也是最多的命令。

#其中i:忽略大小写;r:递归查找目录;n:打印行号;v:反向查找;c:显示匹配的行数;等等

grep -irn ./test

1.2 ls

查看目录下文件情况,对于修改时间,权限查看也是非常常用的命令

#l:显示条目;h:显示GB,M,K等自适应;a:显示所有

ls -lah ./test

1.3 find

find查找文件利器,通过文件名查找文件的所在位置,文件名查找支持模糊匹配

find [指定查找目录] [查找规则] [查找完后执行的action]

#忽略大小写查询test.txt文件

find ./test -iname test.txt

1.4 ulimit

查看用户资源,常用与查看系统当前支持的文件句柄数,进程数等等;

#查看所有用:-a

ulimit -a

#临时修改先查看所有带的命令参数;

#如修改:文件句柄数:-n

ulimit -n 4096

core file size(blocks, -c) 0data seg size (kbytes, -d) unlimitedscheduling priority (-e) 0file size(blocks, -f) unlimitedpending signals (-i) 7380max locked memory (kbytes, -l) 16384max memory size (kbytes, -m) unlimitedopen files (-n) 1024pipe size (512 bytes, -p) 8POSIX message queues(bytes, -q) 819200real-time priority (-r) 0stack size (kbytes, -s) 8192cpu time(seconds, -t) unlimitedmax user processes (-u) 1024virtual memory(kbytes, -v) unlimitedfile locks (-x) unlimited

1.5 curl

curl 是常用的命令行工具,用来请求 Web 服务器。

#在http访问上用的比较多

curl -v “”

1.6 scp

远程拷贝神器,告别u盘;

#用户名@ip:路径文件 目标目录

scp root@192.168.88.20:/home/disk/test/libcrypto.a ./test

1.7 dos2unix和unix2dos

用于转换Windows和UNIX的换行符,通常在Windows系统h开发的脚本和配置,UNIX系统下都需要转

换。

#转换整个目录

find . -type f -exec dos2unix {} ;

1.8 sed

详细参考:github-sed

1 替换

-n 表明忽略执行过程的输出,只输出我们的结果即可。 -i 。使用此参数后,所有改动将在原文件上执行。你的输出将覆盖原文件。非常危险,一定要注意。

#sed ‘s/原字符串/新字符串/g’ 文件,替换

sed -n ‘s/sudo/test_sudo/g’ README.md

2 操作

p 对匹配内容进行打印。d 对匹配内容进行删除。这个时候就要去掉-n

参数了,想想为什么。w 将匹配内容写入到其他地方。

sed -n ‘2,5 p’ test.cpp

sed ‘2,5 d’ test.cpp

sed -n ‘2,5 w output.txt’ test.cpp

1.9 awk

详细参考:github-awk

awk [可选的命令行选项] ‘BEGIN{命令 } pattern{ 命令 } END{ 命令 }’ 文件名

#ip拆分

echo ‘192.168.1.1’ | awk -F “.” ‘{print $2}’

168

注意点:

1、awk的主程序部分使用单引号‘包围,而不能是双引号2、awk的列开始的index是0,而不是1

2 cpu性能监测

2.1 uptime

查看机器的启动时间、登录用户、平均负载等情况,通常用于在线上应急或者技术攻关中,确定操作系

统的重启时间。

查看虚拟机运行的状态

17:24:31 up 13 days, 3:00, 2 users, load average: 0.05, 0.01, 0.00

当前时间: 17:24:31

系统已经运行的时间:13 days, 3:00

前在线用户:2 个用户,是总连接数量,不是不同用户数量(开一个终端连接就算一个用户)。

系统平均负载:0.05, 0.01, 0.00,为最近1分钟、5分钟、15分钟的系统负载情况。

注意点:

负载说明(现针对单核情况,不是单核时则乘以核数):

load<1:没有等待load==1:系统已无额外的资源跑更多的进程了load>1:进程都堵着等待资源

查看cpu核数:

grep ‘model name’ /proc/cpuinfo | wc -l

2.2 stress

压测cpu工具stress :

stress ,一个 Linux 系统压力测试工具,这里我们用作异常进程模拟平均负载升高的场景。

apt install stress

#模拟一个cpu使用率100%运行600s

stress --cpu 1 --timeout 600

2.3 mpstat

cpu性能分析工具mpstat:

mpstat 是一个常用的多核 CPU 性能分析工具,用来实时查看每个 CPU 的性能指标,以及所有 CPU 的平均指标。

mpstat [-P {cpu|ALL}] [internal [count]]

apt install sysstat

#每5s打印一次cpu列表使用情况

mpstat -P ALL 5

2.4 ps

进程查看

#显示所有的线程

#查看进程是否启动

sudo ps -ef |grep “nginx” |grep -v grep

2.5 top

top命令用于查看活动进程的CPU和内存信息,能够实时显示系统中各个进程的资源占用情况,可以按照

CPU、内存的使用情况和执行时间对进程进行排序。

2.6 pidstat

pidstat用于监控全部或指定的进程占用系统资源的情况,包括CPU、内存、磁盘I/O、程切换、线程数等

数据。

u:显示cpu相关的性能指标;r:输出内存的使用信息;d:输出磁盘I/O的使用信息

pidstat -urd -p 进程号

#每5秒打印一次上下文切换

pidstat -w 5

注意:

一个是 cswch ,表示每秒自愿上下文切换(voluntary

context switches)的次数,另一个则是 nvcswch ,表示每秒非自愿上下文切换(non voluntary

context switches)的次数。

所谓自愿上下文切换,是指进程无法获取所需资源,导致的上下文切换。比如说, I/O、内存等系 统资源不足时,就会发生自愿上下文切换。而非自愿上下文切换,则是指进程由于时间片已到等原因,被系统强制调度,进而发生的上下文切 换。比如说,大量进程都在争抢 CPU

时,就容易发生非自愿上下文切换。

3 内存监测

3.1 free

free各个字段的含义:

total 列显示系统总的可用物理内存和交换空间大小。used 列显示已经被使用的物理内存和交换空间。free 列显示还有多少物理内存和交换空间可用使用。shared 列显示被共享使用的物理内存大小。buffers 是对原始磁盘块的临时存储,也就是用来缓存磁盘的数据。cached 是从磁盘读取文件的页缓存,也就是用来缓存从文件读取的数据。

free -h

4 文件IO

4.1 iostat

显示所有cpu的平均统计数据;这里需要关注一个参数%iowait:等待磁盘io所消耗的cpu比例

4.2 df

查看文件系统的硬盘挂载点和空间使用情况。

df -h

4.3 du

显示目录和目录下子目录和文件占用磁盘空间的大小。

#显示当前目录下一级目录falsh占用情况

du -lh --max-depth=1

5 网络IO查看

5.1 ifconfig

查看网络状态,包括ip,mac地址;RUNNING表示当前网络正常工作;MTU数据大小;相关丢包错误等信息,对于网络基本信息基本描述。

5.2 netstat

查看网络套接字连接情况。

#-l只显示监听套接字;n表示显示数字地址和端口;p显示进程信息-t 表示只显示 TCP 套接字-u只显示udp

netstat -nlp

#查看协议栈信息

netstat -s

#检查进程开启的端口

netstat -nap | grep 进程号

#检查端口占用

netstat -nap | grep 端口号

5.3 ping

连通性检查

5.4 nslookup

检测网络中DNS服务器能否正确解析域名的工具命令

nslookup

5.5 tcpdump

抓包利器

5.6 nc

检查网络连通性,有时候为了检查端口是否被防火墙拦截,采用这种方式检查。

#客户机A,监听8888端口

nc -l 8888

#客户机B,连接端口8888

nc -vw 2 192.168.88.44 8888

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。