如何监测Linux进程的实时IO读写情况

如何监测Linux进程的实时IO读写情况,第1张

iotop怎么用

1

本经验咗嚛以centos为例演示,首先先安装一下iotop程序。

可以通过yum install intop 安装

如果服务器不能上网,请参考下面经验解决

Linux不能上网ping:unknown host问题怎么解决

http://jingyan.baidu.com/article/4d58d54137d2a19dd5e9c050.html

2

服务器能上网,通过yum之后找到 iotop相关的程序,选择Y 进行确认安装

3

安装好之后,我们可以通过rpm -qa |grep iotop 确认是否已经安装好, 直接通过io tab补全查看有这个命令

4

怎么检测centos进程负载

直接输入iotop 查看当前系统进程的磁盘读写情况,注意这个是一个动态的显示结果。

5

当然也可以通过输入 iotop -o 直接查看输出比较高的磁盘读写程序。

注意观察发现异常的进程,记录下程序的路径(最后面就是脚本或文件的执行路径)

6

至于iotop的使用方法还有很多命令,具体可以通过 iotop -- help来获取。 一般用 - o这个参数就行

END

其他相关检测诊断

除了上述的磁盘读写的资源情况来看,还需要结合cpu,内存占用资源查看异常进程。

可以通过top 来检测(如果显示都是红色的话,那就要注意了。硬件的资源占用负载比较高要考虑扩容内存了)

对于异常进程的查看,一般都是要确认有没有系统中毒或者恶意数据外发。可以通过netstat来查看服务器网络连接情况。

Netstat -ntlp 根据网络连接情况,最后面一栏是显示的路径\进程的位置。对于发现异常进程处理很有帮助

步骤阅读

3

对于centos系统的安全性查看和检查,以上咗嚛介绍的只是很小的一部分。对于管理员平时的维护,管理员密码要定期修改采用强密码,同时对于不必要的端口不要对外开放,注意平时管理linux服务器最好不要直接用root权限来 *** 作。

用Nmon监控Linux系统性能的方法请参见下面介绍(配图):

1、安装Nmon

2、一旦安装完成,则可以通过在终端执行 nmon 命令启动它。

Nmon命令执行之后,大家可以看到如下输出:

3、从上图中大家可以看到,Nmon 命令行工具是一个用户交互的应用程序,大家可以非常方便地使用键盘快捷键来查看相关统计信息。

q : 停止并退出Nmon

h : 查看帮助信息

c : 查看 CPU 统计信息

m : 查看内存统计信息

d : 查看磁盘统计信息

k : 查看内核统计信息

n : 查看网络统计信息

N : 查看 NFS 统计信息

j : 查看文件系统统计信息

t : 查看 Top 进程统计信息

V : 查看虚拟内存统计信息

v : 详细输出模式

4、查看 CPU 统计信息

如果你想查看 CPU 性能信息,可以直接按 c 键:

5、查看 Top 进程统计信息

如果你想查看 Top 进程统计信息,可以直接按 t 键:

6、查看网络统计信息

如果你想查看网络统计信息,可以直接按 n 键:

7、磁盘I/O图

使用 d 键可以查看磁盘统计信息:

8、查看内核统计信息

如果你想查看内核统计信息,可以直接按 k 键:

9、获取系统信息

如果要查看 Linux 的系统信息,如:系统架构、 *** 作系统版本、Linux 版本则可以使用 r 键,这对系统管理员非常有用。

以上是基础使用方法。下面再补充一些命令和方法:

1、启动

打开nmon所在的目录:cd /usr/local/nmon

修改启动文件的访问权限:chmod 755 nmon_x86_rhel52

启动nmon:./nmon_x86_rhel52

如果要采样nmon的数据保存成文件,可以

./nmon_x86_rhel52 -fT -s 30 -c 120

其中30表示每隔30秒nmon取一次系统性能数据,120表示取120次;

这样nmon将会在运行开始算起连续取得30sX120=60分钟,可根据实际需要时间调整;当运行以上命令后该目录下会生成一个.nmon文件,该文件会根据间隔时间被写入性能数据,当一段时间后再查看该文件,文件字节变大

利用nmonanalyser分析.nmon文件

当测试结束的同时ftp到服务器上将.nmon文件get下来,

打开nmon_analyser.zip 包下的nmon analyser v338.xls 文件,点击Analyse nomn data按钮,选择之前get来下的.nmon文件。

(如果报告以下宏的安全级别太高错误,则在“工具 -- 宏 --安全性”里把级别调低,然后重新打开 nmon analyser v338.xls 文件)

待分析结束后会生成性能分析结果文件(文件格式为.xls,其中包括CPU,IO,内存等性能分析报告)。

分析结果中有很多数据和图形,简要介绍主要的性能参数图像

4.1 系统汇总(对应excel标签的‘SYS_SUMM’)

蓝线为cpu占有率变化情况;

粉线为磁盘IO的变化情况;

4.2磁盘读写情况汇总(对应excel标签的‘DISK_SUMM’)

