WordPress的訪客承載量有多大?

想請問一下WordPress的承載力如何?

我的配置是:1G單核CPU,1G內存,帶寬100m(max≈12mb/s),Ubuntu17.04,Nginx+php-fpm,MySQL,WordPress 4.8.2(前天剛更新的)。

事情是這樣的:昨天傍晚七點的時候瞬時訪問量激增,峰值估計是同時在線100人左右,然後伺服器突然無法連接(估計是死機了,https與ssh都連不上),之後十分鐘仍未恢復遂強行重啟,啟動後MySQL出現故障,目前仍未排除問題。(高峰時故障對我也造成了很大的流量損失)

這是建站後我第一次面對這麼高的訪問量(單日一萬以上PV),目前仍未查明伺服器炸鍋的原因,會是因為承載力(不知道專業名詞是這個嗎)不夠嗎?

一般WordPress的瞬時承載量如何,我的配置能有一個粗略的估算嗎?僅僅作為一個個人博客,我是否有必要擴容?

新人真心求教,謝謝各位大佬。


SiteGround 是國外一家這類指標控制得比較嚴格的主機商,我覺得有參考意義,所以拿來舉個例子。

它的最低配內存分配768M,虛擬主機,官方給出的參考,可支撐的訪問量是10000PV每個月,一般認為這是指對資料庫有調用的動態請求數,因為資料庫操作是網站後台最耗主機資源的(打開關閉連接等等),這個數值關聯著你的虛擬主機在物理伺服器上所允許使用的資源量,CPU,IO等等。

SiteGround Startup Plan

我有一個網站(企業信息站)用的這個plan,每個月的PV目前在30000上下,這裡包含了所有到頁面的HTTP請求。如果單看數字,貌似遠遠超過主機處理能力了。其實不然,客服跟我說我網站的動態請求每個月在600上下,還只有伺服器處理能力的一個零頭。

按著這個比例,可以簡單推算,一個768M的SSD虛擬主機,跑PHP7,網站做好優化(比如WP Super Cache)的基礎上,理論上每個月可以支撐約 (10000 / 600) * 30000 = 480000 即約合每天 16000 PV (一般請求),數字看起來有點嚇人(單台伺服器,無橫向擴展,內存沒過G,有效虛擬內存為4G,但應該沒用到),因為絕大部分請求都走了緩存了。

自然主機商做了其他系統優化,但這個數據應該足以說明問題了,軟硬體處理好了,現在的計算真的很便宜。處理不好,你的wordpress網站可能挺不過一個小峰值。

說Wordpress慢的小朋友們,有何感想?是你主機商沒選好,還是自己沒優化好?


說回你的情況:

我的配置是:1G單核CPU,1G內存,帶寬100m(max≈12mb/s),Ubuntu17.04,Nginx+php-fpm,MySQL,WordPress 4.8.2(前天剛更新的)。

事情是這樣的:昨天傍晚七點的時候瞬時訪問量激增,峰值估計是同時在線100人左右,然後伺服器突然無法連接(估計是死機了,https與ssh都連不上),之後十分鐘仍未恢復遂強行重啟,啟動後MySQL出現故障,目前仍未排除問題。(高峰時故障對我也造成了很大的流量損失)

這是建站後我第一次面對這麼高的訪問量(單日一萬以上PV),目前仍未查明伺服器炸鍋的原因,會是因為承載力(不知道專業名詞是這個嗎)不夠嗎?

一般WordPress的瞬時承載量如何,我的配置能有一個粗略的估算嗎?僅僅作為一個個人博客,我是否有必要擴容?

個人博客和企業信息站性能要求上沒有本質區別,首先要排除這是不是個安全問題(而非性能問題),是不是有什麼請求在往你的資料庫灌東西(調整你的php配置,限制post max size,limit 馬max memory size),裝好 WordPress Security Plugin | Wordfence 這樣的插件,可以幫你過濾掉這類攻擊。裝好 Blackhole for Bad Bots 可以幫你屏蔽掉惡意蜘蛛,然後再來看訪問數據。

不管是不是DDos,都預防著:DDos Mitigation - Using NGINX to Prevent DDoS Attacks | NGINX,WP fail2ban這些配置通常託管主機上要做的,但非全托主機不會,很多時候就給你個裸機,自己折騰容易忽略。聯繫下主機上,看看他們有沒有自動的腳本給你用。

如果是正常峰值,好好看你的緩存插件配置,一個博客,沒有理由讓大部分請求走資料庫。如果你用的VPS,好好讀讀配置文檔,或給主機商去封郵件,減少自己折騰,問問可否做一次系統檢測重要的如硬碟,如果那裡有問題,資料庫就很危險。

最後很重要的,用備份插件做好自動備份,以防萬一。


是不是PHP-FPM工作進程數 pm.max_children 開太多了,導致系統內存不足,然後http和ssh服務都被Linux被kill關閉了.

還有,意外關機很有可能導致資料庫損壞,這個應該是常識.MySQL引擎建議使用InnoDB,崩潰恢復要比MyISAM健壯.

1個核心1G內存這種低配VPS就不要開那麼多PHP-FPM工作進程了,開4個就差不多了:

