Apache-2.4
我的伺服器可以容納多少使用者?
有人告訴我切換到 nginx 或至少切換到 mpm_worker。但實際上,即使使用 mpm_prefork,我如何估計我的伺服器是否真的超載?
我的系統是:
- GCP 1 CPU + 3,75GB
- Debian 8
- 帶有 mpm_prefork 的 Apache 2.4
- 清漆記憶體,Memcache
一些 php.ini 設置
max_execution_time = 30 max_input_time = 60 memory_limit = 1536M
其他一些不同的標準 apache 模組,沒有 fastcgi 和 php-fpm。
<IfModule mpm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxRequestWorkers 250 MaxConnectionsPerChild 0 </IfModule> KeepAlive Off
我有大約 20 個小型 wordpress 部落格。
那麼,我可以在所有站點上同時擁有多少並髮使用者?我不需要確切的數字。我想了解它是 10s 100s 還是 1000s?應該不是10000。但如果它是像 250 一樣同時線上 - 我認為它現在仍然很好。
另外,我應該將記憶體限制設置為 3GB 嗎?或者讓清漆使用剩下的 2GB 是個好主意?
Completed 1000 requests Finished 1000 requests Server Software: Apache/2.4.10 Server Hostname: sochi.asp.sale Server Port: 443 SSL/TLS Protocol: TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,2048,256 Document Path: / Document Length: 199165 bytes Concurrency Level: 100 Time taken for tests: 12.041 seconds Complete requests: 1000 Failed requests: 0 Total transferred: 199546499 bytes HTML transferred: 199165000 bytes Requests per second: 83.05 [#/sec] (mean) Time per request: 1204.067 [ms] (mean) Time per request: 12.041 [ms] (mean, across all concurrent requests) Transfer rate: 16184.28 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 12 711 1471.9 307 6868 Processing: 23 492 960.2 253 7588 Waiting: 2 302 957.0 76 7043 Total: 35 1203 2005.6 524 7629 Percentage of the requests served within a certain time (ms) 50% 524 66% 534 75% 608 80% 644 90% 7164 95% 7186 98% 7188 99% 7189 100% 7629 (longest request)
猜測一下,在它開始減速之前可能不到100。作為參考,我本週對客戶伺服器進行了負載測試。規格是: 4core 4GB RAM 2 core litespeed with lsapi handler PHP 7 MariaDB 10 而且只是一個編碼非常好的網站。
在最慢的頁面上可能需要 300 個並發連接,然後才開始載入速度低於每頁 4 秒。
當沒有負載時,它得到〜50ms TTFB
話雖如此,我對 Nginx+varnish 可以處理什麼並不太熟悉,所以你可能會得到類似的結果。但是,我建議添加額外的核心,並降低 PHP 記憶體限制。如果一個簡單的 wordpress 部落格需要超過 256M,那就有問題了。
最簡單的找出方法是自己進行負載測試-> https://httpd.apache.org/docs/2.4/programs/ab.html