/proc/uptime

时间:2023-09-13 19:54:08

在Linux中,我们常常会使用到uptime命令去看看系统的运行时间,它与一个文件有关,就是/proc/uptime。这个文件里的两个参数所代表的意义如下。

[root@app ~]#cat /proc/uptime
3387048.81 3310821.00
[root@app ~]#cat /proc/cpuinfo | grep processor | wc -l
8

第一个参数num1是代表从系统启动到现在的时间(以秒为单位):
3387048.81秒 = 39.20195381944444天,说明这台服务器已连续开机39.20195381944444天
第二个参数num2是代表系统空闲的时间(以秒为单位):
3310821.00秒 = 38.3196875天,说明这台机器从开机到现在一共只有38天左右没事干。

注意,很多很多人都知道第二个是系统空闲的时间,但是可能你不知道是,在SMP系统里,系统空闲的时间有时会是系统运行时间的几倍,这是怎么回事呢?
因为系统空闲时间的计算,是把SMP算进去的,就是所你有几个逻辑的CPU(包括超线程)。

系统的空闲率(%) = num2/(num1*N) 其中N是SMP系统中的CPU个数。

计算一下空闲率:
3310821.00 / 3387048.81 = 0.9774943278718207
也就是说:它的空闲率是97%

说明:
    空闲率高低并不单意味着,它做的工作多少,还有跟服务器的配置和性能有很大的关系,这台服务器有这么低的空闲率,或者说这么高的利用率,是因为它的配置比较低。
    空闲率跟服务器的配置有很大的关系,服务器的性能越好,配置越高,它处理的速度越快,配置高的服务器处理的时间要小于配置低的服务器。
    从空闲时间,你就可以判断你的服务器负载是否过大,看一下是不是有异常情况发生,如果空闲时间很小,说明你的服务器已经在满负荷运行,然后决定是不是需要升级你的服务器。
    系统空闲率越大,说明系统比较闲,可以加重一些负载;而系统空闲率很小,则可能考虑升级本机器硬件或者迁移部分负载到其他机器上。

Some docs from Redhat:
    
The first number is the total number of seconds the system has been up.
The second number is how much of that time the machine has spent idle,
in seconds. (Jay’s comments: Please pay attention to SMP system.)

本文整理自网络(2014-02-08):
    1、http://smilejay.com/2012/05/proc_uptime/?utm_source=rss
    2、http://blog.csdn.net/txgc1009/article/details/7026332