pm = static
pm.max_children = 4

WordPress基本都是短連接,開太多進程反而沒用,佔用內存增加上下文切換反而降低性能,畢竟CPU核心數就1個.

另外,上PHP7,把opcache打開,能明顯提升WordPress性能.我在本機(Ubuntu i5-3230M)測試,PHP7+opcache跑WordPress首頁,一個請求耗時30ms左右,已經不算慢了.

對於那些存在明顯IO阻塞的操作,就不要在PHP-FPM里跑了,建議基於PHP的Swoole引擎來寫.


看了你的網站,主要是靜態資源在國外導致的,和Wordpress無關。可以將靜態資源走cdn,你是學生,買阿里雲的學生優惠那種幾塊錢一年就行了,然後cdn也基本免費範圍內,然後就是資源的壓縮。前提是備案,否則只能買香港的了。


這個真的沒法簡短的說清楚。取決於伺服器的配置、伺服器帶寬、系統配置、網站是否做了靜態化、網站的代碼是否做了查詢優化,以及以上工作做到了什麼程度。。。

我見過某號稱專業的WordPress開發建站公司做出來的東西,一個只有展示功能的網站,每天只有幾十個人訪問,伺服器已經用了4G內存5M以上帶寬的,網站首頁打開要30秒,後台則每次打開都要卡更長時間。

但是我自己做的項目,有幾個每天是幾萬人的訪問,伺服器也只是普通的阿里雲雙核4G,1M帶寬,並且同一台伺服器還放了10個左右的訪問量不大的網站,照樣跑得十分順溜。

以上是在我的經驗範圍內能給你的數字參考,沒辦法我的客戶都是創業公司,做到每天幾萬訪問量的都不算多,而且一旦有更高流量了,他們多半已經能變現或者盈利了,就可以開始考慮自己再研發一套系統(雖然我對能否勝過WP表示高度懷疑)。

當然即便是這樣每天幾萬pv的項目(對我們這種小公司來講已經算重要項目了),可能也不是你要問的,如果你只是要問個極限,或者是想試探出wp的並發極限,那我只能回答你,租一台N核NGb內存的伺服器、給100M+的帶寬,伺服器按照我的思路優化好。。。那幾十萬承載應該不是問題,如果你要問幾百,幾千萬,那多做幾個負載均衡,照樣能跑起來,反正雲服務都是彈性的,不夠就加,或者在伺服器端再換更牛逼的解決方案,都能把WP給跑好了。

所以你問的問題可能就不是WordPress的承載量了,我的答案只能是,伺服器有多牛,WP就能有多少承載量


這跟後台開發的工資正相關


手機答題,簡單回答一下

因為沒看到你的網站,所以只能猜一下

我vps配置比你略高一些,系統centos6。但是我承載能力比你強的多。可能的原因有:

一.我優化了一下mysql,主要就是換了一下引擎

二.我啟用了cdn

三.我用了全站純靜態插件(國人開發的,名字記不清了)

四.我的php服務每天重啟一次(php5.6長時間運行吃內存很嚴重)

你可以參照我的這個套路試一下,應該能明顯提高高峰時期承載能力


如果你把 PHP 和 MySQL 放同一台 1G 機器上然後還都是默認配置的話 100 在線炸內存是必然的……


面對這種問題,不要一來就就懷疑是WordPress。

題主說的峰值100來人,你是怎麼知道的?

根據我的推斷,題主應該遇到的是DDOS攻擊了..

判斷方法,你可以看看access.log,如果有在線人數統計的那些就更好了,直接看看在線的數據就知道真實訪客有多少了。

什麼靜態資源CDN都是瞎扯吧,那些直接Nginx處理了,速度很快,一般瓶頸是帶寬,而且瀏覽器會緩存靜態資源的,CDN的確可以加快頁面瀏覽的速度,但是不至於100M帶寬的機連SSH都上不去。

什麼swoole開發,題主用的是WordPress只是純粹的博客。

另外真心建議題主用PHP7,PHP7能根據WordPress優化編譯效率提升很多。


覺得你的優化有問題!

用wp應該是內容為主的!

少量交互~

在線100多人

可能也就每年10個人訪問!

建議檢查一下配置!是不是內存不夠了!

php和MYSQl分配合理內存!

保證20左右的空閑!

php加緩存~ MYSQL加緩存!

應該可以應對1000在線!


從別人回答進來的,帶寬不存在無上限一說,建議題主諮詢idc客服查明一下,一般打出這種宣傳的都是共享帶寬,水分太多,自己當個人站長的時候吃過類似的虧。

要知道,現如今國內獨享帶寬是很貴的,具體價格以阿里雲做參考,幾乎加1m每個月的費用就多出百來塊錢,所以選對機器配置很重要。

個人博客我認為前期不會需要太大的帶寬,其實我用wp也沒幾次,給人一種有些臃腫的感覺?不排除是某些谷歌的服務在國內伺服器被牆了,題主要是共享帶寬也別太糾結,湊合著用,誰不是這麼過來的,網站前期做好內容和SEO才是王道。

先寫這些,十分歡迎新人站長的加入。


