linux比较好用的几个工具
1.nethogs介绍
分享一个linux 下检测系统进程占用带宽情况的检查。来自github上的开源工具。
它不依赖内核中的模块。当我们的服务器网络异常时,可以通过运行nethogs程序来检测是那个程序占用了大量带宽。节省了查找时间。
安装方法
1.在epel 源中可以直接yum 安装(推荐使用方式,和系统吻合)
yum install epel-release -y
yum install libpcap nethogs -y
2.源码方式安装
注意:http://sourceforge.net/projects/nethogs/files/nethogs/0.8/nethogs-0.8.0.tar.gz/download 这里下载的这个8.0 有BUG
creating socket failed are you root,
yum install gcc-c++ libpcap-devel.x86_64 libpcap.x86_64 ncurses*
git clone https://github.com/raboof/nethogs Initialized empty Git repository in /root/nethogs/.git/ remote: Counting objects: 1193, done. remote: Total 1193 (delta 0), reused 0 (delta 0), pack-reused 1193 Receiving objects: 100% (1193/1193), 1.22 MiB | 29 KiB/s, done. Resolving deltas: 100% (789/789), done.
cd nethogs/ make make install
完成上面步骤就算安装完成了。如果编译失败的话,大部分是缺少编译环境。
使用方法
直接运行nethogs 就可以查看当前占用带宽的进程
我们检测 eth0,运行一下命令
nethogs eth0
图中第一行就是测试中的流量记录,表示192.168.40.250这台客户端去访问我的80 端口所占用的带宽。
在PID 那一列,可以使用 lsof -p pid 查看进程测试。
或者用lsof -i :端口号,来查看是哪些进程在占用。如查看80端口 lsof -i :80
2. 硬盘读取性能测试 - IOZone
IOZone 是一款 Linux 文件系统性能测试工具 可以测试不同的操作系统中文件系统的读写性能。
可以测试 Read, write, re-read,re-write, read backwards, read strided, fread, fwrite, random read, pread,mmap, aio_read, aio_write
等等不同的模式下的硬盘的性能
测试的时候请注意,设置的测试文件的大小一定要大过你的内存(最佳为内存的两倍大小),不然linux会给你的读写的内容进行缓存。会使数值非常不真实.
下载:http://www.iozone.org/src/current/
[root@localhost current]# tar xvf iozone3_487.tar
[root@localhost ~]# cd iozone3_487/src/current/
[root@localhost current]# make linux
[root@localhost current]# ./iozone -a -n 512m -g 16g -i 0 -i 1 -i 5 -f /mnt/iozone -Rb ./iozone.xls
iozone常用的几个参数.
-a 全面测试,比如块大小它会自动加
-i N 用来选择测试项, 比如Read/Write/Random 比较常用的是0 1 2,可以指定成-i 0 -i 1 -i2.这些别的详细内容请查man
0=write/rewrite
1=read/re-read
2=random-read/write
3=Read-backwards
4=Re-write-record
5=stride-read
6=fwrite/re-fwrite
7=fread/Re-fread
8=random mix
9=pwrite/Re-pwrite
10=pread/Re-pread
11=pwritev/Re-pwritev
12=preadv/Re-preadv
-r block size 指定一次写入/读出的块大小
-s file size 指定测试文件的大小
-f filename 指定测试文件的名字,完成后会自动删除(这个文件必须指定你要测试的那个硬盘中)
-F file1 file2... 指定多线程下测试的文件名
批量测试项:
-g -n 指定测试文件大小范围,最大测试文件为4G,可以这样写 -g 4G
-y -q 指定测试块的大小范围
输出:
下面是几个日志记录的参数.好象要输出成图象进行分析,需要指定-a的测试才能输出
-R 产生Excel到标准输出
-b 指定输出到指定文件上. 比如 -Rb ttt.xls
我的测试实例:
#./iozone -a -n 512m -g 4g -i 0 -i 1 -i 5 -f /mnt/iozone -Rb ./iozone.xls
注:进行全面测试.最小测试文件为512M直到测试到4G.测试read,write,和Strided Read.测试的地方在mnt下。生成Excel的文件.
./iozone -i 0 -i 1 -f /iozone.tmpfile -Rab /test-iozone.xls -g 8G -n 4G -C
结果分析:
使用这条测试命令测试NAS后,我对下边产生的Execl文件中的一段表进行下解释,很简单的:
Writer Report
4 8 16 32 64
32768 5300 8166 12726 16702 24441
65536 5456 8285 9630 16101 18679
131072 5539 6968 9453 13086 14136
262144 5088 7092 9634 11602 14776
524288 5427 9356 10502 13056 13865
1048576 6061 9625 11528 12632 13466
在Execl文件中的这段表,它说明了这个表单是关于write的测试结果,左侧一列是测试文件大小(Kbytes),
最上边一行是记录大小,中间数据是测试的传输速度。举例说明,比如表中的“5300”,意思是测试文件大小为
32M,以记录大小为4K来进行传输,它的传输速度为5300 Kbytes/s
3. 进程实时监控 - HTop
HTop 是一个 Linux 下的交互式的进程浏览器可以用来替换 Linux 下的 top 命令。
yum install htop -y
可以参考这篇文章
https://www.cnblogs.com/yqsun/p/5396363.html
4. 页面显示磁盘空间使用情况 - Agedu
yum -y install agedu 完成安装
使用说明
agedu -s / 对整个系统进行扫
-s 扫描指定目录
-w 以web页面形式
--address 指定ip地址和端口号
--auth 授权权限 none 表示无权限
eg agedu -s / -w --address 192.168.1.65:8099 --auth none
对所有目录进行分析 并将结果输出到web页面
另外 agedu 还有很多别的功能,比如说 include exclude 去对文件选项进行分析。具体可以 man agedu 查看相关用法。
其他比较实用的工具查看下面链接
https://mp.weixin.qq.com/s/gyOfvUJu0AniGSX_4D20SA
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!
· 用 C# 插值字符串处理器写一个 sscanf