14 mins read2022/08/25

網路小白都能懂伺服器知識


前言

各位朋友們在架站時,經常會遇到挑選伺服器 ( SERVER ) 的規格

以遠振的官網來舉例,就有相當多的規格

可以看到規格與種類相當得多,該怎麼去理解這些種類差異、規格差異呢?

規格差異的話,主要體現在作業系統、CPU、RAM、硬碟 ( SSD /HDD )、網路速度等等,會影響主機處理檔案、IO、傳輸的速度

我們先以種類差異區分成虛擬主機 ( 也稱共享主機 / shared host )、實體主機VPS主機

 

比喻

為了讓大家比較好理解,這邊會先做一個比喻

其實我們在網路上開店,就像你在現實生活開了一間咖啡廳

你伺服器的資源,有 CPU、記憶體 RAM、硬碟空間

對應到現實生活就相當於,你有 N 位店員 ( CPU ) 、內用空間 ( RAM ) 、倉儲 ( 硬碟空間 )

 

跟現實生活開店還有很像的一點是流量

都需要花錢去買流量

現實生活 網路開店
租三角窗、精華商圈

( 像西門町一個月租金可能就破百萬 )

花錢下廣告、找KOL導流

 

虛擬主機 / 共享主機

所以說 虛擬主機、共享主機是什麼意思呢?

就是你要跟別人共享這些資源

你想想,你的咖啡廳,只有1位店員 ( CPU ) ,他除了幫你顧咖啡廳之外,還要抽空幫別人烤香腸賣芭樂…多種服務 ( 看與多少人共享 )

同時你的內用座位 ( RAM )  也是要跟別人共用的,如果香腸攤生意很好,你的客人想要內用,那麼內用空間可能是不足的

這時候你的客戶就要排隊 ( 就是網頁白屏 loading 很慢 )

優點 缺點
便宜、便宜、還是便宜! 1. 你不確定你與多少人共享資源

2. 別人的行為會影響到你,同樣你的行為也會影響到其他人

比如說香腸攤,如果請 KOL 宣傳,你的店員 ( CPU ) 跟內用座位 ( RAM ) 肯定是不足的,就會導致你沒辦法接受新的客人

 

實體主機

實體主機是真的有一台電腦,存放你的網頁資料

如果機房火災,伺服器燒掉,你的網頁也就沒了

實體主機,如果要擴充 CPU、記憶體、硬碟空間,都是比較困難的,要真的去買硬體設備添加上去

所以除了特殊需求 ( 例如安全考量 ),目前架站主流都是用虛擬化技術、或雲端主機 ( AWS, GCP 等… )

 

VPS / 虛擬專屬主機

VPS / 虛擬專用主機 是類似上述的實體主機,整題機器都是你的,但是他是虛擬的

所以如果你要擴充 CPU、記憶體、硬碟空間,滑鼠點一點,付錢就行了

 

現在,整間店都是你的了,店員 ( CPU ) 只做你指派的事情,內用座位 ( RAM ) 也都是你的

你的店面大小只有2個店員、20個內用作位

但是如果你請了 KOL 、藝人宣傳

現在外面同時有 100 個人在外面排隊

你覺得要多少時間消化完這些客人 ? 你只有 2 個店員,20 個內用空間

在現實生活中,客人如果願意排隊,他們願意花個幾個小時排隊買你的東西

在網路上一樣要排隊 ( 白屏等待,因為你的店員忙炸了 ) ,但是客戶不會意識到他們在排隊他們會覺得是網頁有問題,你讓用戶等超過10秒,用戶就離開了

 

訪客 ( Visitor ) 與請求 ( Request )

許多主機商,例如 KINSTA,是以訪客 Visitor 來計價

直接跟你說,每月最多就是 25,000 訪客,超過請加錢,因為超過的話就需要額外的資源來處理流量了

 

 

另外,有少數廠商,例如 Servebolt 是以動態請求 ( Dynamic Requests ) 來計價,這種計價是最為準確的,但是用戶最難懂的

如果大家對於訪客 & 請求不熟悉,我做個比喻

