iT邦幫忙

1

網站壓力測試

  • 分享至 

  • xImage

各位先進大家好:

小弟是在公司除了程式不寫以外,其他都要負責的 MIS,最近有人反映公司網站常常上不去或是很慢(後來證實不會但老闆不相信),程式設計人員強調他的程式沒問題(我們網站程式天天都在改,因為老闆一直在變),但是我去監看硬體效能,CPU 的附載最高了不起 18% (平時都保持在 1% ~ 3%), 記憶體則是保持在 40%~50%之間,因此我自己也不認為是硬體效能不夠的問題。

但為了要確認公司網站的耐受性,想找廠商來做較嚴密、確實、具公信力的壓力測試。想藉此得知網站瓶頸到底是在硬體、軟體、還是網路速度。不知道幫友是否有廠商相關資訊可以介紹一下呢?

小弟在此先謝過,感謝!

看更多先前的討論...收起先前的討論...
IO 速度呢,多少使用者,網路頻寬多大,每個連結單位時間傳輸多少資料量,這些要先搞清楚,假設IO速度只有 一百MB,每個連結要傳1MB,你網路是1GB ,大概單位時間內 幾十人速度就直接慢下來了,因為後面的要等前面寫完才行,請先查清楚再說吧
bluegrass iT邦高手 1 級 ‧ 2021-12-28 14:21:11 檢舉
FortiTester

https://www.fortinet.com/tw/products/network-testing/fortitester
misadm iT邦高手 10 級 ‧ 2021-12-28 14:27:44 檢舉
就是不知道才想找專業的廠商來測試。網路頻寬是 300M/100M,但 IO速度我不清楚;由於我們是購物網站 (封閉式,人數有限,目前最多 1 個月只有 4000人/次) 但我們想知道,若 5 分鐘內湧入 100 個人,網站撐得住還撐不住。又或者 1 小時內湧入 1000 人又是一個甚麼狀況?是改程式就可以加快運算,還是要更換更高效能的硬體。
misadm iT邦高手 10 級 ‧ 2021-12-28 14:36:20 檢舉
to bluegrass:
感謝回覆,想請教,網站壓力測試只需要測試 TCP 的連線數嗎?和程式本身設計得好不好沒有關係嗎?假設連線數可以撐個 2~300 個,但是程式要跑超久,導致 300 個連線需要 1 整天才跑得完??

因為不是很清楚,沒有壓力測試的經驗,還請您多多指教,謝謝!
harrytsai iT邦新手 1 級 ‧ 2021-12-28 14:54:47 檢舉
如果你們是apache跟mysql ,可以看一下TIME_WAIT的數量,另外抓一下TCP/IP封包,看一下到底連線到主機的用戶,在讀取那些程序,另外這是在公司內部的主機,還是承租的,很多環境都不一樣
bluegrass iT邦高手 1 級 ‧ 2021-12-28 14:55:39 檢舉
程式問題請找程式專家,
我給的是網路方面的SOLUTION.

你想排錯程式本身設計, 那你直接用TESTER在內部測試不就好?
如果是設計問題, 那理論上內部測試效果也會很差.

話說連線數可以撐個 2~300 個也太少了吧-.-

一般是試 TCP 80/443的連線數 , 如果你網給PING, 建議在FIREWALL限制SESSION
咖咖拉 iT邦好手 1 級 ‧ 2021-12-28 14:57:22 檢舉
網站是用甚麼寫的 是CSR SSR SSG的頁面還是?
聽你的需求似乎JMeter就能測出 不需要啥廠商
harrytsai iT邦新手 1 級 ‧ 2021-12-29 09:11:26 檢舉
這種問題我也遇過,最後我是去擷取網路封包,一條一條的把每一隻程式的讀取次數整個抓出來,但是最後程式設計師全部依照我所給資訊去修改了他們自己負責的程式,結果最後就是程式Team的主管被洗臉洗得很嚴重,最終就不讓我做下去了
misadm iT邦高手 10 級 ‧ 2021-12-29 09:13:22 檢舉
to bluegrass:
其實我沒想對程式除錯,因為那不是我的工作,我只想證明我的 Server、防火牆、網速... 等,應付目前每天 2 ~ 300 人是綽綽有餘的。

to 咖咖拉:
我有稍微去問過程式設計師,他反問我『那是甚麼?』

