Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 为什么在redis基准测试中2700x比i7-6700慢?_Performance_Redis_Benchmarking_Cpu Architecture_Amd Processor - Fatal编程技术网

Performance 为什么在redis基准测试中2700x比i7-6700慢?

Performance 为什么在redis基准测试中2700x比i7-6700慢?,performance,redis,benchmarking,cpu-architecture,amd-processor,Performance,Redis,Benchmarking,Cpu Architecture,Amd Processor,我不明白为什么在redis基准测试中2700x比i7-6700慢 我还应该补充什么 下面是我的测试 第一系统 操作系统:CentOS Linux 7.6.1810版(核心版) Linux localhost.localdomain 5.2.8-1.el7.elrepo.x86_64#1 SMP Fri Aug 9 13:40:33美国东部夏令时2019年x86_64 x86_64 GNU/Linux CPU:AMD Ryzen 7 2700X八核处理器(pinnacle ridge 2700X

我不明白为什么在redis基准测试中2700x比i7-6700慢

我还应该补充什么

下面是我的测试

第一系统
  • 操作系统:CentOS Linux 7.6.1810版(核心版) Linux localhost.localdomain 5.2.8-1.el7.elrepo.x86_64#1 SMP Fri Aug 9 13:40:33美国东部夏令时2019年x86_64 x86_64 GNU/Linux

  • CPU:AMD Ryzen 7 2700X八核处理器(pinnacle ridge 2700X)

  • RAM:16GiB DIMM DDR4同步无缓冲(未注册)3000 MHz(0.3 ns)*2
第二系统
  • 操作系统:CentOS 6.7版(最终版) Linux dmlocalhost.localdoamin 2.6.32-573.22.1.el6.x86_64#1 SMP周三3月23日03:35:39 UTC 2016 x86_64 x86_64 GNU/Linux
  • CPU:Intel(R)Core(TM)i7-6700CPU@3.40GHz
  • RAM:16GiB DIMM同步2133 MHz(0.5 ns)

Redis是否可能对核心间延迟敏感?()Ryzen上CCX群集之间的通信速度明显慢于i7-6700(最大涡轮4GHz)的4个物理内核之间的通信速度,或者可能存在重要的软件配置差异,比如Spectre缓解在较新内核上减慢系统调用的速度?您的Ryzen从2019年开始运行内核,但您的Skylake在Spectre/Meldown被披露之前运行的是2016年的内核,因此它可能没有任何一种后端口缓解措施。很多简单的系统调用真的可以降低这么大的速度。我将“noibrs noibpb nopti nospectre\u v2 nospectre\u v1 l1tf=off nospec\u store\u bypass\u disable no\u stf\u barrier mds=off缓解=off”作为内核选项。然而,这并没有对性能产生太大的影响。是的,我发现即使在启动时禁用所有缓解措施,也会产生很大的开销。在引入缓解措施之前,不做任何事的系统调用的速度比内核慢3倍。代码经过了极大的重组,缓解措施只是“修补”——您无法恢复旧代码和优化。尽管如此,规模之大还是让我吃惊@彼得蒂斯在缓解措施相对较新的时候就开始使用内核了。也许情况有所改善。对于现实世界的应用程序,缓解措施的成本可能主要是用户代码中的连锁反应,例如重新加载TLB条目、分支丢失等,而我的基准测试可能没有捕捉到这一点。此外,一些缓解措施,如retpoline,散布在各地或依赖于编译器标志,我甚至不确定它们是否得到修补。可能Redis对内核间延迟很敏感?()Ryzen上CCX群集之间的通信速度明显慢于i7-6700(最大涡轮4GHz)的4个物理内核之间的通信速度,或者可能存在重要的软件配置差异,比如Spectre缓解在较新内核上减慢系统调用的速度?您的Ryzen从2019年开始运行内核,但您的Skylake在Spectre/Meldown被披露之前运行的是2016年的内核,因此它可能没有任何一种后端口缓解措施。很多简单的系统调用真的可以降低这么大的速度。我将“noibrs noibpb nopti nospectre\u v2 nospectre\u v1 l1tf=off nospec\u store\u bypass\u disable no\u stf\u barrier mds=off缓解=off”作为内核选项。然而,这并没有对性能产生太大的影响。是的,我发现即使在启动时禁用所有缓解措施,也会产生很大的开销。在引入缓解措施之前,不做任何事的系统调用的速度比内核慢3倍。代码经过了极大的重组,缓解措施只是“修补”——您无法恢复旧代码和优化。尽管如此,规模之大还是让我吃惊@彼得蒂斯在缓解措施相对较新的时候就开始使用内核了。也许情况有所改善。对于现实世界的应用程序,缓解措施的成本可能主要是用户代码中的连锁反应,例如重新加载TLB条目、分支丢失等,而我的基准测试可能没有捕捉到这一点。此外,一些缓解措施,如retpoline,散布在各地或依赖于编译器标志,我甚至不确定它们是否得到修补。
[root@localhost ~]# redis-cli --latency
min: 0, max: 1, avg: 0.21 (5042 samples)
[root@localhost ~]# redis-benchmark -h 127.0.0.1 -p 6379 -n 100000 -t set -q
SET: 110619.47 requests per second
[root@localhost ~]# redis-benchmark -h 127.0.0.1 -p 6379 -n 100000 -t get -q
GET: 138504.16 requests per second
[root@dmvault ~]# redis-cli --latency
min: 0, max: 1, avg: 0.11 (5038 samples)
[root@dmvault ~]# redis-benchmark -h 127.0.0.1 -p 6379 -n 100000 -t set -q
SET: 248138.95 requests per second
[root@dmvault ~]# redis-benchmark -h 127.0.0.1 -p 6379 -n 100000 -t get -q
GET: 244498.77 requests per second