Tại sao máy tính lõi 16x 2,93 GHz của tôi hoạt động kém hơn so với VPS có lõi 4x 2,5 GHz?


34

Tôi có một phần mềm được viết bằng một phần mềm đa luồng, thực hiện một loạt các mô phỏng mỗi ngày. Đây là một nhiệm vụ rất tốn CPU và tôi đã chạy chương trình này trên các dịch vụ đám mây, thường là trên các cấu hình như 1GB mỗi lõi.

Tôi đang chạy CentOS 6.7 và /proc/cpuinfocho tôi biết rằng bốn lõi VPS của tôi là 2,5 GHz.

processor       : 3
vendor_id       : GenuineIntel
cpu family      : 6
model           : 63
model name      : Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz
stepping        : 2
microcode       : 1
cpu MHz         : 2499.992
cache size      : 30720 KB
physical id     : 3
siblings        : 1
core id         : 0
cpu cores       : 1
apicid          : 3
initial apicid  : 3
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 syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good unfair_spinlock 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 arat xsaveopt fsgsbase bmi1 avx2 smep bmi2 erms invpcid
bogomips        : 4999.98
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:

Với sự gia tăng của tỷ giá hối đoái, VPS của tôi bắt đầu đắt hơn và tôi đã đạt được một "thỏa thuận tuyệt vời" trên các máy chủ kim loại đã qua sử dụng.

Tôi đã mua bốn chiếc HP DL580 G5 , với bốn chiếc Intel Xeon X7350. Về cơ bản, mỗi máy có lõi 16x 2,93 GHz và 16 GB, để giữ những thứ như đám mây VPS của tôi .

processor       : 15
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Xeon(R) CPU           X7350 @ 2.93GHz
stepping        : 11
microcode       : 187
cpu MHz         : 1600.002
cache size      : 4096 KB
physical id     : 6
siblings        : 4
core id         : 3
cpu cores       : 4
apicid          : 27
initial apicid  : 27
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm dca lahf_lm dts tpr_shadow vnmi flexpriority
bogomips        : 5866.96
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:

Về cơ bản có vẻ như rất nhiều, vì tôi có thể ngừng sử dụng VPS để thực hiện các công việc hàng loạt này. Bây giờ nó là thứ kỳ lạ ...

  1. Trên VPS tôi đã chạy 1,25 luồng trên mỗi lõi, giống như tôi đã làm trên kim loại trần. (Chủ đề thêm 0,25 là để bù thời gian nhàn rỗi do sử dụng mạng.)
  2. Trên VPS của tôi, sử dụng tổng số lõi 44x 2,5 GHz, tôi nhận được gần 900 mô phỏng mỗi phút.
  3. Trên DL580 của tôi, sử dụng tổng số lõi 64x 2,93 GHz, tôi chỉ nhận được 300 mô phỏng mỗi phút.

Tôi hiểu DL580 có bộ xử lý cũ hơn. Nhưng nếu tôi đang chạy một luồng trên mỗi lõi và máy chủ kim loại trần có lõi nhanh hơn, tại sao nó hoạt động kém hơn VPS của tôi?

Tôi không có trao đổi bộ nhớ xảy ra trong bất kỳ máy chủ.

TOP cho biết bộ xử lý của tôi đang chạy ở mức 100%. Tôi nhận được tải trung bình là 18 (5 trên VPS).

Đây sẽ là cách này, hoặc tôi đang thiếu một cái gì đó?

Chạy lscpu cho tôi 1.6GHz trên máy chủ kim loại trần của tôi. Điều này đã được nhìn thấy trên /proc/cpuinfolà tốt.

Là thông tin này là chính xác, hoặc nó được liên kết với một số quản lý năng lượng không chính xác?

[BARE METAL] $ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                16
On-line CPU(s) list:   0-15
Thread(s) per core:    1
Core(s) per socket:    4
Socket(s):             4
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 15
Stepping:              11
**CPU MHz:               1600.002**
BogoMIPS:              5984.30
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              4096K
NUMA node0 CPU(s):     0-15


