Articles of cpu

处于睡眠状态的CPU利用率较高

我有一个似乎陷入僵局的过程: # strace -p 5075 Process 5075 attached – interrupt to quit futex(0x419cf9d0, FUTEX_WAIT, 5095, NULL 它坐在“futex”系统调用,似乎是无限期地等待锁。 当“top”运行时,这个过程显示消耗了大量的CPU: # top -b -n 1 top – 23:13:18 up 113 days, 4:19, 1 user, load average: 1.69, 1.74, 1.72 Tasks: 269 total, 1 running, 268 sleeping, 0 stopped, 0 zombie Cpu(s): 8.1%us, 0.1%sy, 0.0%ni, 91.8%id, 0.0%wa, 0.0%hi, […]

“机器硬件”与“硬件平台”的区别

我的Linux机器报告“uname -a”输出如下: [root@tom i386]# uname -a Linux tom 2.6.9-89.ELsmp #1 SMP Mon Apr 20 10:34:33 EDT 2009 i686 i686 i386 GNU/Linux [root@tom i386]# 根据uname的man page,条目“i686 i686 i386”表示: 机器硬件名称(i686) 处理器types(i686) 硬件平台(i386) 附加信息: [root@tom i386]# cat /proc/cpuinfo <snip> vendor_id : GenuineIntel CPU family : 6 model : 15 model name : Intel(R) Xeon(R) CPU 5148 @ 2.33 […]

linux高内核cpu使用率在内存初始化上

我有一个由Linux内核高CPU消耗的问题,而引导我的Java应用程序在服务器上。 这个问题只发生在生产中,在开发服务器上一切都是光速的。 upd9:关于这个问题有两个问题: 如何解决它? – 名义动物build议同步和放下一切,这真的有帮助。 sudo sh -c 'sync ; echo 3 > /proc/sys/vm/drop_caches ; 作品。 upd12:但确实sync就足够了。 为什么这发生? – 对我来说还是开放的,我知道刷到磁盘的消耗CPU和IO的时间是正常的。 但是,为什么即使用“C”编写的单线程应用程序,我的内核空间中的所有核心都加载了100%? 由于ref-upd10和ref-upd11,我有一个想法, echo 3 > /proc/sys/vm/drop_caches不需要解决我的问题与缓慢的内存分配。 在开始消耗内存的应用程序之前 ,运行“sync”应该足够了。 大概会在这里尝试这个明天的生产和发布结果。 upd10: FScaching失去页面大小写: 然后我执行cat 10GB.fiel > /dev/null sync确定,没有durty页面( cat /proc/meminfo |grep ^Dirty显示184kb。 检查cat /proc/meminfo |grep ^Cached我得到:4GBcaching 运行int main(char**)我得到了正常的性能(如50ms初始化32MB的分配数据)。 caching内存减less到900MB testing总结: 我认为linux将回收用作FScaching的页面分配到分配的内存是没有问题的。 upd11:大量脏页面案例。 项目清单 我运行了我的HowMongoDdWorks示例和评论read部分,并在一段时间后 /proc/meminfo说,2.8GB是Dirty ,3.6GB是Cached […]

如何找出共享主机是否运行32或64位 – 用PHP

使用PHP可以识别Linux 32或64位吗? phpinfo() 回报 Linux infong 2.4 #1 SMP Mon Oct 10 09:34:36 UTC 2011 i686 GNU/Linux 这是共享主机,所以我不能使用命令行。

为什么perf stat显示“stalled-cycles-backend”为<不支持>?

运行perf stat ls显示这个: Performance counter stats for 'ls': 1.388670 task-clock # 0.067 CPUs utilized 2 context-switches # 0.001 M/sec 0 cpu-migrations # 0.000 K/sec 266 page-faults # 0.192 M/sec 3515391 cycles # 2.531 GHz 2096636 stalled-cycles-frontend # 59.64% frontend cycles idle <not supported> stalled-cycles-backend 2927468 instructions # 0.83 insns per cycle # 0.72 stalled cycles […]

用于查找使用太多CPU的进程的命令

我可以使用什么命令来查找使用大量CPU的进程? 我可以不用安装新的东西吗?

nanosleep高CPU使用率?

我注意到一个调用nanosleep的小testing程序,在内核比2.6.22更新的Linux机器上运行时,显示CPU使用率的巨大差异。 #include <time.h> int main (void) { struct timespec sleepTime; struct timespec returnTime; sleepTime.tv_sec = 0; sleepTime.tv_nsec = 1000; while (1) { nanosleep(&sleepTime, &returnTime); } return 0; } (是的,我知道这个程序什么都不做) 如果我编译并在openSUSE 10.3机器(2.6.22.19-0.2-default)上运行它,程序甚至不会显示在由“top”生成的进程列表中,这表明它正在使用很less的CPU时间。 如果我在openSUSE 11.1机器(2.6.27.23-0.1-default)上运行它,top会显示占用40%CPU时间的程序。 在Fedora 9(2.6.25-14.fc9.i686)和Fedora 10上运行的时候,在“top”中也显示了相同的高CPU使用率。 内核的变化是否影响到了这一点?

如何获得在Linux上C的CPU信息,如核心数量?

是否有可能通过某些API或函数获取此类信息,而不是parsing/proc/cpuinfo ?

有没有办法检查最近处理器caching是否被刷新?

在i386 linux上。 如果可能,最好在c /(c / posix std libs)/ proc中。 如果不是有任何可以做到这一点的程序集或第三方库? 编辑:我试图开发testing是否内核模块清除caching行或整个proccesor(与wbinvd())。 程序以root身份运行,但如果可能的话,我宁愿留在用户空间中。

使用/ proc / stat准确计算Linux中的CPU利用率

有关如何使用/ proc / stat中的统计信息获取CPU使用率的许多post和参考资料。 然而,他们大多数只使用7+ CPU统计中的四个(用户,nice,系统和空闲),而忽略了Linux 2.6中存在的jiffie CPU数量(iowait,irq,softirq)。 作为示例,请参阅确定CPU使用率 。 我的问题是这样的:iowait / irq / softirq数字是否也计入前四个数字之一(user / nice / system / idle)? 换句话说,jiffie总数是否等于前四个数字的总和? 或者,jiffie总数是否等于所有7个数据的总和? 如果后者是真的,那么CPU利用率公式应该考虑所有的数字,如下所示: #include <stdio.h> #include <stdlib.h> int main(void) { long double a[7],b[7],loadavg; FILE *fp; for(;;) { fp = fopen("/proc/stat","r"); fscanf(fp,"%*s %Lf %Lf %Lf %Lf",&a[0],&a[1],&a[2],&a[3],&a[4],&a[5],&a[6]); fclose(fp); sleep(1); fp = fopen("/proc/stat","r"); fscanf(fp,"%*s %Lf %Lf %Lf […]