謝邀。。網站能承受多少人的同時訪問,也沒人能說得清楚。靜態肯定比動態的承載人數更多,文字站肯定比圖片站佔用資源少。

其次,樓主用的是vps或者是雲主機,帶寬是不可能沒有限制的,並且很大可能帶寬只有1-2M。那麼據我多年IDC經驗,推測很有可能是並發數(同時訪問人數)過高,伺服器資源不夠導致伺服器無法遠程。並發數的承載能力主要看你伺服器資源的大小(包括cpu、內存、帶寬等)。

然後判斷伺服器是否遭受攻擊。對於cc攻擊來說,就是攻擊者藉助代理伺服器生成指向受害主機的合法請求。也就是模仿用戶來訪問你的網站,訪問量大的話就會導致伺服器資源耗盡,正常用戶無法訪問你的網站。

如果這只是一個突發情況,沒必要升級伺服器,樓主還需要後期觀察下具體是什麼原因。當然具體還要根據自己資金了,賺的錢夠了就升級唄。如果獲得的利潤不夠,訪問人數再多也升級不起啊。。土豪隨意


你可以用ab壓力測試下,我目前的站,在4點左右要抓幾千數據,然後再進行幾十萬的數據分析,也沒炸機,所以內存夠盡量開足phpfpm線程,linux的內存機制是盡量用光。

當然你的伺服器硬體也是個問題


伺服器配置跟不上就是用原生php開發的博客也得掛啊,建議先升級一下伺服器配置.後續優化的話可以考慮上memcache緩存,SuperCache插件啥的都上了,不差錢CDN加速也上了.這些操作之後網站基本上就能秒開了,能抗住多少訪問量這個不好說,其實很多時候網站訪問慢,時不時的會掛根本不是WordPress的鍋,最好的辦法就是根據網站的實際情況來進行相應的調整.


純靜態插件叫:cos-html-cache ,作者是我表弟


WordPress 本身會有一些國外HTTP請求的,如果你用了國外的主題的話,更是會有很多類似的國外的HTTP請求的,這就是造成主機負載有時候會很高的主要原因。

你要做的是找出這些國外地址的HTTP請求,盡量的替換為國內或則本地的。然後, WordPress 上需要安裝緩存插件, WP Super Cache 、 W3 Total Cache 、 WP-Rocket 等等都可以的,任選其一吧。

CDN 也是一個好辦法。


個人覺得先加個靜態化緩存試試,wp super cache或者super static cache先試試,並發100問題不大


老早就有人說 WordPress 性能不行,各種唱衰,但是這麼多年,WordPress 依然一家獨大。事實也證明,WordPress 性能是絕對沒有問題的,關鍵在於優化,其實無非幾點:

1、WordPress 自己很多細節是需要優化的,譬如每次訪問都會運行一次的 WP-Cron,還有各種不適合中國特色的東西(Emoj 表情)等等,自己按照需求琢磨、找解決方案。

主機選擇的時候,一個高性能的 SSD 硬碟也很重要!!!

2、其次建議把資料庫丟出去,國內的雲服務商也都配有自己的專門的資料庫服務。

3、動靜分離:圖片、CSS、JS 這些文件都交給 CDN 來處理好了,比較推薦的是 @七牛雲 ,我們這麼多年一直都是用它。

4、緩存:其實 WP Super Cache 是他們自家開發的,功能雖然不多,但是效能好,複雜一點的推薦 W3TC。開啟靜態化緩存,加上 Memcached 或者 Redis 一般就足夠了,實在巨型的訪問量,那就考慮 Varnish 之類吧。

其實 Memcached 和 Redis 很多雲主機也有專門的服務,但是費用較高,而且量不大其實性能還遠不如本地,本地想要快的思路還是儘可能把緩存放到內存里來處理。

5、如此處理之後,100M的帶寬絕對浪費,因為圖片等靜態已經交給 CDN,自己服務發送的數據其實很少。實在還覺得慢,那就嘗試再套一層 CDN,並且啟用均衡負載、彈性伸縮應對高峰吧。

只能提供大致的思路,具體還要自己慢慢琢磨,其實 WordPress 環境已經這麼成熟,都不難的。


wordpress每次請求都要去查一下db,這樣手動不停刷瀏覽器都能刷爆你的服務的;

緩存,

靜態化,

cdn,

放棄wp;

1G單核500qps沒什麼壓力的←_←


帶寬成本很高的

1.託管靜態文件到對象雲存儲上,七牛阿里雲騰訊雲又拍雲的都行,印象中除了阿里雲都有免費使用的量,而且WordPress都有對應的插件。

2.使用wp super cache靜態緩存插件,雖然不能做到完全的nosql也會有很大改觀


純靜態化後(在開發這個工具 嘿嘿)

就沒上限了 最多慢點 百毒不侵


推薦閱讀:

Nginx為啥使用ET模式Epoll?
如何搭建編程伺服器?
怎樣用Node.js快速搭建伺服器?
如何把智能機改裝成web伺服器?
請問用tcp協議實現sever push技術的思路?

TAG:PHP | MySQL | 伺服器 | WordPress | Nginx |