实时监控linux程序的技巧和方法 (如何实时监控linux程序)

实时监控Linux程序的技巧和方法

随着计算机技术的发展和应用范围的日益扩大,Linux已成为开源操作系统领域的佼佼者,应用领域广泛,无论是服务器端还是嵌入式设备应用都离不开它。在Linux中,程序运行时出现问题是家常便饭的事情,如何及时发现并修复程序的问题,则是很多开发者和运维人员关心的话题。本篇文章将探讨实时监控Linux程序的技巧和方法,帮助大家快速定位和解决程序的问题。

1. 常用监控工具

为了实时监控Linux程序,需要使用一些常用的监控工具。以下是一些常用的监控工具:

1.1 top命令

top命令是一个实时进程监视器,在终端窗口中可以通过top命令查看系统当前运行的进程信息,包括进程ID、CPU使用率、内存使用率等。同时,top命令还可以对进程进行操作,如杀死僵尸进程或快速查看占用资源更高的进程。使用方法:在终端中输入top命令并回车即可。

1.2 ps命令

ps命令用于显示系统当前运行的进程信息,与top命令类似,但ps命令的输出信息更加详细。同时,ps命令还支持一些选项,可以通过选项过滤出特定的进程信息。使用方法:在终端中输入ps命令并回车即可。

1.3 strace命令

strace命令用于跟踪进程执行过程中的系统调用和信号,可以帮助开发者和运维人员定位程序的问题,如进程崩溃、死锁等。使用方法:在终端中输入strace命令并加上要跟踪的进程ID即可。

1.4 lsof命令

lsof命令用于显示系统当前打开的文件和进程信息,可以帮助开发者和运维人员查找进程引用的文件、套接字等资源,帮助快速定位问题。使用方法:在终端中输入lsof命令并加上要查找的进程ID即可。

1.5 tcpdump命令

tcpdump命令用于抓取网络上的数据包,可以帮助开发者和运维人员定位网络问题,如流量异常、丢包等。使用方法:在终端中输入tcpdump命令并加上要抓取网络数据包的条件即可。

2.监控脚本编写

除了常用的监控工具外,还可以通过编写监控脚本实现程序的监控。以下是一些注意事项:

2.1 编写简洁的脚本

编写监控脚本需要注意脚本的简洁性,尽量避免复杂的操作,只保留必要的监控动作,以减少脚本的执行时间。

2.2 设置监控时间间隔

监控脚本需要设置监控时间间隔,以避免频繁监控对系统造成过大的负荷。监控时间间隔可根据实际情况进行调整,建议设置在1-5分钟之间。

2.3 输出监控结果

监控脚本在执行完监控的动作后,需要将监控结果进行输出,以便开发者和运维人员实时了解程序的运行状态。

3.实际应用案例

在实际应用中,我们可以结合上述监控工具和监控脚本,实现程序的实时监控。以下是一个实际应用案例:

在一台Linux服务器上运行了一个Web服务器程序,在客户端访问时出现了网络延迟问题。为了解决这个问题,我们可以根据上述方法进行监控。

3.1 使用tcpdump命令抓取网络数据包

在终端中输入tcpdump命令,指定抓取网络数据包的条件,以过滤出相应的数据包。

3.2 使用ps命令查找进程ID

使用ps命令查找Web服务器程序的进程ID,并记录下来,以便后续使用。

3.3 使用strace命令跟踪进程执行

使用strace命令对Web服务器程序进行跟踪,并记录下跟踪结果。根据结果,我们可以查看程序执行时调用的系统调用和信号,并判断是否存在异常情况。

3.4 编写监控脚本

根据上述监控工具的输出结果,编写监控脚本。监控脚本需要实时监测Web服务器程序的状态,并输出监控结果。

4.

本篇文章介绍了实时监控Linux程序的技巧和方法,包括常用的监控工具和监控脚本的编写。在实际应用中,可以根据实际需要进行选择和组合,并结合运维经验,快速定位和解决程序的问题。同时,需要注意操作的安全性,以避免对系统造成不必要的风险。

相关问题拓展阅读:

如何使用Nmon监控Linux系统性能

一、概述

nmon是一种在AIX与各种Linux操作系统上广泛使用的监控与分析工具,相对于其它一些系统资源监控工具来说,nmon所记录的信息是比较全面的,它能在系统运行过程中实时地捕捉系统资源的使用情况,并且能输出结果到文件中,然后通过nmon_yzer工具产生数据文件与图形化结果。

nmon所记录的数据包含以下一些方面(也是我们在寻找问题过程中所关注的资源点):

·cpu占用率

·内存使用情况

·磁盘I/O速度、传输和读写比率

·文件系统的使用率

·网络I/O速度、传输和读写比率、错误统计率与传输包的大小

·消耗资源最多的进程

·计算机详细信息橡改键和资源

·页面空间和页面I/O速度

·用户自定义的磁盘组

·网络文件系统

另外在AIX操作系统上,nmon还能监控到其他的一些信息,如异步I/O等。

二、下载安装nmon

1、下载安装包:

选择下载相应的版本,我下载的是 nmon16d_x86.tar.gz。解压后里边有很多版本的nmon,我用的是nmon_linux_x86_64,亲测可用。