to 緯大啊緯大人:
感謝!但目前已經是人與人之間的爭執及不信任,說穿了就是我做的測試結果不會被採納,就算被採納也會被要求配合程式設計師,然後要我保證網站可以容納多少人而不會掛,就是我要負責整個網站的成敗。而且程式設計師說,1個人用網站程式沒出問題,2 個、3 個、幾百個也不可能會有問題,所以一定是硬體效能不足。

因為這樣,我想找廠商來測,至少我可以不用背黑鍋。
bluegrass iT邦高手 1 級 ‧ 2021-12-29 10:24:00 檢舉
既然是人的問題, 那要不要把那些有問題的人都干掉看看?
咖咖拉 iT邦好手 1 級 ‧ 2021-12-29 19:47:27 檢舉
CSR SSR SSG 就是
https://ithelp.ithome.com.tw/articles/10266781
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
6
海綿寶寶
iT邦大神 1 級 ‧ 2021-12-29 10:26:34
最佳解答

依據 Google 的結果和前面幾位的答案
我覺得
沒有台灣廠商有提供這樣的效能檢測/壓力測試的服務
資安檢測的倒是比較多

既然網站沒有效能問題
缺的只是「公正第三方」的背書
那我建議一個免費又最快速的做法
就是用 Google 的Pagespeed 測試
像這樣
https://ithelp.ithome.com.tw/upload/images/20211229/20001787g0lQZ0Ss2l.png
https://ithelp.ithome.com.tw/upload/images/20211229/200017871wCaan9yhL.png

如果貴公司網站的測試結果比上面好
就回報老板(上面的結果是 24h PCHome 購物網站)

如果貴公司網站的測試結果比上面差
就換另一家電商購物網站
直到找到比貴公司差的網站為止

公正第三方....
Google 的招牌應該夠亮吧
/images/emoticon/emoticon55.gif

misadm iT邦高手 10 級 ‧ 2021-12-29 11:05:03 檢舉

To 海綿大:
我認為您的回答實在太貼切了!感覺你好像很清楚我公司內部的狀況/images/emoticon/emoticon37.gif

正所謂:人在江湖飄,哪有不挨刀
/images/emoticon/emoticon01.gif
公司的領域或有不同,但職場中的待人處事是相同的

0
souda
iT邦好手 1 級 ‧ 2021-12-28 14:07:14

有自我壓力測試過? 含db?

misadm iT邦高手 10 級 ‧ 2021-12-28 14:31:16 檢舉

抱歉,沒有做過,程式設計師說不關他的事,但我看硬體效能也沒有甚麼耗損,程式怎麼讀取DB的我也不知道,所以真的很難自己測。

souda iT邦好手 1 級 ‧ 2021-12-29 07:45:04 檢舉

https://jmeter.apache.org/
https://loader.io/?ref=techmoon
應該是有很多免費的!您試試這兩款.

misadm iT邦高手 10 級 ‧ 2021-12-29 08:56:23 檢舉

感謝您提供的資訊!

這件事情基本上已經演變成『人』的事了,由於關係人之間無法互相信任,而我也不想背黑鍋,所以希望找第三人來做壓測,以絕悠悠之口。

1

首先,網站突然變慢的因素非常的多。
除了硬體問題之外。頻寬及線路也是考量的因素之一。
另外硬碟讀寫情況也得要注意。

變慢並不一定是程式或是程式機器的問題。
也有可能是因為資料庫讀取等待。

單看CPU及RAM的使用頻率來評估是最基本但不是絕對性的判斷。

正常來說,我會先看WEB SERVER的請求記錄。先確定看看是否有異常的流量或是請求發生。
再來去檢查資料庫的運行情況。是否曾經有大數據運行情況發生。

如果可以,最好是裝個效能評估的軟體來看看。

總之,直接跑壓力測試。來判斷耐受度,其實是很不智的行為。
無法找出真正的原因。且又很危險。

看更多先前的回應...收起先前的回應...
misadm iT邦高手 10 級 ‧ 2021-12-28 14:46:00 檢舉

抱歉,看到您指出『突然變慢...』才驚覺發問的不夠完整。

其實沒有突然變慢,後來有確認過沒有慢,但老闆堅持有人跟他說慢就是慢,於是老闆問程式設計師說:網站1個小時可以撐多少人,程式設計師說他只管寫程式,不可能會知道這種事... 就這樣,問題落到我身上來,所以我才想找廠商來做壓力測試。