你的咖啡廳,可以容納 20 位客人,這個就是訪客

但每個客人,並非只有一個”請求”,客人可能會請你

  1. 收拾餐桌
  2. 點餐
  3. 倒水
  4. 補衛生紙
  5. 詢問廁所在哪裡
  6. 請你把冷氣關小一點

如此一來,每位客人可能都會有非常多的請求,而每個請求,其實都會消耗店員 ( 伺服器 ) 的資源

所以我們可以這樣說,你的店員/伺服器忙不忙,其實並不是客人/訪客多不多,而是請求多不多

如果 20 位客人,每人都只做點餐 1 個請求,不廢話,總數只有 20 個請求,你一位店員,可能還忙得過來

如果 20 位客人,每人都有 10 個請求,總數只有 200 個請求,你一位店員,可能就會忙不過來,這樣的話,有一些請求,就要排隊、等待

 

所以,請求到底是什麼?

來,跟著我做,不要跳步驟喔!不然不準確

  1. 打開無痕視窗 ( Ctrl + Shift + N ) ,先不要輸入網址 ⚠️
  2. 按下 F12,或者右鍵檢查元素,切到網路 / Network 的 Tab
  3. 輸入你的網站網址
左下角,就是你的請求數量

一般來說,一個 WordPress 網站,如果沒有刻意控制的話,請求數破百是很正常

你們的請求數分別是多少呢?歡迎留言在下方與我分享😀

 

請求數量太多,會不會拖慢網站速度?

會!

你想想,上面的案例,20個請求 vs 200 個請求,哪邊我會先做完,當然是 20 個請求會先被做完

就像超商店員,可以同時泡咖啡,還可以同時結帳、開啟印表機等等…但是事情如果真的太多,就只能排隊

 

動態請求 vs 靜態請求

如果一個請求會由伺服器處理、占用伺服器資源的,就是動態請求,通常購物 / 會員相關的資料,都屬於動態請求

靜態請求則相反,不會占用到伺服器的資源,例如,把網頁靜態資源交給 CDN

 

CDN

CDN 是一個節點網路,把你網站上的靜態資源,快取到鄰近的節點上

所以當一個用戶要看圖片、文字時,會由 CDN 直接提供給客戶,不需要跟你的伺服器要,這樣就可以減低你的伺服器忙碌程度

用比喻來說就是

CDN 就像是你外聘的工讀生,畢竟只是工讀生,只能做一些簡單的事情 ( 靜態請求 ),例如幫客人點餐、幫客人倒水等等…

這些簡單的事情,就不會麻煩到你正職的店員 ( 不會占用你伺服器的資源 ),工讀生就直接處理掉了

但有些請求超出工讀生能處理的,還是必須由你的正職的店員來處理( 動態請求 ),例如

  1. 我上次有在你這邊有寄杯咖啡,請問我可以加價升級變卡布奇諾嗎?
  2. 我手機 0912345678,可以幫我查一下我目前點數有多少嗎?
  3. 你們這個咖啡可以幫我加肉桂嗎?

 

 

結語

  1. ⭐ 網路用戶不接受排隊 也不會意識到自己在排隊 他們要的是立即的服務
  2. 如何讓用戶不要排隊,也成了工程師一直以來要處理的難題,下回待續!
  3. 同時多少訪客比較好理解,但伺服器忙不忙真正看的是有多少動態請求

同樣的狀況可以思考館長之前的電商事件

 

所以,我要怎麼知道,我的伺服器,可以承受同時幾個人購物?

⭐ 沒辦法知道

如同上述,因為

  1. 每個網頁的請求數量是不同的
  2. 每個訪客動作不同,請求也會不同
  3. 請求又有區分成動態請求與靜態請求

我們最多只能模擬,比如說,多少人同時間加入購物車下單

使用一些壓力測試工具,例如 Loader.io ,它會告訴你,你的伺服器如果要消化 100 個動態請求,要花多少時間

 

覺得不錯的話,請給我點個推薦

您的支持與鼓勵是我們前進的最大動力!