2、直接在window中将解压好的nmon_linux_x86_64通过sftp上传到要监控的linux系统中对应目录下

3、执行授权命令:

# chmod +x  nmon_x86_64_linux

4、运行./nmon_x86_64_linux,便可进入nmon的监控界面,如下图:

三、实时监控

在完成配置后,只需要“#./nmon”命令即可运行程序,通过一些快捷键调取关心的系统资源指标进行显示,如按键“C”可以查看CPU相 关信息;按键“D”可以查看磁盘信息;按键“T”可以查看系统的进程信息;“M”对应内存、“N”对应网络等等,完整的快捷键对应内容可以通过帮助(按键 “H”)查看,可以显示Linux系统CPU、内存、进程信息,包括了CPU的用户、系统、等待和空闲状态值,可用内存、缓存大小以及进程的CPU消耗等详细指标。该种歼棚方式显示信息实时性强梁巧,能够及时掌握系统承受压力下的运行情况,每颗CPU利用率是多少、内存使用多少、网络流量多少、磁盘读写……这些数据均是实时刷新,一目了然。

键入“c”查看系统CPU使用情况

键入“m”查看系统内存使用情况

键入“d”查看系统磁盘I/O情况

键入“h”查看帮助信息

用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文件,该文件会根据间隔时间被写入性能数据,当一段时间后再查看该文件,文件字节变大

利用nmonyser分析.nmon文件

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

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

(如果报告以下宏的安全级别太高错误,则在“工具 — 宏 –安全性”里把级别调低,然后重新打开 nmon yser 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 l-release

l_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 yser (生成性能报告的免费工具):

把之前生成的 nmon 数据文件传到 Windows 机器上,用 Excel 打开分析工具 nmon yser 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 秒,正好是一天的数据。

采样文件越来越大:

.***:~/nmon# ./nmon -s1 -c33 -f

.***:~/nmon# 

.***:~/nmon# du  -sh *

8.0K    AD39_***_sles10_101207_1046.nmon

160K    nmon

.***:~/nmon# du  -sh *

12K     AD39_***_sles10_101207_1046.nmon

160K    nmon

.***:~/nmon# du  -sh *

16K     AD39_***_sles10_101207_1046.nmon

160K    nmon

.***:~/nmon# du  -sh *

20K     AD39_***_sles10_101207_1046.nmon

160K    nmon

.***:~/nmon# du  -sh *

20K     AD39_***_sles10_101207_1046.nmon

160K    nmon 

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

Nmon ( 又名 Nigel’s Monitor) 是非常常用的系统性能监视工具,由 IBM 工程师 Nigel Griffiths 开发,适用于 AIX 和 Linux 操作系统。该工具可以直接在屏幕上显示当前操作系统的资源利用率,以帮助大家找出系统瓶颈和协助系统调优。由于其十分出名,在 10大好用的Linux实用工具推荐 一文中已进行过简单推荐。

使用 Nmon 大家便可以轻松监控系统 CPU、内存、网络、磁盘、文件系统、NFS、Top 进程等信息。

安装Nmon

默认 Nmon 已在 Ubuntu 的源中,大家可以直接使用 apt-get 进行安装:

sudo apt-get install nmon

如何使用Nmon监控Linux系统性能

使用Nmon监控Linux系统性能

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

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

Nmon

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

q : 停止并退出Nmon

h : 查看帮助信息

c : 查看 CPU 统计信息

m : 查看内存统计信息

d : 查看磁盘统计信息

k : 查看内核统计信息

n : 查看网络统计信息

N : 查看 NFS 统计信息

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

t : 查看 Top 进程统计信息

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

v : 详细输出模式

查看 CPU 统计信息

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

Nmon

查看 Top 进程统计信息

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

Nmon

查洞梁看网络统计信息

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

Nmon

磁盘I/纳滑运O图

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

Nmon

查看内核统计信息

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

Nmon

获取系统信息

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

Nmon

Nmon ( 又名 Nigel’s Monitor) 是非常常用的系统性能监视工具,由 IBM 工程师 Nigel Griffiths 开发,适用于 AIX 和 Linux 操作系统。该工具可以直接在屏幕上显示当前操作系统的资源利用率,以帮助大家找出系统瓶颈和协助系统调优。使用 Nmon 大家便态闷可以轻松监控系统 CPU、内存、网络、磁盘、文件系统、NFS、Top 进程等信息。

安装:sudo apt-get install nmon

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

下面是一些说明:

q : 停止并退出Nmon

h : 查看帮助信息

c : 查看 CPU 统计信息

m : 查看内存统计信息

d : 查看磁盘统计信息

k : 查看内核统计信息

n : 查看网络统计信息

N : 查看 NFS 统计信息

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

t : 查看 Top 进程统计信息

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

v : 详细输出模式

查看 CPU 性能信息,可以直接按 c 键

查看 Top 进程统计信息,可以直接核困按 t 键

查看网络统计信息,可以直接按 n 键

 d 键可以查看磁盘统计信息改闭念

查看内核统计信息,可以直接按 k 键

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

关于如何实时监控linux程序的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 实时监控linux程序的技巧和方法 (如何实时监控linux程序)