唉~~~BOSS永遠不懂都是最大。你家工程師也算太址了。
程式的好壞也是最直覺影響到網站速度的。

好吧,這個鍋你算背定了。
建議你先做基本內測。
如果可以的話,因為不太確定你用的資料庫是啥。
但大多數來說因都都會有長請求記錄才對。

網站變慢除了線路問題,有很大的機會是資料庫請求異常。
要先了解網站變慢的原因及時間點才可以評估。

線路問題的評估點非常的多。如果你們不是外部機房而是內部自管主機的話。要先確定內部的線路問題。如果你們非企業專線而是單純的ADSL。
偶爾變慢是很正常的事。也不用測了。

壓力測試出來的數據,並不是絕對性的。
一般來說,會先自家檢測一下。自家檢測並不是在驗容許數。而是先評斷程式碼運行的情況。
在跑自家測試時。我會順便查看資料庫及機器的運行情況評估。

misadm iT邦高手 10 級 ‧ 2021-12-29 09:14:41 檢舉

正在努力想辦法甩鍋

其實我已經注意到,你用的是ADSL線路。
一般來說我會建議你,要求放到專業的機房上去。
除非你們是很專門的機房。
要不然就單純ADSL而言。有很多情況並不是你們這邊的問題。而是外部的問題居多。

0
咖咖拉
iT邦好手 1 級 ‧ 2021-12-28 15:00:17

使用者覺得慢 /images/emoticon/emoticon06.gif

特定時間慢 還是 特定頁面慢?

18
Ray
iT邦大神 1 級 ‧ 2021-12-28 15:25:23

網站壓測跟硬體元件的壓測有很大不同.....
網站牽涉到人的因素, 首先要定義清楚:
你要測甚麼數據? + 這些數據如何計算?

就拿常見的提問來說:

網站可以負荷多少人上線?

我可以把你的網站首頁蒙著頭打, 逐漸增加連線數, 在他開始無法回應 HTTP 200 的時候停下來, 然後告訴你在出現非 HTTP 200 的回應之前, 當下的連線數是多少 ---例如: NNNN.

然後你就可以拿 NNNN 這個數字說:
我的網站能負荷 NNNN 人上線嗎?

如果你覺得可以的話, 請試著回答下面的問題:

  1. 連線數 (Session Number) = 上線人數 (Viewer) 嗎? 1條連線=1個人?
  2. 上網站首頁後放著 60 分鐘不動 vs 上網站之後到處逛, 連線數相同嗎?
  3. 你的網站如何分辨: 來的都是同一個人? 還是同一個 IP 但好多不同人?
  4. 同一個人看 100 次 vs 20 個人看 5 次, 對你的網站是相同的壓力源嗎?
  5. 100 個人在6分鐘內瀏覽失敗率有 2% vs 200 個人在3分鐘內瀏覽失敗率 4%, 哪一個好?
  6. 100人/5分/2%失敗 若增加到 1000人/10分變成 5% 失敗, 這樣是比較好? 還是比較差?
  7. 瀏覽商品的時候失敗率 1% vs. 結帳的時候失敗率 1%, 哪一個比較嚴重?
  8. 首頁可以承受每分鐘1萬人瀏覽, 但商品頁只有每分鐘100人, 這樣是誰要負責改善?
  9. 200人看首頁0%錯誤率>要花10秒 vs. 若提速到5秒>則只有100人能0%錯誤率, 哪一個好?
  10. 有登入 vs 沒登入, 兩種狀態測出來可承受的數字相同嗎?
  11. 本地客戶看你的網站 vs. 跨洲客戶看你的網站, 他們對速度的感受相同嗎?

還有, 各家壓測軟體的方法論, 和名詞定義都不相同, 雖然同樣講都: 瀏覽人數, 但是認定 這樣叫做一個人 的方法卻也不相同; 你如果拿不同家軟體的報表來比較, 光看圖表上的數字, 結果會變成XX比雞腿, 搞得你一頭霧水....

所以先研究好你們認同哪一家壓測軟體的方法論和名詞定義? 別人用過的定義和方法論, 你們公司不見得可以認同; 全公司都認同之後(其實只有老闆需要)就不要隨便亂換亂測, 專心用一套把它測到完整就可以, 以後才能進行差異比較和優化....

這樣告訴老闆可能比較清楚:

一輛汽車, 可以用科學儀器輛測出:
平均油耗/高速油耗/排汙數量/馬力/扭力/尺寸....等, 硬體數據;

