本文共 2116 字,大约阅读时间需要 7 分钟。
在Linux系统中,可以用/proc/stat文件来计算cpu的利用率。这个文件包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累计到当前时刻。
cat /proc/stat cpu 65376847 362756 2405159 10834971593 3765180 93399 2395097 0cpu0 7680302 5263 111909 1355640955 47680 0 185343 0cpu1 6527638 2261 327795 1356540189 249151 1 24242 0cpu2 6239465 47114 200809 1354709532 2153662 3610 317002 0cpu3 7009912 36126 257576 1356116663 162851 1068 87068 0cpu4 6028713 1692 197911 1356919175 300788 6821 216076 0cpu5 7110575 1479 124474 1356297947 92620 4248 39901 0cpu6 7206763 241427 247384 1355030525 691206 11642 242214 0cpu7 17573475 27390 937298 1343716603 67218 66006 1283248 0intr 2466653411 753885765 3 0 4 4 0 0 0 1 0 0 0 4 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 52 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 148466005 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 1553671397 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 10630155 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 21 0 0 0 0 0ctxt 2905526438btime 1260187150processes 4266007procs_running 5procs_blocked 0
输出解释CPU 以及CPU0、CPU1、CPU2、CPU3、CPU4、CPU5、CPU6、每行的每个参数意思(以第一行为例)为: 参数 解释user (65376847) 从系统启动开始累计到当前时刻,用户态的CPU时间(单位:jiffies) ,不包含 nice值为负进程。1jiffies=0.01秒nice (362756) 从系统启动开始累计到当前时刻,nice值为负的进程所占用的CPU时间(单位:jiffies)system (2405159) 从系统启动开始累计到当前时刻,核心时间(单位:jiffies)idle (10834971593) 从系统启动开始累计到当前时刻,除硬盘IO等待时间以外其它等待时间(单位:jiffies)iowait (3765180) 从系统启动开始累计到当前时刻,硬盘IO等待时间(单位:jiffies) ,irq (93399) 从系统启动开始累计到当前时刻,硬中断时间(单位:jiffies)softirq (2395097) 从系统启动开始累计到当前时刻,软中断时间(单位:jiffies) CPU时间=user+system+nice+idle+iowait+irq+softirq “intr”这行给出中断的信息,第一个为自系统启动以来,发生的所有的中断的次数;然后每个数对应一个特定的中断自系统启动以来所发生的次数。“ctxt”给出了自系统启动以来CPU发生的上下文交换的次数。“btime”给出了从系统启动到现在为止的时间,单位为秒。“processes (total_forks) 自系统启动以来所创建的任务的个数目。“procs_running”:当前运行队列的任务的数目。“procs_blocked”:当前被阻塞的任务的数目。
那么CPU利用率可以使用以下两个方法。先取两个采样点,然后计算其差值:cpu usage=(idle2-idle1)/(cpu2-cpu1)*100cpu usage=[(user_2 +sys_2+nice_2) - (user_1 + sys_1+nice_1)]/(total_2 - total_1)*100
转载地址:http://ourvi.baihongyu.com/