有幸可以跟閱讀我文章的人交流,真的很榮幸,一起討論可以共同成長
這裡要來比較 Caddy2 和 Nginx 在性能上面的差異,做一下簡單的測試
版本
- System
- Ubuntu: 20.04 LTS Server
- CPU: 2 Core
- RAM: 2 GB
- Ubuntu: 20.04 LTS Server
- Web Server
- Caddy: v2.0.0
- Nginx: v1.17.10
- Web
- Wordpress: v5.3.4
- Stress Tool
- Siege: v4.0.4
配置
Caddy2 做了基本的設定,而 Nginx 則是不去變動安裝好就存在的設定,單純只加上 fastcgi 以及添加 index.php
讓兩者使其可以讀取 wordpress 的首頁
- Caddy2
|
|
- Nginx
|
|
測試
使用 siege
進行一個簡單的測試,環境也沒有特別調整
畢竟不是針對業務環境,而是針對工具性能的比較
S1
|
|
- 時間: 5 min
- 並發連接數: 50
S2
|
|
- 時間: 5 min
- 並發連接數: 100
Measurement | caddy2-S1 | nginx-S1 | caddy2-S2 | nginx-S2 |
---|---|---|---|---|
Transactions | 149190 hits | 183468 hits | 148142 hits | 183768 hits |
Availability | 100.00 % | 100.00 % | 100.00 % | 100.00 % |
Elapsed time | 299.96 secs | 299.53 secs | 299.27 secs | 299.67 secs |
Data transferred | 1157.10 MB | 5768.63 MB | 1148.95 MB | 5778.06 MB |
Response time | 0.10 secs | 0.08 secs | 0.20 secs | 0.16 secs |
Transaction rate | 497.37 trans/sec | 612.52 trans/sec | 495.01 trans/sec | 613.23 trans/sec |
Throughput | 3.86 MB/sec | 19.26 MB/sec | 3.84 MB/sec | 19.28 MB/sec |
Concurrency | 49.93 | 49.94 | 99.78 | 99.81 |
Successful transactions | 149190 | 183468 | 148142 | 193768 |
Failed transactions | 0 | 0 | 0 | 0 |
Longest transaction | 0.68 | 0.73 | 2.35 | 1.11 |
Shortest transaction | 0.00 | 0.00 | 0.00 | 0.00 |
效能監控
最近剛好架好 Grafana 監視儀表板,既然測試那順便監控一下測試時的效能變化
- Caddy2-S1
CPU運行滿載,記憶體維持在 730M 左右
- Nginx-S1
CPU運行滿載,記憶體維持在 680M 左右
- Caddy2 -S2
CPU運行滿載,記憶體維持在 740M 左右
- Nginx -S2
CPU運行滿載,記憶體維持在 690M 左右
結論
基本上 Caddy2 的測試結果都是低於 Nginx,不過這不會導致我不去使用 Caddy2
個人還是對 Caddy 的設定簡潔和簡便性感興趣,不過若真的有一定硬體效能的情況,還是會視場景和需求
至於 Caddy2 是否有更好的設置方法,可能需要進一步研究
之後可能還需要要對 Caddy2 的更新版本在進行補測,Caddy2 才剛釋出可能會有很多部分進行優化