蓝色为磁盘读的速率KB/sec

紫色为磁盘写的速率KB/sec

4.3内存情况汇总(对应excel标签的‘MEM’)

曲线表示内存剩余量(MB)

分析数据得到的报告文件(.xls)中包含很多性能分析结果数据,根据自己的需要查看。

2、nmon运行本身就消耗系统资源的;

另外如果取到.nmon文件后确定不再需要nmon继续收集信息则应kill掉nmon;

命令:

ps -A | grep nmon #得到pid

kill -9 pid

suse10 enterprise sp2:

nmon_x86_rhel3

使用对应的 *** 作系统文件:

chmod +x nmon_x86_ubuntu810

mv nmon_x86_ubuntu810 /usr/local/bin/nmon

对于 Debian 还要做以下 *** 作(不做也同样能运行):

apt-get install lsb-release

lsb_release -d | sed 's/Description:\t//' > /etc/debian_release

然后直接运行 nmon 即可。

采集数据并生成报表:

采集数据:

nmon -s10 -c60 -f -m /home/

参数解释:

-s10 每 10 秒采集一次数据。

-c60 采集 60 次,即为采集十分钟的数据。

-f 生成的数据文件名中包含文件创建的时间。

-m 生成的数据文件的存放目录。

这样就会生成一个 nmon 文件,并每十秒更新一次,直到十分钟后。

生成的文件名如: hostname_090824_1306.nmon ,"hostname" 是这台主机的主机名。

生成报表:

下载 nmon analyser (生成性能报告的免费工具):

http://www.ibm.com/developerworks/wikis/display/Wikiptype/nmonanalyser

把之前生成的 nmon 数据文件传到 Windows 机器上,用 Excel 打开分析工具 nmon analyser v33C.xls 。点击 Excel 文件中的 "Analyze nmon data" 按钮,选择 nmon 数据文件,这样就会生成一个分析后的结果文件: hostname_090824_1306.nmon.xls ,用 Excel 打开生成的文件就可以看到结果了。

如果宏不能运行,需要做以下 *** 作:

工具 -> 宏 -> 安全性 -> 中,然后再打开文件并允许运行宏。

自动按天采集数据:

在 crontab 中增加一条记录:

0 0 * * * root nmon -s300 -c288 -f -m /home/ > /dev/null 2>&1

300*288=86400 秒,正好是一天的数据。

采样文件越来越大:

jackxiang@172.25.39.***:~/nmon# ./nmon -s1 -c33 -f         

jackxiang@172.25.39.***:~/nmon# 

jackxiang@172.25.39.***:~/nmon# du  -sh *

8.0K    AD39_***_sles10_101207_1046.nmon

160K    nmon

jackxiang@172.25.39.***:~/nmon# du  -sh *

12K     AD39_***_sles10_101207_1046.nmon

160K    nmon

jackxiang@172.25.39.***:~/nmon# du  -sh *

16K     AD39_***_sles10_101207_1046.nmon

160K    nmon

jackxiang@172.25.39.***:~/nmon# du  -sh *

20K     AD39_***_sles10_101207_1046.nmon

160K    nmon

jackxiang@172.25.39.***:~/nmon# du  -sh *

20K     AD39_***_sles10_101207_1046.nmon

160K    nmon

注:以上一些机器名称或系统名称,请根据实际情况自行调整及修改。

并非所有的嵌入式系统都需要实时 *** 作系统,只有在一些特定的场合,对时间比较敏感的应用才会使用实时 *** 作系统。实时 *** 作系统必须及时响应所要求的任务,在限定时间内完成任务。非实时的 *** 作系统,多时间不是很敏感,对所要求的任务只是会保证完成,但在什么时候完成,或用多长的时间完成就不一定了。例如:手机它不需要实时性。我们发短信时,系统对它的处理早1秒或者晚1秒都不会影响到我们的使用。而对于导d这样的应用必须具有实时性。导d被发射出去锁定目标后要不断修正飞行方向,以保证击中目标,如果它的实时性不好的话,从传感器传来的信号没有及时响应,即使完了1毫秒的时间,那误差就会很大。用这样的导d攻打敌方目标的话,目标很可能没有击中,美国大使馆倒是有可能被炸掉。另外一般linux不具有实时性,它是分时 *** 作系统一般是面向用户的,但是因为它的源代码是公开的,它是可以改造成实时系统的,但即使是这样它的实时性也不会很好,毕竟它最初的设计并不是为了实时性。我们在Linux上面同时运行好几个程序,它们会被并发的执行。我们会发现同时多运行几个程序可能会比只允许一个程序慢,这是因为 *** 作系统把处理器按时间片分给了每一个程序。自然会慢一些。而实时 *** 作系统,一般不同的任务会有不同的优先级,他会把拥有最高的优先级的程序一次性执行完毕。然后再执行次一级的程序。这要的系统只适用于控制,不适合一般的应用。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/9009291.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-23
下一篇 2023-04-23

发表评论

登录后才能评论

评论列表(0条)

保存