[VPS] $ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    1
Core(s) per socket:    1
Socket(s):             4
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 63
Stepping:              2
**CPU MHz:               2499.992**
BogoMIPS:              4999.98
Hypervisor vendor:     KVM
Virtualization type:   full
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              30720K
NUMA node0 CPU(s):     0-3

32
Bởi vì bộ xử lý tám năm làm ít hơn nhiều trên mỗi chu kỳ đồng hồ so với bộ xử lý hiện tại.
Michael Hampton

3
Bạn sẽ muốn đặt lại cài đặt BIOS của mình về mặc định. Những máy chủ này có vẻ như có cấu hình không tối ưu. Xem chỉnh sửa của tôi dưới đây.
ewwhite

Bạn nên thử chỉ chạy 1 luồng trên mỗi lõi. Nếu lõi chậm, tải cao có thể có nghĩa là CPU đang dành nhiều thời gian để chuyển đổi các tác vụ và đang hoàn thành ít hơn.
Nemo

Bạn có thể tìm kiếm trên Internet các "điểm chuẩn CPU" để tìm các so sánh hiệu suất. Tài nguyên yêu thích của tôi là CPUBenchmark.net .

6
Hãy nhìn vào sự khác biệt kích thước bộ đệm là tốt. Bộ nhớ cache có thể là khủng khiếp.
acelent

Câu trả lời:


44

Những tiến bộ của bộ xử lý, tốc độ xung nhịp và tính toán IPC có thể khiến bạn gần như không thể cố gắng so sánh hợp lý các CPU cũ hàng thập kỷ với các CPU hiện đại. Không chỉ các hướng dẫn trên mỗi chu kỳ sẽ thay đổi, mà các bộ xử lý mới hơn cũng có các bộ hướng dẫn dành riêng cho các phép tính phức tạp (Intel đã thêm AES-NI làm ví dụ), tốc độ xung nhịp không còn là một bộ so sánh hợp lý, do các yếu tố này (tôi đã đề cập đa lõi so với siêu phân luồng ...). Với đủ thời gian và sự kiên nhẫn, bạn chắc chắn có thể tìm ra có bao nhiêu procs cũ bằng 1 Proc mới hơn nhưng cuối cùng các tính toán sẽ nói rằng nó rẻ hơn và nhanh hơn để mua CPU mới.


2
Có một loạt các trang web ngoài đó đã làm điều này, bằng cách so sánh điểm chuẩn CPU của từng bộ xử lý.
Michael Hampton

4
Không chính xác nhưng đây là điểm chuẩn Passmark cho Intel Xeon E5-2680 @ 2.70GHz so với Intel Xeon X7350 @ 2.93GHz
chue x

Vấn đề với điểm chuẩn là do bản chất của nó, nó không được tối ưu hóa cho bộ xử lý cụ thể đó. Nó không tệ cho một ước tính sơ bộ, nhưng bạn sẽ phải viết lại và biên dịch lại với tập lệnh tốt nhất cho mỗi. rất ít công cụ được viết với bất cứ thứ gì ngoài "x" có thể tính được bao nhiêu lần
Jim B

1
@JimB, vâng, nhưng mô phỏng OP cũng có thể không được tối ưu hóa cho một CPU cụ thể. (nếu có, tôi đã bỏ lỡ nó, xin lỗi)
David Balažic

1
Có lẽ là không, trong trường hợp mô phỏng thực tế là điểm chuẩn trừ khi chương trình IS được biên dịch lại. Một điểm chuẩn của bên thứ ba sẽ, ít chính xác hơn.
Jim B

32

Tôi không muốn âm thanh khủng khiếp bằng cách nhấn mạnh cái gì đó nên được rõ ràng ở đây, nhưng bạn đang so sánh một bộ vi xử lý máy chủ cao cấp từ năm 2014 với một bộ xử lý máy chủ cao cấp từ năm 2007 .

Tôi không nghĩ rằng điều này đòi hỏi nhiều lời giải thích hơn.

Có một lý do HP ProLiant DL580 G5 có sẵn rất rẻ ngày nay . Chúng lớn, chậm và thiếu nhiều tính năng đáng mong muốn trong các máy chủ hiện đại hơn. Tôi đã bán cái cuối cùng của tôi trong năm 2009 . Đó là một giao dịch mua không tốt và bạn sẽ được phục vụ tốt hơn với CPU từ các họ CPU Nehalem hoặc West 4.0.3, nếu bạn buộc phải mua thiết bị đã qua sử dụng.

Ngoài ra, các máy chủ bạn mua rất kém hiệu quả về mặt tiêu thụ điện năng, vì vậy chúng sẽ tốn kém khi vận hành.


Dường như các máy chủ vật lý của bạn đang chạy ở chế độ tiết kiệm năng lượng giúp giảm tốc độ xung nhịp CPU của bạn. Bạn sẽ muốn vào BIOS (nhấn F9 khi khởi động) và đặt lại máy chủ về mặc định của nhà máy ( ai biết những gì khác đã được sửa đổi từ mặc định? )

nhập mô tả hình ảnh ở đây


7
@GlaucoCattaliniLins số
ewwhite

1
Bạn có thể giải thích về điều đó? Tôi đang gặp khó khăn trong việc tiêu hóa nó. Tôi có tùy chọn để thay đổi cho các mô hình khác, vì vậy tôi muốn làm cho đúng nếu nói đến đó. - Ban đầu tôi nghĩ nó có thể là kích thước bộ đệm của E5 (30MB), nhưng sau đó nó sẽ được chia sẻ giữa các VPS khác.
Glauco Cattalini Lins

11
@GlaucoCattaliniLins X7350 dựa trên kiến ​​trúc vi mô Core 2. Trên thực tế, nó có thể so sánh với Core 2 Quad (Đã bao lâu rồi kể từ lần cuối bạn nghe về chúng?). Nó quá cũ đến nỗi nó không hỗ trợ các hướng dẫn SSE4 +, AVX (2), FMA hoặc AES, vì vậy nếu mô phỏng của bạn là số, chúng sẽ bị phạt> 2 lần và tốc độ mã hóa AES còn bị ảnh hưởng nhiều hơn. Cuối cùng, Intel đã phát hành 6 cải tiến vi kiến ​​trúc kể từ Core 2 và với mỗi cải tiến, khả năng của CPU sẽ chạy nhiều lệnh hơn song song hoặc không theo thứ tự, băng thông bộ nhớ.
Idillotexist Idillotexist

10
@GlaucoCattaliniLins Ngược lại, máy chủ VPS của bạn hỗ trợ FMA, do đó, nó ít nhất là mới như kiến ​​trúc vi mô Haswell. Lệnh FMA cho phép một người thực hiện phép nhân và cộng hai trong một, và mọi thứ trong Haswell (bộ giải mã lệnh, sắp xếp lại bộ đệm, bộ dự báo nhánh, băng thông bộ nhớ, ALU) đã được điều chỉnh để có thể giữ FMA vector kép . Do đó Haswell có thể duy trì, trong một chu kỳ đồng hồ duy nhất: 1) Hai hoạt động vectơ 8 phần tử có dạng float d = a + b*c, 2) Hai tải 32 byte ( ab) và 3) một lưu trữ 32 byte (the d). Nó được điều chỉnh tốt đáng kinh ngạc.
Idillotexist Idillotexist

2
@IwillnotexistIdonotexist: anh ấy gần như chắc chắn không biên dịch riêng cho từng máy -march=native, vì vậy tôi đoán mã của anh ấy chỉ sử dụng SSE2 trên cả hai hệ thống. Tôi đoán băng thông bộ nhớ có lẽ là một nút cổ chai, đặc biệt. nếu hạt nhân của anh ta không có hỗ trợ NUMA hoặc các mẫu phân bổ sim của anh ta không thân thiện với NUMA. Đây là những gì, lõi tứ ổ cắm, với bộ điều khiển bộ nhớ kênh kép trên mỗi ổ cắm?
Peter Cordes
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.