我的 M1 14 寸的 Web 服务 QPS 很低,是我的环境有问题吗?

讨论 未结 6 36
jorneyr
jorneyr 会员 2022年12月13日 09:44 发表
<p>同一个代码,测试结果: </p> <ul> <li>M1 的 Web 服务压测 QPS 大概只有 2000 左右 (M1 14 寸: 系统 Ventura ,16G 内存)</li> <li>虚拟机里 QPS 轻松上 10000 (CentOS 7, 8G 内存,Intel(R) Xeon(R) CPU E5-2678 v3 @ 2.50GHz)</li> <li>记得 2019 年的时候使用 2014 MacBook Pro 15 寸的压测,也是 ping-pong 这样的简单请求,SpringMVC 代码,QPS 能上 8000 (CPU 好像是 Intel 双核 2.7G ,系统好像是 macOS 9 ,8G 内存)</li> </ul> <p>测试程序: 用 go gin 写了个最简单的 Web 服务</p> <pre><code class="language-go">router.GET("/api/test", func(c *gin.Context) { c.IndentedJSON(200, gin.H{ "name": "alice", }) }) </code></pre> <p>M1 Mac 本机压测过程:</p> <ol> <li>命令行启动: <code>nohup ./main &gt; /dev/null 2&gt;&amp;1 &amp;</code></li> <li>压测命令: <code>ab -c 20 -n 10000 http://localhost:8080/api/tes</code></li> </ol> <p>虚拟机 Linux 本机压测过程:</p> <ol> <li>Mac 上交叉编译为 Linux 可执行程序: <code>CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go</code></li> <li>命令行启动: <code>nohup ./main &gt; /dev/null 2&gt;&amp;1 &amp;</code></li> <li>压测命令: <code>ab -c 20 -n 10000 http://localhost:8080/api/tes</code></li> </ol> <p>上面同样的程序,使用 SpringBoot 写了一个进行压测,在 M1 Mac 上的 QPS 和 Go 程序的结果几乎一样,CPU 使用情况也差不多。</p>
收藏(0)  分享
相关标签: 灌水交流
注意:本文归作者所有,未经作者允许,不得转载
6个回复
  • jorneyr
    2022年12月13日 10:14
    压测命令是 ab -c 20 -n 10000 http://localhost:8080/api/test ,上面输入的时候少一个 t 。
    0 0
  • jorneyr
    2022年12月13日 10:14
    没改,使用了安装系统后默认的。
    0 0
  • jorneyr
    2022年12月13日 10:14
    1. 修改 ulimit -n 5000 (在新的 tab 里看还是 256) 2. 启动 go 程序 5. 打开新 tab ,也执行 ulimit -n 5000 ,然后压测 QPS 还是 2000 左右。
    0 0
  • jorneyr
    2022年12月13日 10:14
    Linux 上 ulimit -n 结果上 1024
    0 0
  • Fri
    2022年12月13日 10:14
    JDK 是适配 Apple Silicon 的吗?
    0 0