您的位置:首頁>科技>正文

大學生面試之大規模網站中的涉及到的知識點

又到一年招聘求職黃金季節, 作為技術開發人員, 想要拿到高薪, 就必須要知道以及靈活運用某些東西。

提一些問題

1.什麼樣的網站才算大型網站?

看用戶量有多少、pv、uv等資料。

2.什麼是PV、UV和IP呢?

PV(訪問量):即Page View, 即頁面流覽量或點擊量, 用戶每次刷新即被計算一次。

UV(獨立訪客):即UniQue Visitor,訪問您網站的一台電腦用戶端為一個訪客。 00:00-24:00內相同的用戶端只被計算一次。

IP(獨立IP):指獨立IP數。 00:00-24:00內相同IP位址之被計算一次。

雅虎統計指數(YSR):通過來源帶來的PV、UV、IP, 以及使用者停留時間、訪問情況、使用者行為等因素綜合分析按不同權重計算得到的, 評判來源品質的指數, 指數越高, 表明來源品質越高。

3.高併發是什麼意思, 如何定義高併發呢?

比如說一個網站, 同時訪問的數量很多, 就是高併發。

4.什麼是高可用呢?

HA系統是目前企業防止核心電腦系統因故障停機的最有效手段。

高可用性(HA)的功能

1、軟體故障監測與排除

2、備份和資料保護

3、管理站能夠監視各網站的運行情況, 能隨時或定時報告系統運行狀況, 故障能及時報告和告警, 並有必要的控制手段

4、實現錯誤隔離以及主、備份伺服器間的服務切換

HA的工作方式:

HA有主從方式和雙工方式兩種工作模式

高可用性方案則利用更少的冗餘部件同時由軟體檢測故障, 一旦故障發生立即隔離損壞部件, 通過提供故障恢復實現最大化系統和應用的可用性。

容錯技術隨著處理器速度的加快和價格的下跌而越來越多地轉移到軟體中。 未來容錯技術將完全在軟體環境下完成, 那時它和高可用性技術之間的差別也就隨之消失了。

5.大型網站和小型網站比較有哪些不同呢?

小型網站最大特點自然就是“小”, 構架簡單, 內容較少, 這些都實現小的體現。 而大型網站的特點自然就是大, 構架複雜, 可能有會員系統、發佈系統、支付系統等等, 內容龐雜。

6.大型網站核心架構要素是什麼?

7.打開一個網站的正常響應時間是多久呢?

整個過程分三個部分, 呈現時間, 資料傳輸時間和系統處理時間。 在互聯網上對於用戶回應時間, 有一個普遍的標準。 2/5/10秒原則。

也就是說, 在2秒之內給客戶回應被使用者認為是“非常有吸引力”的用戶體驗。 在5秒之內回應客戶被認為“比較不錯”的用戶體驗, 在10秒內給用戶回應被認為“糟糕”的用戶體驗。 如果超過10秒還沒有得到回應, 那麼大多用戶會認為這次請求是失敗的。

8.從資料庫中查詢一條記錄的正常時間是多久呢?

比如MySQL, 在慢查詢時間內的查詢時間都算正常。

9.如何計算系統的最佳性能運行點?

10.如何進行系統性能測試?如何寫性能測試報告?

請求回應時間

事務回應時間

併發使用者數

輸送量 指的是在一次性能測試過程中網路上傳輸的資料量的總和.輸送量/傳輸時間,就是吞吐率.

TPS(transactionper second)每秒鐘系統能夠處理的交易或者事務的數量.它是衡量系統處理能力的重要指標.

點擊率 每秒鐘用戶向WEB伺服器提交的HTTP請求數.這個指標是WEB應用特有的一個指標:WEB應用是”請求-回應”模式,使用者發出一次申請,伺服器就要處理一次,所以點擊是WEB應用能夠處理的交易的最小單位.

11.常見的性能測試工具有哪些?如何選擇呢?

Web Bench是一個簡單的web或者web代理服務的基準測試工具。 (它)使用fork()模擬多個用戶端並且可以發起HTTP/0/9-HTTP/1.1的請求。 這個基準測試不是非常符合實際情況, 但是可以測試出你的HTTP服務是否可以處理多個客戶同時訪問而不會把你的機器弄掛掉。 這個工具可以獲得服務的兩個指標:每分鐘回應請求數量(pages/min)和每秒鐘傳輸資料量(bytes/sec)。 使用-f選項可以運行在主動模式下(不等待伺服器回應直接發送下一個請求)。

ab命令會創建很多的併發訪問執行緒,模擬多個訪問者同時對某一URL位址進行訪問。它的測試目標是基於URL的,因此,既可以用來測試Apache的負載壓力,也可以測試nginx、lighthttp、tomcat、IIS等其它Web伺服器的壓力。ab命令對發出負載的電腦要求很低,既不會佔用很高CPU,也不會佔用很多記憶體,但卻會給目標伺服器造成巨大的負載,其原理類似CC攻擊。自己測試使用也須注意,否則一次上太多的負載,可能造成目標伺服器因資源耗完,嚴重時甚至導致死機。

