Ale*_*ysh 5 ubuntu performance-tuning cpu-usage high-load
tl; dr:第一个 CPU 内核始终处于饱和状态,所有其他内核始终负载不足。
一个虚拟机,在基于 Ubuntu 的 Xen XCP 中:
$ uname -a Linux MYHOST 2.6.38-15-virtual #59-Ubuntu SMP Fri Apr 27 16:40:18 UTC 2012 i686 i686 i386 GNU/Linux $ lsb_release -a 没有可用的 LSB 模块。 分销商 ID: Ubuntu 描述:Ubuntu 11.04 发布:11.04 代号:natty
此 VM 有 8 个 CPU 内核。
这个虚拟机上运行着 10 个单线程工作进程,它们通过 FCGI 接口连接到 nginx 服务器(在本地网络端口上侦听)。
在来自 AB 的合成负载下,只有 8 个内核中的第一个内核会加载到 100%(如从 中看到的htop
)。它或多或少地始终处于非常高的负载下,所有其他内核的负载从 0% 到 100% 不等,或多或少是随机的(并且这些内核的 CPU 负载在跳动)。
这是我在负载下通常看到的内容htop
:
1 [|||||||||||||||||||||||||||||||||||||||||||| |||||||||||||||||||||||||||||||||||99.3%] 任务:70, 35 thr; 11 跑步 2 [||||||||||||||| 15.0%] 平均负载:3.86 1.05 0.39 3 [|||||||||||||||||||||||||||||||| 36.7%] 正常运行时间:22 天,06:31:57 4 [|||||||||||||||| 15.7%] 5 [|||||||||||||||||||| 22.4%] 6 [|||||||||||||||||| 19.9%] 7 [|||||||||||||||||||||||||||||||||||||||||||| |||||||||||||||||| 71.2%] 8 [|||||||||||||||||||||||||||| 31.3%] 内存[|||||||||||||||||||||||||||||||||||||||||||| |||||||||||||||||||||||||||||||394/4028MB] 交换[0/5362MB] PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ 命令 26213 www-data 20 0 49748 26952 2448 R 29.0 0.7 10:42.61 /usr/bin/luajit2 26227 www-data 20 0 50172 27412 2452 R 27.0 0.7 10:43.53 /usr/bin/luajit2 26221 www-data 20 0 50736 27948 2452 R 27.0 0.7 10:39.02 /usr/bin/luajit2 26234 www-data 20 0 50128 27232 2452 R 27.0 0.7 10:36.36 /usr/bin/luajit2 26218 www-data 20 0 50232 27376 2452 R 26.0 0.7 10:39.32 /usr/bin/luajit2 26214 www-data 20 0 51268 28496 2452 R 26.0 0.7 10:58.15 /usr/bin/luajit2 26232 www-data 20 0 50420 27588 2452 R 25.0 0.7 10:39.21 /usr/bin/luajit2 26217 www-data 20 0 50236 27348 2452 R 25.0 0.7 10:34.44 /usr/bin/luajit2 26219 www-data 20 0 50748 27960 2448 R 23.0 0.7 10:45.30 /usr/bin/luajit2 26239 www-data 20 0 49772 27188 2452 R 22.0 0.7 10:39.39 /usr/bin/luajit2 26368 www-data 20 0 10856 3796 968 S 15.0 0.1 1:12.62 nginx:工作进程 26369 www-data 20 0 10652 3504 968 S 2.0 0.1 1:12.75 nginx:工作进程 26372 www-data 20 0 10520 3504 968 S 0.0 0.1 1:18.64 nginx:工作进程 ...
在负载测试期间,所有工作进程都在 中R
,负载测试运行大约 10-15 分钟(性能大约为 700-900 次点击/秒)。当然,流量是由外部机器产生的。
看起来这个 CPU 内核负载不平衡是主要的性能瓶颈,如果所有内核负载均衡,性能可能会更高。
有关如何解决此问题的任何线索?
请告诉我是否可以提供更多信息。
看起来CPU0 收到每一个eth1 中断,而且有很多。
$ cat /proc/interrupts CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7 283:113720624 0 0 0 0 0 0 0 xen-dyn-event eth1 284:1 0 0 0 0 0 0 0 xen-dyn-event eth0 285: 2254 0 0 3873799 0 0 0 0 xen-dyn-event blkif 286: 23 0 0 0 0 0 0 0 xen-dyn-event hvc_console 287: 492 42 0 0 0 0 0 295324 xen-dyn-event xenbus 288:0 0 0 0 0 0 0 222294 xen-percpu-ipi callfuncsingle7 289:0 0 0 0 0 0 0 0 xen-percpu-virq debug7 290:0 0 0 0 0 0 0 151302 xen-percpu-ipi callfunc7 291:0 0 0 0 0 0 0 3236015 xen-percpu-ipi resched7 292:0 0 0 0 0 0 0 60064 xen-percpu-ipi spinlock7 293:0 0 0 0 0 0 0 12355510 xen-percpu-virq timer7 294:0 0 0 0 0 0 803174 0 xen-percpu-ipi callfuncsingle6 295:0 0 0 0 0 0 0 0 xen-percpu-virq debug6 296:0 0 0 0 0 0 60027 0 xen-percpu-ipi callfunc6 297:0 0 0 0 0 0 5374762 0 xen-percpu-ipi resched6 298:0 0 0 0 0 0 64976 0 xen-percpu-ipi spinlock6 299:0 0 0 0 0 0 15294870 0 xen-percpu-virq timer6 300:0 0 0 0 0 264441 0 0 xen-percpu-ipi callfuncsingle5 301: 0 0 0 0 0 0 0 0 xen-percpu-virq debug5 302:0 0 0 0 0 79324 0 0 xen-percpu-ipi callfunc5 303:0 0 0 0 0 3468144 0 0 xen-percpu-ipi resched5 304:0 0 0 0 0 66269 0 0 xen-percpu-ipi spinlock5 305:0 0 0 0 0 12778464 0 0 xen-percpu-virq timer5 306:0 0 0 0 844591 0 0 0 xen-percpu-ipi callfuncsingle4 307: 0 0 0 0 0 0 0 0 xen-percpu-virq debug4 308:0 0 0 0 75293 0 0 0 xen-percpu-ipi callfunc4 309:0 0 0 0 3482146 0 0 0 xen-percpu-ipi resched4 310:0 0 0 0 79312 0 0 0 xen-percpu-ipi spinlock4 311:0 0 0 0 21642424 0 0 0 xen-percpu-virq timer4 312:0 0 0 449141 0 0 0 0 xen-percpu-ipi callfuncsingle3 313:0 0 0 0 0 0 0 0 xen-percpu-virq debug3 314:0 0 0 95405 0 0 0 0 xen-percpu-ipi callfunc3 315:0 0 0 3802992 0 0 0 0 xen-percpu-ipi resched3 316:0 0 0 76607 0 0 0 0 xen-percpu-ipi spinlock3 317:0 0 0 16439729 0 0 0 0 xen-percpu-virq timer3 318:0 0 876383 0 0 0 0 0 xen-percpu-ipi callfuncsingle2 319:0 0 0 0 0 0 0 0 xen-percpu-virq debug2 320:0 0 76416 0 0 0 0 0 xen-percpu-ipi callfunc2 321:0 0 3422476 0 0 0 0 0 xen-percpu-ipi resched2 322:0 0 69217 0 0 0 0 0 xen-percpu-ipi spinlock2 323:0 0 10247182 0 0 0 0 0 xen-percpu-virq timer2 324:0 393514 0 0 0 0 0 0 xen-percpu-ipi callfuncsingle1 325:0 0 0 0 0 0 0 0 xen-percpu-virq debug1 326:0 95773 0 0 0 0 0 0 xen-percpu-ipi callfunc1 327:0 3551629 0 0 0 0 0 0 xen-percpu-ipi resched1 328:0 77823 0 0 0 0 0 0 xen-percpu-ipi spinlock1 329:0 13784021 0 0 0 0 0 0 xen-percpu-virq timer1 330:730435 0 0 0 0 0 0 0 xen-percpu-ipi callfuncsingle0 331:0 0 0 0 0 0 0 0 xen-percpu-virq debug0 332:39649 0 0 0 0 0 0 0 xen-percpu-ipi callfunc0 333:3607120 0 0 0 0 0 0 0 xen-percpu-ipi resched0 334:348740 0 0 0 0 0 0 0 xen-percpu-ipi spinlock0 335:89912004 0 0 0 0 0 0 0 xen-percpu-virq timer0 NMI:0 0 0 0 0 0 0 0 不可屏蔽中断 LOC:0 0 0 0 0 0 0 0 本地定时器中断 SPU:0 0 0 0 0 0 0 0 虚假中断 PMI:0 0 0 0 0 0 0 0 性能监控中断 IWI:0 0 0 0 0 0 0 0 IRQ 工作中断 RES:3607120 3551629 3422476 3802992 3482146 3468144 5374762 3236015 重新调度中断 CAL:770084 489287 952799 544546 919884 343765 863201 373596 函数调用中断 TLB:0 0 0 0 0 0 0 0 TLB 击落 TRM:0 0 0 0 0 0 0 0 热事件中断 THR:0 0 0 0 0 0 0 0 阈值 APIC 中断 MCE:0 0 0 0 0 0 0 0 机器检查异常 MCP:0 0 0 0 0 0 0 0 机器检查轮询 错误:0 管理信息:0
归档时间: |
|
查看次数: |
1382 次 |
最近记录: |