但如果你測完這輛車, 接著問:
他最多可以載多少人?

拿同一輛車去問十個人, 可能會有十一種不同的答案跑出來.....

(最近某賣場被法國總公司要求網站 TTFB 要降到 KPI 指定的值, 整個頭抱著燒...)

想想人家都測到這麼細了, 各位誰有量過自家 TTFB 的?....
(.....話說回來, 縮短 TTFB 時間, 又該是誰的責任?)

看更多先前的回應...收起先前的回應...

我有量過TTFB。
但看完只覺得很OOXX。

因為調完了SERVER的設定。也沒比較快。
最後是....某人用了timeout 100 跑資料。
拿掉就好了。

misadm iT邦高手 10 級 ‧ 2021-12-29 09:24:50 檢舉

To Ray大:
您說得太專業了,其實我只是想甩鍋,所以才想找第三人來進行壓測,這樣我才有機會甩鍋!

Ray iT邦大神 1 級 ‧ 2021-12-29 09:29:14 檢舉

委託第三方來實測, 在初期是個很好的方式, 至少可以避開自己部門之間互砍的事情.....

wajika iT邦新手 5 級 ‧ 2021-12-29 09:34:12 檢舉

怎么测试网站的TTFB?

Ray iT邦大神 1 級 ‧ 2021-12-29 09:40:03 檢舉

你可以從這裡開始看看:
https://www.webpagetest.org/

misadm iT邦高手 10 級 ‧ 2021-12-29 11:01:35 檢舉

To Ray 大:
我們已經砍到見血見骨了

1
pupuliao
iT邦新手 5 級 ‧ 2021-12-29 12:12:46

各位先進大家好:

小弟是在公司除了程式不寫以外,其他都要負責的 MIS,最近有人反映公司網站常常上不去或是很慢(後來證實不會但老闆不相信),程式設計人員強調他的程式沒問題(我們網站程式天天都在改,因為老闆一直在變),但是我去監看硬體效能,CPU 的附載最高了不起 18% (平時都保持在 1% ~ 3%), 記憶體則是保持在 40%~50%之間,因此我自己也不認為是硬體效能不夠的問題。

但為了要確認公司網站的耐受性,想找廠商來做較嚴密、確實、具公信力的壓力測試。想藉此得知網站瓶頸到底是在硬體、軟體、還是網路速度。不知道幫友是否有廠商相關資訊可以介紹一下呢?

小弟在此先謝過,感謝!

你好
因為在我們公司,不論是網站程式,還是伺服器維運,都是我負責,所以這部分有一些 經驗
但是在你們那邊要怎麼做我很難說,我建議是大家坐下來開會 看看怎麼測試 跟怎麼解決

1.goaccess
這是一個log 分析工具,可以分析所有請求的回應狀況跟反應時間
可以最值白的反映出server有沒有真的出現狀況

2.google analytics
前面提到的goaccess 只能反映出 server的回應時間
而google 這邊可以反映出使用者載入的時間,請拉出來看
如果你們網站沒有使用google analytics 請把程式端 抓出來打

3.jmeter
這是一個壓力測試工具,你可以建立一個 跟正是網站相同的的環境,然後根據google analytics設計出一個攻擊腳本,自己打自己,測試自己環境 可成受到最大同時間多少人使用

已我們公司的作法是 假設每日80%流量 集中在 20%的時間,去計算極端狀況,然後server 必須要超過極端狀況兩倍的情況下仍然能正常運作(回應時間必須低於5秒)

通常公司網站如果有大型改版,我們就會打一次,比較網站前後速度差異

我們測試的環境只有正式環境規格的1/4,然後仍然可以符合上面的要求,所以我們網站極限在哪我也不太清楚XD,沒辦法真的去測試,只保證沒問題

4.pagespeed
這是google 提供的服務,可以針對網站跑出一份測試報告,拿報告改進優化吧
不過根據我自己經驗,裡免很多優化建議跟開發方便 是矛盾的,我自己都沒有全部做到XD
但是是一個不錯的檢測工具

5.有一種慢叫做老版覺得慢
這個喔,請坐在老闆旁邊,看他覺得哪個網頁覺得慢,然後去分析原因吧XD

0
ak02
iT邦研究生 1 級 ‧ 2021-12-29 18:05:29

給大大一個方向
有時候可能是爬蟲害的
注意一下

我要發表回答

立即登入回答