|
| 1 | +English | [中文](benchmark.zh_CN.md) |
| 2 | + |
| 3 | +# Benchmark |
| 4 | + |
| 5 | +## Environment |
| 6 | + |
| 7 | +* Tencent Cloud Standard SA2 CVM, equipped with an AMD EPYC™ Rome processor |
| 8 | + * uname -a |
| 9 | + * Linux VM-0-13-centos 3.10.0-1160.92.1.el7.x86_64 #1 SMP Tue Jun 20 11:48:01 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux |
| 10 | + * cat /proc/cpuinfo |
| 11 | + * Refer to the appendix (8 cores, 2.60GHz) |
| 12 | +* Memory: 16GB |
| 13 | +* Network environment: The average ping latency between the calling and called machines is around 0.2ms |
| 14 | +* Go version used during compilation: 1.21.2 |
| 15 | +* Server-side: Bound to 8 cores (taskset -c 0-7) |
| 16 | + * Logic: Using the trpc protocol to echo the string "hello" |
| 17 | + * Corresponding packet length for sending: 122 |
| 18 | + * Corresponding packet length for receiving: 27 |
| 19 | +* Client-side: Bound to 8 cores (taskset -c 0-7) |
| 20 | + * Using eab and a load testing script |
| 21 | + * The load testing feature of eab involves maintaining a fixed number of long connections to the server and concurrently sending and receiving packets on these connections |
| 22 | +* The built-in tnet is enabled by default |
| 23 | +* Number of pollers enabled for tnet: 4 |
| 24 | +* Client-side timeout: Set to 2 seconds by eab |
| 25 | +* Server-side timeout: Set to 1 second through framework configuration |
| 26 | + |
| 27 | +## Scenario |
| 28 | + |
| 29 | +Throughput Testing: When the P99 latency of the caller is around 10ms, measure the QPS (Queries Per Second) of the service. |
| 30 | + |
| 31 | + |
| 32 | +|Mode| Connections| QPS/w| Avery Latency/ms| P90 Latency/ms| P99 Latency/ms| P999 Latency/ms| |
| 33 | +|-|-|-|-|-|-|-| |
| 34 | +|Synchronous| 100| 486652| 2.67| 4.22 |10.24 |16.76| |
| 35 | +|Asynchronous| 100| 404355| 2.61| 4.33 |10.34 |16.07| |
| 36 | + |
| 37 | +## Appendix |
| 38 | + |
| 39 | +```shell |
| 40 | +vendor_id : AuthenticAMD |
| 41 | +cpu family : 23 |
| 42 | +model : 49 |
| 43 | +model name : AMD EPYC 7K62 48-Core Processor |
| 44 | +stepping : 0 |
| 45 | +microcode : 0x1000065 |
| 46 | +cpu MHz : 2595.124 |
| 47 | +cache size : 512 KB |
| 48 | +physical id : 0 |
| 49 | +siblings : 8 |
| 50 | +core id : 11 |
| 51 | +cpu cores : 8 |
| 52 | +apicid : 7 |
| 53 | +initial apicid : 7 |
| 54 | +fpu : yes |
| 55 | +fpu_exception : yes |
| 56 | +cpuid level : 13 |
| 57 | +wp : yes |
| 58 | +flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm art rep_good nopl extd_apicid eagerfpu pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext rsb_ctxsw ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 arat |
| 59 | +bogomips : 5190.24 |
| 60 | +TLB size : 1024 4K pages |
| 61 | +clflush size : 64 |
| 62 | +cache_alignment : 64 |
| 63 | +address sizes : 48 bits physical, 48 bits virtual |
| 64 | +power management: |
| 65 | +``` |
0 commit comments