最近公司的一个移植项目有个任务,要测量我们的程序在Linux下运行一段时间(约几个小时),看看CPU的占用的情况如何。我的同事(老高)用bash脚本完成了任务。我闲来无事,也顺手用ruby写了一个。
在Linux下取得进程的相关信息,可以使用ps命令。我们可以通过ruby来定时调用ps命令,取得一段时间内的某进程的CPU占用率。 “ps -A” 可以列出所有进程。先看看ps的输出结果:
PID TTY TIME CMD
1 ? 00:00:02 init
2 ? 00:00:00 kthreadd
3 ? 00:00:00 migration/0
4 ? 00:00:00 ksoftirqd/0
5 ? 00:00:00 watchdog/0
6 ? 00:00:00 events/0
7 ? 00:00:00 khelper
8 ? 00:00:00 kstop/0
9 ? 00:00:00 kintegrityd/0
10 ? 00:00:00 kblockd/0
11 ? 00:00:00 kacpid
...... (略)
如何取得CPU占用率,可以用 pcpu这个选项。如:“ps -o pcpu -p 11” ,数字11 指的是进程id。我们只要找到目标进程id
的话,就可以用ps这个命令来得到CPU占用率了。
通过分析"ps -A"的输出,我们根据进程的名称(在这个case下,我们要测量的
程序只运行一个实例,所以不存在重名的进程),可以得到目标进程的id。然后进一步就可以得到进程的CPU占用率了,然后把结果以追加的方式重定向到一个
文件中。
ruby的代码如下(代码太短啦,就不解释了):
#! /usr/bin/ruby
proc_id = 0
%x(ps -A).each_line do |line|
larray = line.split(' ')
if(larray[3].downcase =='xxxx') # xxxx is your app's name
proc_id = larray[0]
break
end
end
while true
system "ps -o pcpu -p #{proc_id} >> pcpu.txt"
sleep(3)
end
分享到:
相关推荐
Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 ...
使用ruby解析awdb离线库使用ruby解析awdb离线库使用ruby解析awdb离线库使用ruby解析awdb离线库使用ruby解析awdb离线库使用ruby解析awdb离线库使用ruby解析awdb离线库使用ruby解析awdb离线库使用ruby解析awdb离线库...
获取进程内存 您是否需要获取进程的内存使用情况? 很棒,因为该库可以做到这一点。安装在您的Gemfile添加gem 'get_process_mem' 然后运行$ bundle install 。 如果您使用的是Windows,则还需要拥有sys-proctable ...
在我如何使用github搭建个人网站中有介绍如何安装使用
让你的Ubuntu 快速安装 Ruby on Rails 笔记
Eye - 进程监控工具,灵感来自Bluepill和God
Ruby统计 描述: Ruby Stats 可帮助您在需要时获取系统统计信息。 我们在内部使用它来监控我们的服务器并将其发送到我们在云中的监控服务器。 这个 Gem 目前支持 Ubuntu 和 Mac。 不幸的是,我们没有计划为 Windows...
childprocess - 跨平台的ruby库来管理子进程
Ansible: Ruby on Rails 服务器(Ubuntu 16.x)
?轻松实现在Linux服务器上后台运行Ruby/Rails进程
ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码
使用Ruby和GitHub API构建Action的快速入门配方
Bluepill - Ruby编写的简单进程监控工具
AppleID - 使用Ruby登录Apple后端库,具有小型自定义功能的OpenID Connect实现
Ruby统计 一种基本的Ruby宝石,实现了一些可在任何Ruby环境中使用的统计方法,功能和概念,而无需依赖任何数学软件,例如R , Matlab , Octave或类似软件。 单元测试在以下Ruby版本下运行: Ruby 2.5.1。 Ruby ...
ruby打包文件ruby打包文件ruby打包文件ruby打包文件ruby打包文件ruby打包文件ruby打包文件ruby打包文件ruby打包文件
ruby-getting-started, 在Heroku上,使用 ruby 入门 ruby-getting-started一个易于部署的Rails 应用程序,可以轻松部署到 Heroku 。这个应用程序支持在Heroku上开始使用 ruby 文章- check查看。在本地运行确保已经...
qtbindings - 允许你在Ruby中使用QT Gui工具包
要在Ubuntu系统上安装Ruby,有几种方法,每种方法都只需几步就能搞定。 方法一:使用apt-get安装 可以直接使用两个命令完成Ruby的安装。 代码如下: # sudo apt-get update # sudo apt-get install ruby 或者 代码...
这是linux版本下的ruby2.1.5版本,亲测可用,现在最新的版本