免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2444 | 回复: 4
打印 上一主题 下一主题

[日期时间] 关于某个大型仿真耗费时间,cpu,内存的请教 [复制链接]

论坛徽章:
2
数据库技术版块每日发帖之星
日期:2015-10-28 06:20:00数据库技术版块每日发帖之星
日期:2015-10-29 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-10-08 20:41 |显示全部楼层 |倒序浏览
本帖最后由 weichanghe2000 于 2012-10-08 22:40 编辑

大家好,我有一个大型的 软件仿真,我在 cshell 脚本1.csh 中  用了 date 函数:
1.csh内容为
set time1=`date`
....
..... 省略号 是 调用软件仿真,大概仿真要持续4-5天
set time2=`date`
top -b n 1 >1.log

我现在想知道
1. 仿真持续 多少秒,也就是 time2 与 time1 相隔多少秒?
我想直接拿time2 -time1,但是这样不对,因为存在多种情况:
如:time1和time2不是同一个月,time1是9月29号,time2是 10月5号;
    time1和time2是同一个月,  time1是9月10号,time2是 9月15号;
    以及 阳历这个月是 28,29,30天,或者31天都相关

查了很多帮助,用 /usr/bin/time -f %e 1.csh 可以得到 脚本 1.csh 运行 花费多少秒。
2.  但是我还想 得到 1.csh 运行 耗费了多少CPU(top命令中的 %CPU 那列),多少memory(top命令中的RES列)?可是问题是:在脚本末尾写上 top -b n 1 >1.log 时,此时 1.csh 已经运行完成,得不到 1.csh 耗费的 %CPU 和 RES 。
于是我用 /usr/bin/time  -f %M 1.csh 和  /usr/bin/time  -f %P 1.csh  , 可是结果我发现 这 2个 命令的返回值 与 top 命令的CPU% 和 RES 值 完全不一样,相差十万八千里。
因为 /usr/bin/time  中 %M 和 %P 的定义跟 top 命令中的 CPU 和 RES 列完全不是一个物理含义。

求高手指教。可能讲得有点啰嗦。
现在把求助归纳总结下:
1. 如何 算出 这个脚本 运行了多少秒,把这个 秒数重定向到1.log? 我用的是 /usr/bin/time -f %e 1.csh 2> 1.log
2. 如何 用 top 命令,运行 1.csh ,所需要耗费的 CPU 和 RES 重定向到 1.log ?我在脚本末尾用 top -b n 1 >1.log ,但此时 1.csh 却已经完成了,根本得不到 1.csh 耗费的 CPU 和 RES,如何做到?

论坛徽章:
2
数据库技术版块每日发帖之星
日期:2015-10-28 06:20:00数据库技术版块每日发帖之星
日期:2015-10-29 06:20:00
2 [报告]
发表于 2012-10-09 08:45 |显示全部楼层
回复 4# rdcwayx


  我的 linux,不支持 prstat 命令

论坛徽章:
2
数据库技术版块每日发帖之星
日期:2015-10-28 06:20:00数据库技术版块每日发帖之星
日期:2015-10-29 06:20:00
3 [报告]
发表于 2012-10-09 08:56 |显示全部楼层
回复 3# Shell_HAT


谢谢大侠,想问下

#日期转秒数
function date2seconds {
    echo "$*" | awk '{
        z=int((14-$2)/12); y=$1+4800-z; m=$2+12*z-3;
        j=int((153*m+2)/5)+$3+y*365+int(y/4)-int(y/100)+int(y/400)-2472633;
        j=j*86400+$4*3600+$5*60+$6
        print j
    }'
}

date2seconds `echo "2010-07-21 00:00:00" | sed 's/-/ /g;s/:/ /g'`

我是新手,能否帮忙解释下这段代码?如
z代表什么? =号 右边的 14 代表什么?
y应该是年份,但是4800 代表什么?
m应该是月份,减掉 3代表什么?
j看起来是天数,153代表什么?除以5 是什么? int(y/4)-int(y/100)+int(y/400) 应该是 判断 闰年, 2472633又 代表什么?

水平很菜,疑问很多,望大侠指教,多谢。

论坛徽章:
2
数据库技术版块每日发帖之星
日期:2015-10-28 06:20:00数据库技术版块每日发帖之星
日期:2015-10-29 06:20:00
4 [报告]
发表于 2012-10-09 09:10 |显示全部楼层
回复 7# rdcwayx


谢谢大侠,top -p pid 确实可以 动态的显示 %CPU 和 RES 列,
如果我的脚本运行 5天左右,也就是说,我不知道我的脚本 何时 结束,所以 就没法估计 程序何时结束,然后运行 top -p pid 来查询。
因为程序1.csh 结束后,运行top -p pid,这个 pid 已经被 释放了。

论坛徽章:
2
数据库技术版块每日发帖之星
日期:2015-10-28 06:20:00数据库技术版块每日发帖之星
日期:2015-10-29 06:20:00
5 [报告]
发表于 2012-10-09 10:21 |显示全部楼层
回复 9# rdcwayx


  明白,多谢大侠,是获取 一些 离散的时间点 上的 cpu 和 mem 信息
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP