プログラムの最適化は、ハードウェアと戦おうとするべきではありません。

one loop thread(単一ループスレッド)の実行時間がすでにマイクロ秒レベルで、サーバーを交換した結果、最大6万パケットまでバックログが積み重なるのをほぼゼロにすることができた。

シングルスレッドでのループ処理でデータを扱う場合、CPUの性能はクロック周波数、キャッシュサイズ、命令セットアーキテクチャなどの要因によって決まる。一般的に、クロック周波数が高く、キャッシュサイズが大きい、そして命令セットアーキテクチャが高度なCPUほど、シングルスレッドでデータを処理する際の性能が良い。

シングルスレッド

パフォーマンス向上のために、スレッドを追加することは必ずしも必要ではありません。プロジェクトのプロセスを整理し、時間がかかる箇所を特定し、シングルスレッドで要件を満たせるか検討します。シングルスレッドでは考慮すべき点が少なく、問題が発生する可能性も低くなります。

最初からスレッドについて言及するのは、多少不適切です

イベント

処理しているデータは市場データであり、遅延に敏感です。 一晩中ひたすら加班し、新しい最適化版をリリースし、ローカルでインターフェースを剥離してテストを行い、速度はそれなりに良かった(tps:4.2万)。 サーバーにデプロイしたところ、tpsが急降下し、2.1万になった。台式机に戻って試すと、tpsは7.9万だった。グループ内のサービス仮想マシンの問題があるのではないかと疑い始め、まずCPUのクロック周波数(主頻度)の違いを疑った。家庭用PCとサーバーのCPUでは、クロック周波数が最も異なる点だった。

テストサーバーA

processor	: 7
vendor_id	: GenuineIntel
cpu family	: 6
model		: 47
model name	: Intel(R) Xeon(R) CPU E7- 4807  @ 1.87GHz
stepping	: 2
microcode	: 0x34
cpu MHz		: 1866.733
cache size	: 18432 KB
physical id	: 1
siblings	: 4
core id		: 3
cpu cores	: 4
apicid		: 7
initial apicid	: 7
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc cpuid aperfmperf pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt aes hypervisor lahf_lm pti dtherm arat
bugs		: clflush_monitor cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
bogomips	: 3733.46
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

テストサーバーB

processor	: 7
vendor_id	: GenuineIntel
cpu family	: 6
model		: 63
model name	: Intel(R) Xeon(R) CPU E5-2640 v3 @ 2.60GHz
stepping	: 2
microcode	: 0x3c
cpu MHz		: 2599.998
cache size	: 20480 KB
physical id	: 14
siblings	: 1
core id		: 0
cpu cores	: 1
apicid		: 14
initial apicid	: 14
fpu		: yes
fpu_exception	: yes
cpuid level	: 15
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc cpuid aperfmperf pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm cpuid_fault epb pti fsgsbase smep xsaveopt cqm_llc cqm_occup_llc dtherm ida arat pln pts
bugs		: cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
bogomips	: 5199.99
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

OpenAIへの相談

まず、コア数とクロック周波数に関しては、Intel(R) Xeon(R) CPU E7-4807 @ 1.87GHzは6つの物理コアと12個の論理コアを持ち、クロック周波数は1.87GHzです。一方、Intel(R) Xeon(R) CPU E5-2640 v3 @ 2.60GHzは8つの物理コアと16個の論理コアを持ち、クロック周波数は2.60GHzです。したがって、コア数とクロック周波数という点では、E5-2640 v3がE7-4807よりもシングルスレッドでのデータ処理において有利であると考えられます。 次に、キャッシュサイズに関しては、E7-4807のキャッシュサイズは12MBであり、E5-2640 v3のキャッシュサイズは20MBです。したがって、E5-2640 v3はより大きなキャッシュスペースを持ち、データのアクセス速度とキャッシュヒット率を向上させることができます。 最後に、アーキテクチャに関しては、E5-2640 v3はより高度なHaswellアーキテクチャを採用しており、E7-4807は旧いNehalemアーキテクチャを採用しています。HaswellアーキテクチャはNehalemアーキテクチャと比較して性能が向上しているため、これもE5-2640 v3のシングルスレッドでのデータ処理時の性能向上に影響を与える可能性があります。 したがって、総合的に考えると、シングルスレッドでループ処理を行うシナリオでは、E5-2640 v3はE7-4807よりも優れたパフォーマンスを発揮すると考えられます。ただし、具体的なパフォーマンスの違いは、データ処理のアルゴリズム、メモリ帯域幅、システム負荷など、さまざまな要因によって影響を受けるため、個別の問題に対して具体的に分析する必要があります。

ハードウェア情報

https://www.cpubenchmark.net/compare/3786.2vs2365.2/%5BDual-CPU%5D-Intel-Xeon-E7–4807-vs-%5BDual-CPU%5D-Intel-Xeon-E5-2640-v3 | 価格 | オンライン検索 $78 - 購入 | |

ハードウェア仕様

仕様 Intel Xeon E7-4807 (LGA1567) Intel Xeon E5-2640 v3 (LGA2011-v3)

ハードウェア仕様

仕様 Xeon E7-4807 (LGA1567) Xeon E5-2640 v3 (LGA2011-v3)

ハードウェア仕様

仕様 Intel Xeon E7-4807 (LGA1567) Intel Xeon E5-2640 v3 (LGA2011-v3)

ハードウェア仕様

仕様 Intel Xeon E7-4807 (LGA1567) Intel Xeon E5-2640 v3 (LGA2011-v3)

ハードウェア仕様

仕様 Xeon E7-4807 (LGA1567) Xeon E5-2640 v3 (LGA2011-v3)

ハードウェア仕様

仕様 Intel Xeon E7-4807 (LGA1567) Intel Xeon E5-2640 v3 (LGA2011-v3)

ハードウェア仕様

仕様 Xeon E7-4807 (LGA1567) Xeon E5-2640 v3 (LGA2011-v3)

ハードウェア仕様

仕様 Intel Xeon E7-4807 (LGA1567) Intel Xeon E5-2640 v3 (LGA2011-v3)

ハードウェア仕様

仕様 Intel Xeon E7-4807 (LGA1567) Intel Xeon E5-2640 v3 (LGA2011-v3)

ハードウェア情報

仕様 Xeon E7-4807 (LGA1567) Xeon E5-2640 v3 (LGA2011-v3)
初登場 Q3 2020 Q3 2014

ハードウェア仕様

仕様 Intel Xeon E7-4807 (LGA1567) Intel Xeon E5-2640 v3 (LGA2011-v3)
サンプル数 1 46

ハードウェア仕様

仕様 Intel Xeon E7-4807 (LGA1567) Intel Xeon E5-2640 v3 (LGA2011-v3)

ハードウェア仕様

仕様 Xeon E7-4807 (LGA1567) Xeon E5-2640 v3 (LGA2011-v3)

ハードウェア仕様

仕様 Xeon E7-4807 (LGA1567) Xeon E5-2640 v3 (LGA2011-v3)
Licensed under CC BY-NC-SA 4.0
最終更新 2025年06月02日 20:54
金融ITプログラマーのいじくり回しと日常のつぶやき
Hugo で構築されています。
テーマ StackJimmy によって設計されています。