使用Bash脚本进行进程性能监控

对一个Linux进程进行监控,使用Bash脚本实现。

使用ps命令对进程进行监控,使用循环加睡眠时间实现连续监控。

用法:

psmonitor.sh -p [pid] -d [interval] -n [statistics count]

参数:

-p 监控的进程ID

-d 读性能数据间隔

-n 统计次数,达到该次数,自动退出

#!/bin/bash
interval=0
count=0
pid=""
while getopts "p:d:n:" arg
do
        case $arg in
        p)
                pid=$OPTARG
                echo "pid: $pid"
                ;;
        d)
                interval=$OPTARG
                echo "interval:$interval"
                ;;
        n)
                count=$OPTARG
                echo "count:$count"
                ;;
        \?)
                echo "unkonw argument"
                exit 1
                ;;
        esac
done

i=0;

while [ true ]; do
        if [ $i -gt $count ]
        then
                exit 0;
        else
                let "i+=1"
        fi
         ps h -p $pid -o rss,vsz,%mem,%cpu
        sleep $interval

done

监控效果:

-bash-3.2$ ./psmonitor.sh -p 4181 -d 1 -n 10
pid: 4181
interval:1
count:10
1511232 2537664 37.3 2.4
1511232 2537664 37.3 2.4
1511232 2537664 37.3 2.4
1511232 2537664 37.3 2.4
1511232 2537664 37.3 2.4
1511232 2537664 37.3 2.4
1511232 2537664 37.3 2.4
1511232 2537664 37.3 2.4
1511232 2537664 37.3 2.4
1511232 2537664 37.3 2.4
1511232 2537664 37.3 2.4
时间: 2024-11-10 17:29:24

使用Bash脚本进行进程性能监控的相关文章

进程管理,及性能监控 ps, pstree, pidof, top, htop, pmap, vmstat, dstat

进程的分类:    CPU-Bound: CPU密集型    I/O-Bound: I/O密集型 进程的分类:    批处理进程    交互式进程    实时进程 进程调度器:    进程优先级:0-139        实时优先级:1-99,数字越大,优先级越高        静态优先级:100-139, nice值调整,数字越大,优先级越低            nice:     -20, 19            priority: 100, 139        动态优先级:由内核维

Bash脚本15分钟进阶教程

这里的技术技巧最初是来自谷歌的“Testing on the Toilet” (TOTT).这里是一个修订和扩增版本. 脚本安全 我的所有bash脚本都以下面几句为开场白: #!/bin/bashset-o nounsetset-o errexit 这样做会避免两种常见的问题: 引用未定义的变量(缺省值为“”) 执行失败的命令被忽略 需要注意的是,有些Linux命令的某些参数可以强制忽略发生的错误,例如“mkdir -p” 和 “rm -f”. 还要注意的是,在“errexit”模式下,虽然能有

bash脚本编程基础及配置文件

shell脚本编程: 编程语言的分类:根据运行方式 编译运行:源代码----->编译器(编译)---->程序文件 C语言: 解释运行:源代码--->运行时启动解释器,由解释器边解释边运行: 根据其编程过程中功能的实现是调用库还是调用外部的程序文件: shell脚本编程: 利用系统上的命令及编程组件进行编程: 完成编程: 利用库或编程组件运行编程 编程模型: 过程式编程语言,面向对象的编程语言 程序=指令+数据 过程式:以指令为中心来组织代码,数据是服务于代码: 顺序执行 选择执行 循环执

Sysstat性能监控工具包中20个实用命令

Sysstat性能监控工具包中20个实用命令 学习mpstat, pidstat, iostat和sar等工具,这些工具可以帮组我们找出系统中的问题.这些工具都包含了不同的选项,这意味着你可以根据不同的工作使用不同的选项,或者根据你的需求来自定义脚本.我们都知道,系统管理员都会有点懒,他们经常去寻找一些更简单的方法来完成他们的工作. mpstat – 处理器统计信息 1.不带任何参数的使用mpstat命令将会输出所有CPU的平均统计信息 1 2 3 4 5 6 [email protected]

十分钟完成Bash 脚本进阶!列举Bash经典用法及其案例

前言:在linux中,Bash脚本是很基础的知识,大家可能一听脚本感觉很高大上,像小编当初刚开始学一样,感觉会写脚本的都是大神.虽然复杂的脚本是很烧脑,但是,当我们熟练的掌握了其中的用法与技巧,再多加练习,总有一天也会成为得心应手的脚本大神.脚本在生产中的作用,想必小编我不说,大家也都知道,脚本写的6,可以省下很多复杂的操作,减轻自己的工作压力.好了,废话不多说,接下来,就是Bash脚本的用法展示. 一.条件选择.判断(if·.case) 二.四个循环(for.while.until.selec

Linux 性能监控之命令行工具

引言 对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.这些命令行工具可以在各种Linux系统下使用,可以用于监控和查找产生性能问题的原因.这个命令行工具列表提供了足够的工具,您可以挑选适用于您的监控场景的工具. 1. lsof - 列出打开的文件 在许多Linux或者类Unix系统里都有lsof命令,它常用于以列表的形式显示所有打开的文件和进程.打开的文件包括磁盘文件.网络套接字.管道.设备和进程.使用这条命令的主要情形之一就是在无法挂载磁盘和显示正在使用或者打开

linux优先级、性能监控指令

一.优先级 优先级的值=优先系数+nice值     优先系数由系统内核决定,不可更改 nice值可以手动更改,范围是 -20~19 优先级的值越低,优先级越高:优先级的值越高,优先级越低. 所以想调整成最高优先级的话,就将nice值设为-20:想调整成最低优先级的话,将nice值设为19. 调整优先级: 1.任务未运行前进行调整 # nice -n-20  sh /xxx/xxx.sh          --以最高优先级运行xxx.sh这个脚本 # nice -n19  sh /xxx/xxx

Linux系统CPU的性能监控及调优

前言: 性能优化是一个老生常谈的话题,典型的性能问题如页面响应慢.接口超时,服务器负载高.并发数低,数据库频繁死锁等.尤其是在“糙快猛”的互联网开发模式大行其道的今天,随着系统访问量的日益增加和代码的臃肿,各种性能问题开始纷至沓来. 在系统层面能够影响应用性能的一般包括三个因素:CPU.内存和IO,今天,我们先谈谈CPU性能的监控以及调优. CPU性能监控 当程序响应变慢的时候,首先使用top.vmstat.ps等命令查看系统的cpu使用率是否有异常,从而可以判断出是否是cpu繁忙造成的性能问题

Apache服务器性能监控

Apache服务器性能监控 1.使用自带mod_status模块监控 1)加载mod_status.so 模块 在httpd.conf中打开LoadModule status_module modules/mod_status.so 2)修改httpd.conf配置文件增加(删注释#)如下内容: <Location /server-status>    SetHandler server-status    Order deny,allow    Deny from all    Allow