求教如何把EMBASE 以下检索出文献最多的检索式是的文献导入NOTEEXPRESS,谢谢!

本帖子已过去太久远了,不再提供回复功能。7074人阅读
c编程(5)
linux命令(14)
Linux下提供top、ps命令查看当前cpu、mem使用情况,简要介绍如下:一、使用ps查看进程的资源占用ps -aux查看进程信息时,第三列就是CPU占用。[root@localhost utx86]# ps -aux | grep my_processWarning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.7/FAQroot
0:05 ./my_processroot
0:00 grep my_process每一列含义如下USER
COMMAND即my_process进程当前占用cpu 3.4%, 内存0.9%二、top动态查看系统负荷top -n 1显示后退出[root@localhost utx86]# top -n 1top - 14:23:20 up
5:14, 14 users,
load average: 0.00, 0.04, 0.01Tasks: 183 total,
1 running, 181 sleeping,
1 stopped,
0 zombieCpu(s):
0.0%ni, 95.8%id,
0.0%stMem:
2066240k total,
1507316k used,
558924k free,
190472k buffersSwap:
2031608k total,
2031520k free,
1087184k cached1、获取cpu占用情况[root@localhost utx86]# top -n 1 |grep CpuCpu(s):
0.0%ni, 95.9%id,
0.0%st解释:1.9%us是用户占用cpu情况1.3%sy,是系统占用cpu情况得到具体列的值:[root@localhost utx86]# top -n 1 |grep Cpu | cut -d &,& -f 1 | cut -d &:& -f 21.9%us[root@localhost utx86]# top -n 1 |grep Cpu | cut -d &,& -f 21.3%sy2、获得内存占用情况[root@localhost utx86]# top -n 1 |grep MemMem:
2066240k total,
1515784k used,
550456k free,
195336k buffers获得内存情况指定列[root@localhost c++_zp]# top -n 1 |grep Mem | cut -d &,& -f 1 | cut -d &:& -f 22066240k total[root@localhost c++_zp]# top -n 1 |grep Mem | cut -d &,& -f 21585676k used三、编程实现现在可以通过程序将cpu使用率、内存使用情况保存到文件中test.cpp#include &stdio.h&
#include &unistd.h&
#include &stdlib.h&
int main()
system(&top -n 1 |grep Cpu | cut -d \&,\& -f 1 | cut -d \&:\& -f 2 &cpu.txt&);
system(&top -n 1 |grep Cpu | cut -d \&,\& -f 2 &&cpu.txt&);
system(&top -n 1 |grep Mem | cut -d \&,\& -f 1 | cut -d \&:\& -f 2 &&cpu.txt&);
system(&top -n 1 |grep Mem | cut -d \&,\& -f 2 &&cpu.txt&);
}编译、运行:[root@localhost study]# g++ test.cpp[root@localhost study]# ./a.out[root@localhost study]# cat cpu.txt2.1%us1.5%sy2066240k total1619784k used四、硬盘使用率编程实现1.硬盘使用率 命令df -lh2.程序实现,调用statfsc:int statfs(const char *path, struct statfs *buf);
int fstatfs(int fd, struct statfs *buf);
struct statfs {
long f_ /* type of filesystem (see below) */
long f_ /* optimal transfer block size */
long f_ /* total data blocks in file system */
long f_ /* free blocks in fs */
long f_ /* free blocks avail to non-superuser */
long f_ /* total file nodes in file system */
long f_ /* free file nodes in fs */
fsid_t f_ /* file system id */
long f_ /* maximum length of filenames */
int fstatvfs(int fildes, struct statvfs *buf);
int statvfs(const char *restrict path, struct statvfs *restrict buf);
struct statvfs {
unsigned long f_ /* file system block size */
unsigned long f_ /* fragment size */
fsblkcnt_t f_ /* size of fs in f_frsize units */
fsblkcnt_t f_ /* # free blocks */
fsblkcnt_t f_ /* # free blocks for non-root */
fsfilcnt_t f_ /* # inodes */
fsfilcnt_t f_ /* # free inodes */
fsfilcnt_t f_ /* # free inodes for non-root */
unsigned long f_ /* file system id */
unsigned long f_ /* mount flags */
unsigned long f_ /* maximum filename length */
#include &sys/vfs.h&
#include &sys/statvfs.h&
#include &string.h&
#include &stdlib.h&
#include &stdio.h&
int gethd(char *path);
int main()
char buf[256],*
file=fopen(&/etc/fstab&,&r&);
memset(buf,0,sizeof(buf));
while(fgets(buf,sizeof(buf),file))
ptr=strtok(buf,& &);
if(ptr&&((strncmp(ptr,&/dev&,4)==0)))
ptr=strtok(NULL,& &);
gethd(ptr);
fclose(file);
int gethd(char *path)
struct statvfs stat1;
statvfs(path,&stat1);
if(stat1.f_flag)
printf(&%s total=%dK free=%dK %0.1f%%
\n&,path,stat1.f_bsize*stat1.f_blocks/1024,stat1.f_bsize*stat1.f_bfree/1024,
((float)stat1.f_blocks-(float)stat1.f_bfree)/(float)stat1.f_blocks*100);
}java:import java.io.*;
* linux 下cpu 内存 磁盘 jvm的使用监控
* @author avery_leo
public class TT {
* 获取cpu使用情况
* @throws Exception
public double getCpuUsage() throws Exception {
double cpuUsed = 0;
Runtime rt = Runtime.getRuntime();
Process p = rt.exec(&top -b -n 1&);// 调用系统的“top&命令
BufferedReader in =
in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String str =
String[] strArray =
while ((str = in.readLine()) != null) {
int m = 0;
if (str.indexOf(& R &) != -1) {// 只分析正在运行的进程,top进程本身除外 &&
strArray = str.split(& &);
for (String tmp : strArray) {
if (tmp.trim().length() == 0)
if (++m == 9) {// 第9列为CPU的使用百分比(RedHat
cpuUsed += Double.parseDouble(tmp);
} catch (Exception e) {
e.printStackTrace();
} finally {
in.close();
return cpuU
* 内存监控
* @throws Exception
public double getMemUsage() throws Exception {
double menUsed = 0;
Runtime rt = Runtime.getRuntime();
Process p = rt.exec(&top -b -n 1&);// 调用系统的“top&命令
BufferedReader in =
in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String str =
String[] strArray =
while ((str = in.readLine()) != null) {
int m = 0;
if (str.indexOf(& R &) != -1) {// 只分析正在运行的进程,top进程本身除外 &&
// System.out.println(&------------------3-----------------&);
strArray = str.split(& &);
for (String tmp : strArray) {
if (tmp.trim().length() == 0)
if (++m == 10) {
// 9)--第10列为mem的使用百分比(RedHat 9)
menUsed += Double.parseDouble(tmp);
} catch (Exception e) {
e.printStackTrace();
} finally {
in.close();
return menU
* 获取磁盘空间大小
* @throws Exception
public double getDeskUsage() throws Exception {
double totalHD = 0;
double usedHD = 0;
Runtime rt = Runtime.getRuntime();
Process p = rt.exec(&df -hl&);//df -hl 查看硬盘空间
BufferedReader in =
in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String str =
String[] strArray =
int flag = 0;
while ((str = in.readLine()) != null) {
int m = 0;
// if (flag & 0) {
// flag++;
strArray = str.split(& &);
for (String tmp : strArray) {
if (tmp.trim().length() == 0)
// System.out.println(&----tmp----& + tmp);
if (tmp.indexOf(&G&) != -1) {
if (m == 2) {
// System.out.println(&---G----& + tmp);
if (!tmp.equals(&&) && !tmp.equals(&0&))
totalHD += Double.parseDouble(tmp
.substring(0, tmp.length() - 1)) * 1024;
if (m == 3) {
// System.out.println(&---G----& + tmp);
if (!tmp.equals(&none&) && !tmp.equals(&0&))
usedHD += Double.parseDouble(tmp.substring(
0, tmp.length() - 1)) * 1024;
if (tmp.indexOf(&M&) != -1) {
if (m == 2) {
// System.out.println(&---M---& + tmp);
if (!tmp.equals(&&) && !tmp.equals(&0&))
totalHD += Double.parseDouble(tmp
.substring(0, tmp.length() - 1));
if (m == 3) {
// System.out.println(&---M---& + tmp);
if (!tmp.equals(&none&) && !tmp.equals(&0&))
usedHD += Double.parseDouble(tmp.substring(
0, tmp.length() - 1));
// System.out.println(&----3----& + usedHD);
} catch (Exception e) {
e.printStackTrace();
} finally {
in.close();
return (usedHD / totalHD) * 100;
public static void main(String[] args) throws Exception {
TT cpu = new TT();
System.out.println(&---------------cpu used:& + cpu.getCpuUsage() + &%&);
System.out.println(&---------------mem used:& + cpu.getMemUsage() + &%&);
System.out.println(&---------------HD used:& + cpu.getDeskUsage() + &%&);
System.out.println(&------------jvm监控----------------------&);
Runtime lRuntime = Runtime.getRuntime();
System.out.println(&--------------Free Momery:& + lRuntime.freeMemory()+&K&);
System.out.println(&--------------Max Momery:& + lRuntime.maxMemory()+&K&);
System.out.println(&--------------Total Momery:& + lRuntime.totalMemory()+&K&);
System.out.println(&---------------Available Processors :&
+ lRuntime.availableProcessors());
shell:监视磁盘hda1#!/bin/sh# disk_mon# monitor the disk space# get percent column and strip off header row from dfLOOK_OUT=0until [ &$LOOK_OUT& -gt &90& ]do
LOOK_OUT=`df | grep /hda1 | awk '{print $5}' | sed 's/%//g'`
echo $LOOK_OUT%
sleep 1doneecho &Disk hda1 is nearly full!&hdtest.sh#!/bin/ksh#检测硬盘剩余空间并警告的shell&V050921#四川省乐山市沙湾区邮政局 宋涛#精简代码,改进增强&V050923#简单说明: 可由root用户将此脚本加入crontab,启动时间一般最好设为每天营业前,当此脚本启动时如检测到已用硬盘空间超过指定范围,则将hdwarning.sh脚本拷贝到指定用户根目录下;否则将删除指定用户的目录下的hdwarning.sh脚本.usedhd=80
#自定义超限已用硬盘空间大小比例,默认为80%test &$1& &&&userdir=$1 ||&userdir=/usr/scabs
#前台用户的目录(默认设为统版用户),也可在调用此脚本时加上指定前台用户的目录参数hdwarning=$(df&-v |sed '1d;s/.$//;s/\/dev\///'|awk '$6&'&$usedhd&' {print $2,& = &,$6&%&}')test &$hdwarning& && {&cp /usr/bin/hdwarning.sh ${userdir}/hdwarning.sh
\& ${userdir}/hdwarning.log &chmod&777 ${userdir}/hdwarning.sh ${userdir}/hdwarning.log
} \|| {&rm ${userdir}/hdwarning.sh&2&/dev/null
\mv ${userdir}/hdwarning.log ${userdir}/hdwarning.log.bak&2&/dev/null
}hdwarning.sh#!/bin/ksh#检测硬盘剩余空间并警告的shell&V050921#四川省乐山市沙湾区邮政局 宋涛#精简代码,改进增强#增加当超标时,只在预先指定的前N位预先的指定用户登录时才显示提示信息,#即只有这前面N位用户才有可能及时反馈,避免当超标时接到过多的前台反馈电话&V050923#请先编辑指定用户根下的&.profile ,在最后追加一行# &test&-x&hdwarning.sh && &./hdwarning.sh#若.profile最后已加入了自启动专用程序命令行,则请在此行前面插入上述行#简单说明: 当指定用户登录后,若当前目录中hdwarning.sh脚本存在(一般此#时硬盘已用空间已经超标),则运行此脚本,并在屏幕显示警告信息,此时终端#操作人员应该及时将此信息把馈给预先指定的部门或预先指定的管理人员,#以便作相应的处理.若未超标或已清理磁盘文件并达标,则将删除脚本自身#hdwarning.sh(取消登录时的检测和警告信息)usedhd=80
#自定义超限已用硬盘空间大小比例,默认为80%loginnum=10
#自定义最初登录反馈的用户数,默认为前&10 位name=&运维部&
#接受反馈的部门或管理人员
tel=&0394&
#接受反馈的部门或管理人员的联系方式或电话test &$1& &&&userdir=$1 ||&userdir=/usr/scabs
#前台用户的目录(默认设为统版用户),也可在调用此#脚本时加上指定前台用户的目录参数hdwaring(){&ttyname=$(tty)echo ${ttyname##*shell cpu====================================================================:/proc目路下的内存文件系统映射了系统的运行时的一些信息,包括进程列表,内存信息,CPU使用情况,还有网络等等所以可以通过读/proc下的文件来实现统计信息的获取但是,要注意的时不同的版本,将/proc下的每个文件中的类容会有一些差别,每一个项代表什么要自己分析,最好根据top的输出去分析然后就可以通过shell教本或者C取得CPU使用率比如:我的机子是AS4(Kernel 2.6.9-5)cat /proc/statcpu
79 338cpu0 0 839 0 49564cpu1 8 91cpu2 4 985
2839cpu3 7 888 3intr
720 0 12 12 0 7 2 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 30 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0ctxt btime processes 603543procs_running 1procs_blocked 0然后就可以自己计算了#########GetCPU.sh######Author:duanjigang#!/bin/shwhile truedoawk
'$1==&cpu&{Total=$2+$3+$4+$5+$6+$7;print &Free: & $5/Total*100&%& & Used: & (Total-$5)*100/Total&%&}' &/proc/statsleep 1done复制代码#./GetCPU.shFree: 99.4532% Used: 0.546814%Free: 99.4532% Used: 0.546813%Free: 99.4532% Used: 0.546813%Free: 99.4532% Used: 0.546813%这样应该可以的shell cpu MEM====================================================================:(1):取CPU使用率机器:LinuxAS4 2.6.9-5.ELsmp (不通版本的内核会有差异的)#cpu.sh-to get the utilization of every cpu#author:duanjigang&&#!/bin/shawk '$0 ~/cpu[0-9]/' /proc/stat
| while read linedoecho &$line& | awk '{total=$2+$3+$4+$5+$6+$7+$8;free=$5;\
print$1& Free &free/total*100&%&,\
&Used & (total-free)/total*100&%&}'done复制代码#chmod +x cpu.sh#./cpu.shcpu0 Free 99.7804% Used 0.219622%cpu1 Free 99.8515% Used 0.148521%cpu2 Free 99.6632% Used 0.336765%cpu3 Free 99.6241% Used 0.375855%(2)网络流量情况#if.sh-to get the network flow of each interface#for my beloved ning#author:duanjigang&&#!/bin/shecho &name
PackTran&awk
' NR&2' /proc/net/dev
| while read linedoecho &$line& | awk -F ':' '{print &
awk '{print $1&
&$11}'done复制代码#./if.shname
PackTranlo
991835eth1
0(3):端口情况http://bbs.chinaunix.net/viewthread.php?tid=864757&highlight=duanjigang(4)至于内存cat /proc/meminfo | grep &MemTotal&cat /rpco/meninfo
| grep &MemFree&就可以了吧
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:102402次
积分:1280
积分:1280
排名:千里之外
原创:36篇
评论:14条
(1)(1)(1)(1)(1)(15)(8)(17)使用pidstat查看进程资源使用情况 - 流浪的代码 - ITeye技术网站
博客分类:
在查看系统资源使用情况时,很多工具为我们提供了从设备角度查看的方法。例如使用iostat查看磁盘io统计信息:
linux:~ # iostat -d 3
Blk_read/s
Blk_wrtn/s
以上显示的是从sda的角度统计的结果。当我们需要从进程的角度,查看每个进程使用系统资源的情况,有什么方法吗?
使用pidstat工具可以获取每个进程使用cpu、内存和磁盘等系统资源的统计信息,pidstat由sysstat rpm包提供,可在suse11使用。下面我们来看pidstat的具体用法。
执行pidstat,将输出系统启动后所有活动进程的cpu统计信息:
linux:~ # pidstat
Linux 2.6.32.12-0.7-default (linux)
%usr %system
以上输出,除最开头一行显示内核版本、主机名、日期和cpu架构外,主要列含义如下:
11:37:19: pidstat获取信息时间点
PID: 进程pid
%usr: 进程在用户态运行所占cpu时间比率
%system: 进程在内核态运行所占cpu时间比率
%CPU: 进程运行所占cpu时间比率
CPU: 指示进程在哪个核运行
Command: 拉起进程对应的命令
执行pidstat默认输出信息为系统启动后到执行时间点的统计信息,因而即使当前某进程的cpu占用率很高,输出中的值有可能仍为0。
指定采样周期和采样次数
像sar、iostat等命令一样,也可以给pidstat命令指定采样周期和采样次数,命令形式为”pidstat [option] interval [count]”,以下pidstat输出以2秒为采样周期,输出2次cpu使用统计信息:
linux:~ # pidstat 2 2
Linux 2.6.32.12-0.7-default (linux)
%usr %system
%usr %system
runHpiAlarm
若不指定统计次数count,则pidstat将一直输出统计信息。
cpu使用情况统计(-u)
使用-u选项,pidstat将显示各活动进程的cpu使用统计,执行”pidstat -u”与单独执行”pidstat”的效果一样。
内存使用情况统计(-r)
使用-r选项,pidstat将显示各活动进程的内存使用统计:
linux:~ # pidstat -r -p 13084 1
Linux 2.6.32.12-0.7-default (linux)
以上各列输出的含义如下:
minflt/s: 每秒次缺页错误次数(minor page faults),次缺页错误次数意即虚拟内存地址映射成物理内存地址产生的page fault次数
majflt/s: 每秒主缺页错误次数(major page faults),当虚拟内存地址映射成物理内存地址时,相应的page在swap中,这样的page fault为major page fault,一般在内存使用紧张时产生
VSZ: 该进程使用的虚拟内存(以kB为单位)
RSS: 该进程使用的物理内存(以kB为单位)
%MEM: 该进程使用内存的百分比
Command: 拉起进程对应的命令
IO情况统计(-d)
使用-d选项,我们可以查看进程IO的统计信息:
linux:~ # pidstat -d 1 2
Linux 2.6.32.12-0.7-default (linux)
kB_wr/s kB_ccwr/s
kB_wr/s kB_ccwr/s
以上主要输出的含义如下:
kB_rd/s: 每秒进程从磁盘读取的数据量(以kB为单位)
kB_wr/s: 每秒进程向磁盘写的数据量(以kB为单位)
Command: 拉起进程对应的命令
针对特定进程统计(-p)
使用-p选项,我们可以查看特定进程的系统资源使用情况:
linux:~ # pidstat -r -p 1 1
Linux 2.6.32.12-0.7-default (linux)
以上pidstat命令以1秒为采样时间间隔,查看init进程的内存使用情况。
pidstat常用命令
使用pidstat进行问题定位时,以下命令常被用到:
pidstat -u 1
pidstat -r 1
pidstat -d 1
以上命令以1秒为信息采集周期,分别获取cpu、内存和磁盘IO的统计信息。
浏览: 99023 次
来自: 北京
zkf55915 写道哥们怎么用啊
好久不用了,就是看帮助资 ...
哥们怎么用啊
jinnianshilongnian 写道整这个了?
没有 看 ...
整这个了?

我要回帖

更多关于 以下检索出文献最多的检索式是 的文章

 

随机推荐