欢迎来到天天文库
浏览记录
ID:37711450
大小:20.64 KB
页数:8页
时间:2019-05-29
《linux time命令》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、我使用过的Linux命令之time-测定一个命令的资源使用情况本文链接:http://codingstandards.iteye.com/blog/798788 (转载请注明出处)用途说明time命令常用于测量一个命令的运行时间,注意不是用来显示和修改系统时间的(这是date命令干的事情)。但是今天我通过查看time命令的手册页,发现它能做的不仅仅是测量运行时间,还可以测量内存、I/O等的使用情况,手册页上的说法是timeasimplecommandorgiveresourceusage,其中time一词
2、我认为它应该是测量或测定的意思,并不单指时间。一个程序在运行时使用的系统资源通常包括CPU、Memory和I/O等,其中CPU资源的统计包括实际使用时间(realtime)、用户态使用时间(theprocessspentinusermode)、内核态使用时间(theprocessspentinkernelmode)。但是简单的使用time命令并不能得到内存和I/O的统计数据,请看后文慢慢道来。常用参数time命令最常用的使用方式就是在其后面直接跟上命令和参数:time[3、s...>]在命令执行完成之后就会打印出CPU的使用情况:real 0m5.064s <==实际使用时间(realtime)user 0m0.020s <==用户态使用时间(theprocessspentinusermode)sys 0m0.040s <==内核态使用时间(theprocessspentinkernelmode)time命令跟上-p参数可以只打印时间数值(秒数),不打印单位。使用示例示例一统计运行时间[root@web186root]#timefind.4、-name"mysql.sh"./work186/sms/bin/mysql.sh./work186/sms/src/scripts/mysql.sh./work186/sms/src/scripts1/mysql.sh./work186/sms1/bin/mysql.sh./work186/sms1/src/scripts/mysql.sh./temp/sms/bin/mysql.sh./temp/sms/src/scripts/mysql.shreal 0m14.837suser 0m0.035、0ssys 0m0.120s[root@web186root]#注:real远大于user加上sys,因为find需要遍历各个目录,需要大量的I/O操作,而磁盘I/O通常是最慢的环节,因此大部分时间find进程都在等待磁盘I/O完成。[root@web186root]#timefind.-name"mysql.sh"./work186/sms/bin/mysql.sh./work186/sms/src/scripts/mysql.sh./work186/sms/src/scripts1/mysql.6、sh./work186/sms1/bin/mysql.sh./work186/sms1/src/scripts/mysql.sh./temp/sms/bin/mysql.sh./temp/sms/src/scripts/mysql.shreal 0m0.230suser 0m0.040ssys 0m0.030s注:再次运行的时候,发现realtime变得很小了,应该是操作系统将刚才操作过的一些文件缓存了的缘故,因而大大减少了磁盘I/O。[root@web186root]#time-pfind7、.-name"mysql.sh"./work186/sms/bin/mysql.sh./work186/sms/src/scripts/mysql.sh./work186/sms/src/scripts1/mysql.sh./work186/sms1/bin/mysql.sh./work186/sms1/src/scripts/mysql.sh./temp/sms/bin/mysql.sh./temp/sms/src/scripts/mysql.shreal0.15user0.04sys0.03注:使用-8、p参数时,直接打印所需时间的数值,单位为秒,而不是更友好的格式,包括分钟、秒钟的显示方式。[root@web186root]#示例二Linux系统中time命令其实不止一个看过手册页的朋友,会发现有个-f参数可以来指定统计信息的输出格式,我们也来试一下。[root@web186root]#time-f"real%fuser%fsys%f"find.-name"mysql.sh" -bash:-f:commandno
3、s...>]在命令执行完成之后就会打印出CPU的使用情况:real 0m5.064s <==实际使用时间(realtime)user 0m0.020s <==用户态使用时间(theprocessspentinusermode)sys 0m0.040s <==内核态使用时间(theprocessspentinkernelmode)time命令跟上-p参数可以只打印时间数值(秒数),不打印单位。使用示例示例一统计运行时间[root@web186root]#timefind.
4、-name"mysql.sh"./work186/sms/bin/mysql.sh./work186/sms/src/scripts/mysql.sh./work186/sms/src/scripts1/mysql.sh./work186/sms1/bin/mysql.sh./work186/sms1/src/scripts/mysql.sh./temp/sms/bin/mysql.sh./temp/sms/src/scripts/mysql.shreal 0m14.837suser 0m0.03
5、0ssys 0m0.120s[root@web186root]#注:real远大于user加上sys,因为find需要遍历各个目录,需要大量的I/O操作,而磁盘I/O通常是最慢的环节,因此大部分时间find进程都在等待磁盘I/O完成。[root@web186root]#timefind.-name"mysql.sh"./work186/sms/bin/mysql.sh./work186/sms/src/scripts/mysql.sh./work186/sms/src/scripts1/mysql.
6、sh./work186/sms1/bin/mysql.sh./work186/sms1/src/scripts/mysql.sh./temp/sms/bin/mysql.sh./temp/sms/src/scripts/mysql.shreal 0m0.230suser 0m0.040ssys 0m0.030s注:再次运行的时候,发现realtime变得很小了,应该是操作系统将刚才操作过的一些文件缓存了的缘故,因而大大减少了磁盘I/O。[root@web186root]#time-pfind
7、.-name"mysql.sh"./work186/sms/bin/mysql.sh./work186/sms/src/scripts/mysql.sh./work186/sms/src/scripts1/mysql.sh./work186/sms1/bin/mysql.sh./work186/sms1/src/scripts/mysql.sh./temp/sms/bin/mysql.sh./temp/sms/src/scripts/mysql.shreal0.15user0.04sys0.03注:使用-
8、p参数时,直接打印所需时间的数值,单位为秒,而不是更友好的格式,包括分钟、秒钟的显示方式。[root@web186root]#示例二Linux系统中time命令其实不止一个看过手册页的朋友,会发现有个-f参数可以来指定统计信息的输出格式,我们也来试一下。[root@web186root]#time-f"real%fuser%fsys%f"find.-name"mysql.sh" -bash:-f:commandno
此文档下载收益归作者所有