Siege(英文意思是圍攻)是一個壓力測試和評測工具,設計用於WEB開發這評估應用在壓力下的承受能力:可以根據配置對一個WEB網站進行多使用者的併發訪問,記錄每個使用者所有請求過程的相應時間,並在一定數量的併發訪問下重複進行。 Siege 支持基本的認證,cookies, HTTP 和 HTTPS 協定。

Apache JMeter是一個專門為運行和伺服器裝載測試而設計的、100%的純Java桌面運行程式。原先它是為Web/HTTP測試而設計的,但是它已經擴展以支援各種各樣的測試模組。它和用於HTTP和SQL資料庫(使用JDBC)的模組一起運送。它可以用來測試靜止資料庫或者活動資料庫中的伺服器的運行情況,可以用來類比對伺服器或者網路系統加以重負荷以測試它的抵抗力,或者用來分析不同負荷類型下的所有運行情況。它也提供了一個可替換的介面用來定制資料顯示,測試同步及測試的創建和執行。

Web Polygraph這個軟體也是一個用於測試WEB性能的工具,這個工具是很多公司的標準測試工具,包括微軟在分析其軟體性能的時候,也是使用這個工具做為基準工具的。很多招聘測試員的廣告中都注明需要熟練掌握這個測試工具。

12.大型網站為了減少Htpp請求,有哪些常見的做法?

合併檔就是把很多JS檔合併成1個檔,很多CSS檔合併成1個檔

合併圖片,這是利用css sprite,通過控制背景圖片的位置來顯示不同的圖片。

data嵌入圖片,把圖片進行base64編碼後使用data:嵌入到html中

13.css和js文件在網頁中的位置如何放置是最合適的?

一般來說css放頭部js放底部來確保用戶至少能早一點看到介面,讓網站看起來至少反應快一點,不過如果css稍微有點多了,會讓螢幕白屏時間更長,所以,並不是說把css都放頂部是一個完美的方法,而且有些js必須在頁面載入前執行掉。

所以應該是這樣,把必須的js和css放頂部,把不那麼重要的css和js放底部。

使用-f選項可以運行在主動模式下(不等待伺服器回應直接發送下一個請求)。

ab命令會創建很多的併發訪問執行緒,模擬多個訪問者同時對某一URL位址進行訪問。它的測試目標是基於URL的,因此,既可以用來測試Apache的負載壓力,也可以測試nginx、lighthttp、tomcat、IIS等其它Web伺服器的壓力。ab命令對發出負載的電腦要求很低,既不會佔用很高CPU,也不會佔用很多記憶體,但卻會給目標伺服器造成巨大的負載,其原理類似CC攻擊。自己測試使用也須注意,否則一次上太多的負載,可能造成目標伺服器因資源耗完,嚴重時甚至導致死機。

Siege(英文意思是圍攻)是一個壓力測試和評測工具,設計用於WEB開發這評估應用在壓力下的承受能力:可以根據配置對一個WEB網站進行多使用者的併發訪問,記錄每個使用者所有請求過程的相應時間,並在一定數量的併發訪問下重複進行。 Siege 支持基本的認證,cookies, HTTP 和 HTTPS 協定。

Apache JMeter是一個專門為運行和伺服器裝載測試而設計的、100%的純Java桌面運行程式。原先它是為Web/HTTP測試而設計的,但是它已經擴展以支援各種各樣的測試模組。它和用於HTTP和SQL資料庫(使用JDBC)的模組一起運送。它可以用來測試靜止資料庫或者活動資料庫中的伺服器的運行情況,可以用來類比對伺服器或者網路系統加以重負荷以測試它的抵抗力,或者用來分析不同負荷類型下的所有運行情況。它也提供了一個可替換的介面用來定制資料顯示,測試同步及測試的創建和執行。

Web Polygraph這個軟體也是一個用於測試WEB性能的工具,這個工具是很多公司的標準測試工具,包括微軟在分析其軟體性能的時候,也是使用這個工具做為基準工具的。很多招聘測試員的廣告中都注明需要熟練掌握這個測試工具。

12.大型網站為了減少Htpp請求,有哪些常見的做法?

合併檔就是把很多JS檔合併成1個檔,很多CSS檔合併成1個檔

合併圖片,這是利用css sprite,通過控制背景圖片的位置來顯示不同的圖片。

data嵌入圖片,把圖片進行base64編碼後使用data:嵌入到html中

13.css和js文件在網頁中的位置如何放置是最合適的?

一般來說css放頭部js放底部來確保用戶至少能早一點看到介面,讓網站看起來至少反應快一點,不過如果css稍微有點多了,會讓螢幕白屏時間更長,所以,並不是說把css都放頂部是一個完美的方法,而且有些js必須在頁面載入前執行掉。

所以應該是這樣,把必須的js和css放頂部,把不那麼重要的css和js放底部。

Next Article
喜欢就按个赞吧!!!
点击关闭提示