如何知道运行多少个进程最有效率?

发布于 2022-09-01 17:44:47 字数 1122 浏览 22 评论 0

grep 'physical id' /proc/cpuinfo | sort -u | wc -l
grep 'core id' /proc/cpuinfo | sort -u | wc -l
grep 'processor' /proc/cpuinfo | sort -u | wc -l

output

2
10
40

更多信息

cat /proc/cupinfo

shows

processor    : 0
vendor_id    : GenuineIntel
cpu family    : 6
model        : 62
model name    : Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
stepping    : 4
microcode    : 0x416
cpu MHz        : 2499.892
cache size    : 25600 KB
physical id    : 0
siblings    : 20
core id        : 0
cpu cores    : 10
apicid        : 0
initial apicid    : 0
fpu        : yes
fpu_exception    : yes
cpuid level    : 13

...

processor    : 39
vendor_id    : GenuineIntel
cpu family    : 6
model        : 62
model name    : Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
stepping    : 4
microcode    : 0x416
cpu MHz        : 2499.892
cache size    : 25600 KB
physical id    : 1
siblings    : 20
core id        : 12
cpu cores    : 10
apicid        : 57
initial apicid    : 57
fpu        : yes
fpu_exception    : yes
cpuid level    : 13

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

治碍 2022-09-08 17:44:47

从/proc/cupinfo信息可以看出,E5-2670V2有10核心(cpu cores)20超线程(siblings),你的服务器是双路(两个CPU),总计就是20核心40超线程.
要最大化程序的性能,就应该避免程序被网络或者文件IO阻塞,也应该避免CPU出现过多的上下文切换.
拿Linux上的Nginx来说,Nginx利用内核epoll实现网络异步,小文件用sendfile,大文件用AIO线程池,来尽量避免工人进程被阻塞,工作进程数则设为CPU核心数来避免CPU频繁上下文切换.
同理,运行在PHP-FPM的PHP代码,应该避免使用curl等可能会产生较长网络IO的代码,对于一些经过PHP验证身份后输出的附件,为了避免文件阻塞,可以用header("X-Accel-Redirect: $file_path");委托给Nginx返回给客户端,最后,没了网络和文件IO的阻塞,就只剩下计算,这时PHP-FPM也是计算密集型应用,所以PHP-FPM工作进程数也可以设为CPU核心数.

可以在这台40超线程的服务器跑LAMP服务,看哪种情况下性能最佳:
10 Nginx + 30 PHP-FPM
15 Nginx + 25 PHP-FPM
40 Nginx + 40 PHP-FPM

猫性小仙女 2022-09-08 17:44:47

一般来讲和机器的核数相同算是效率较高的吧,具体还要看程序场景

提赋 2022-09-08 17:44:47

这个要看所运行的进程是什么性质的。

  1. 如果是CPU密集型的,比如计算圆周率,有多少processer就分配多少就行了

  2. 如果是IO密集型,比如大多数的web应用,还每个processer只分配一个进程就太浪费了,一般可以根据具体情况而定,可以分配2~10个

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文