存档

文章标签 ‘Linux’

理解linux time命令的输出(What do ‘real’, ‘user’ and ‘sys’ mean?)

2010年6月19日 admin 没有评论

Linux中time命令,我们经常用来计算某个程序的运行耗时,用户态cpu耗时,系统态cpu耗时。

例如:

$ time foo 
real        0m0.003s
user        0m0.000s
sys         0m0.004s$

那么这三个时间都具体代表什么意思呢?

[1] real : 表示foo程序整个的运行耗时,可以理解为foo运行开始时刻你看了一下手表,foo运行结束时,你又看了一下手表,两次时间的差值就是本次real 代表的值

举个极端的例子如下:可以看到real time恰好为2秒。

# time sleep 2

real    0m2.003s

user    0m0.000s

sys     0m0.000s

[2] user   0m0.000s:这个时间代表的是foo运行在用户态的cpu时间,什么意思?

首先,我来讲一下用户态和核心态:

核心态(Kernel Mode)

      在内核态,代码拥有完全的,不受任何限制的访问底层硬件的能力。可以执行任意的CPU指令,访问任意的内存地址。内核态通常情况下,都是为那些最底层的,由操作系统提供的,可信可靠的代码来运行的。内核态的代码崩溃将是灾难性的,它会影响到整个系统。

       —– In Kernel mode, the executing code has complete and unrestricted access to the underlying hardware. It can execute any CPU instruction and reference any memory address. Kernel mode is generally reserved for the lowest-level, most trusted functions of the operating system. Crashes in kernel mode are catastrophic; they will halt the entire PC.

用户态(User Mode)

      在用户态,代码不具备直接访问硬件或者访问内存的能力,而必须借助操作系统提供的可靠的,底层的APIs来访问硬件或者内存。由于这种隔离带来的保护作用,用户态的代码崩溃(Crash),系统是可以恢复的。我们大多数的代码都是运行在用户态的。

      —– In User mode, the executing code has no ability to directly access hardware or reference memory. Code running in user mode must delegate to system APIs to access hardware or memory. Due to the protection afforded by this sort of isolation, crashes in user mode are always recoverable. Most of the code running on your computer will execute in user mode.

为什么要区分Kernel Mode 和 User Mode

     隔离保护,使得系统更稳定。

好,讲完用户态和核心态之后,我们来看user time,说过了,这个指的是程序foo运行在用户态的cpu时间,cpu时间不是墙上的钟走过的时间,而是指CPU工作时间。

[3] sys   0m0.004s : 这个时间代表的是foo运行在核心态的cpu时间。

 

好,讲完上面的这些,我们来看看这三个的关系,这三者之间没有严格的关系,常见的误区有:

误区一: real_time = user_time + sys_time

       我们错误的理解为,real time 就等于 user time + sys time,这是不对的,real time是时钟走过的时间,user time 是程序在用户态的cpu时间,sys time 为程序在核心态的cpu时间。

利用这三者,我们可以计算程序运行期间的cpu利用率如下:

%cpu_usage = (user_time + sys_time)/real_time * 100%

如:

# time sleep 2

real     0m2.003s

user    0m0.000s

sys     0m0.000s

cpu利用率为0,因为本身就是这样的,sleep 了2秒,时钟走过了2秒,但是cpu时间都为0,所以利用率为0

误区二:real_time > user_time + sys_time

一般来说,上面是成立的,上面的情况在单cpu的情况下,往往都是对的。

但是在多核cpu情况下,而且代码写的确实很漂亮,能把多核cpu都利用起来,那么这时候上面的关系就不成立了,例如可能出现下面的情况,请不要惊奇。

real 1m47.363s

user 2m41.318s

sys 0m4.013s

误区三:real_time < user_time + sys_time

一般来讲不会有人闯入这个误区^^

 

参考资料:理解time的输出

分类: Linux 标签: , , ,

debian apt sources.list教育网配置

2010年4月10日 admin 没有评论

debian apt sources.list教育网用户配置,ustc的debian源,速度和稳定性都不错,推荐

# /etc/apt/sources.list for debian testing(etch)
# see sources.list(5) for more information.
# you can replace http with ftp.
# this file should be used in testing(etch) only.

deb http://debian.ustc.edu.cn/debian testing main non-free contrib
deb-src http://debian.ustc.edu.cn/debian testing main non-free contrib

deb http://debian.ustc.edu.cn/debian-security testing/updates main
——————————————————————-

阅读全文…

Unix传奇(下篇)

2010年4月9日 admin 没有评论

<<<<   Unix传奇(上篇)

