为什么我的程序在服务器上运行速度变慢了很多?

为什么我的程序在服务器上运行速度变慢了很多?

我的 python 程序(单线程)花了 59 秒在我的 Mac Pro 上处理一个文件,其信​​息如下:

MacBook Pro (15-inch, 2019)
2.4 GHz 8-Core Intel Core i9
16 GB 2400 MHz DDR4
Radeon Pro 560X 4 GB
Intel UHD Graphics 630 1536 MB 

但在多核的服务器上处理同一个文件需要 1.43 分钟。CentOs 的 CPU 如下:

# cat /proc/cpuinfo
processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 85
model name  : Intel(R) Xeon(R) Silver 4114 CPU @ 2.20GHz
stepping    : 4
microcode   : 0x1
cpu MHz     : 2200.002
cache size  : 14080 KB
physical id : 0
siblings    : 32
core id     : 0
cpu cores   : 16
apicid      : 0
initial apicid  : 0
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1
bogomips    : 4400.00
clflush size    : 64
cache_alignment : 64
address sizes   : 46 bits physical, 48 bits virtual
power management:

# free -mh 
              total        used        free      shared  buff/cache   available
Mem:           220G         26G         10G        1.2G        183G        191G

每个容器大概有2个核心,每个核心8G内存。

CentOs 花费几乎两倍的时间来完成同样的任务,这合理吗?

答案1

对于 CentOS 来说这不是一个问题。

我们只能猜测,但假设你的 MacBook 中的 CPU 是 i9-9980HK(我怀疑是这种情况,这是一款比 Silver 4114 快得多的 CPU,并且使用更少的内核),我为你建立了一个比较https://www.cpubenchmark.net/compare/Intel-i9-9980HK-vs-Intel-Xeon-Silver-4114/3451vs3095 - 请注意,i9 的单线程评级为 2700,而 Silver 的单线程评级为 1651。

这解释了大部分差异,其余的可能在于代码、CPU 和程序架构以及系统上运行的其他内容。

相关内容