前言: 本文转载自酷壳(cooshell.cn),很感谢作者,非常不错的文章,从Unix到C语言,从Unix到linux,从Unix到开源系统,从Unix到Gnu,Linus Torvalds,Richard Stallman…… 历史的变迁,风云人物,*nix恩怨,历历在目,让我们一起再去看看那是怎样的岁月…

—————————————————分割线———————————————————-

Unix是目前还在存活的操作系统的元老了,走过了40年的历程(参看《Unix 40年:Unix年鉴》、《Unix 40年:昨天,今天和明天》)。由它引发的思想变革,对当今计算机文化造成的深远影响。这是一段所有从事计算机行业人员尤其是软件开发人员需要了解的历史。Unix的传奇历史是整个计算机世界文化最具代表性的,它对整个计算机世界文化的影响也是最巨大,最深远的。他给人带来的不单单的对过去的回味,更为我们带来了计算机世界的新思潮。

下篇

  • Unix与黑客文化
  • Unix的历史教训
  • Unix 家族谱
  • Unix的特点
  • Unix的影响和哲学
  • Unix痛恨者手册

    上篇

    • Unix起源
    • Unix分裂
    • Unix的法律纠纷
    • GNU开源组织
    • Linux横空出世
    • Linux今天的领袖

    阅读全文…

    Unix传奇(上篇)

    2010年4月9日 admin 没有评论

    前言: 本文转载自酷壳(cooshell.cn),很感谢作者,非常不错的文章,从Unix到C语言,从Unix到linux,从Unix到开源系统,从Unix到Gnu,Linus Torvalds,Richard Stallman…… 历史的变迁,风云人物,*nix恩怨,历历在目,让我们一起再去看看那是怎样的岁月…

    ———————————————– 分割线 ———————————————————

        了解过去,我们才能知其然,更知所以然。总结过去,我们才会知道我们明天该如何去规划,该如何去走。在时间的滚轮中,许许多的东西就像流星一样一闪而逝,而有些东西却能经受着时间的考验散发着经久的魅力,让人津津乐道,流传至今。要知道明天怎么去选择,怎么去做,不是盲目地跟从今天各种各样琳琅满目前沿技术,而应该是去 —— 认认真真地了解和回顾历史。 

         Unix是目前还在存活的操作系统的元老了,走过了40年的历程(参看《Unix 40年:Unix年鉴》、《Unix 40年:昨天,今天和明天》)。在技术更新如此迅速的计算机世界的今天,Unix始终保持它那神圣的光环,它那曲折和令人叹息的历史,以及由它引发的思想变革,对当今计算机文化造成的深远影响,这40年所产生的人和事,让它成为了一个传奇,不能不让人为之惊叹。

        这是一段所有从事计算机行业人员尤其是软件开发人员需要了解的历史。Unix的传奇历史是整个计算机世界文化最具代表性的,它对整个计算机世界文化的影响也是最巨大,最深远的。他给人带来的不单单的对过去的回味,更为我们带来了计算机世界的新思潮。

        了解这段的历史的人,才能体会计算机世界变迁过程中的是是非非,才能了解计算机世界中的文化,从而才能参与到整个计算机革命的大潮中。希望这段历史,这篇文章能让你感受到计算机世界那强力的脉搏,从而让你踏上这条令人充满激情的道路。

    上篇

    • Unix起源
    • Unix分裂
    • Unix的法律纠纷
    • GNU开源组织
    • Linux横空出世
    • Linux今天的领袖

    下篇

    • Unix与黑客文化
    • Unix的历史教训
    • Unix 家族谱
    • Unix的特点
    • Unix的影响和哲学
    • Unix痛恨者手册

    阅读全文…

    ulimit -n (文件句柄数)

    2009年8月1日 laiwei 1 条评论

    linux 系统中,对于一些系统资源的使用都有一个默认的限制,这个具体的是通过系统配置文件/etc/security/limits来决定的。比如默认的可以打开的文件句柄数为1024。

    我们可以通过ulimit命令来查看或者改变默认值。

    阅读全文…

    分类: Linux 标签: , ,

    SecureCRT设置标签跟随

    2009年7月1日 laiwei 没有评论

    对于经常使用SecureCRT登陆服务器工作的人来说
    开了很多标签页很容易造成误操作
    在A机器上了做了本该在B机器做的操作
    如果这个操作是可恶的rm -rf *的操作的话,那岂不是哭死了 阅读全文…

    ip tunnel无法删除(含解决方案)

    2009年6月24日 laiwei 2 条评论

    测试lvs的时候,添加了一个IP tunnel,如下:

    /sbin/ifconfig tunl0 $VIP broadcast $VIP netmask 255.255.255.255 up

    /sbin/route add -host $VIP dev tunl0

    测试完毕后,删除该IP tunnel时,死活删不掉,提示“ioctl:operation not permitted”,当然我是用root权限。
    阅读全文…