web服務的併發技術以及解決方案

2021-06-25 10:28:14 字數 648 閱讀 3257

乙個百萬級使用者的系統的web服務必須通過特殊的技術處理才能滿足需求。

乙個關鍵的詞彙叫做「併發」,這樣可以非阻塞的同時處理多個使用者請求。對於初級處理這種多使用者請求的程式設計師最先用到的方法就是來乙個請求,開乙個執行緒,處理完之後銷毀現成。的確這種做法可以處理類似與同時為多使用者提供服務的需求,但是這種做法的效率太低了。原因是新開乙個執行緒需要去請求系統資源,處理完業務之後釋放執行緒又需要很多時間,這樣一來很可能時間大部分浪費到了非業務處理的部分。在這種情況下,出現了「池」的概念。可以預先開一些數量的執行緒放到池裡,用的時候直接去池裡取就可以了,用完了 也不用釋放放回池裡供其他請求繼續使用。這種方式解決了上一做法的效率問題。那麼,應該開多少執行緒放進去呢?簡單來說,根據需求動態調整池中的執行緒數量是最合理的。具體策略就不再贅述。

「執行緒池」解決了多使用者處理的問題,然而對於web請求來說,效率的瓶頸不在於cpu的處理速度。相信學過《計算機組成原理》的同學,對於以下的倒三角形一定有印象。

cpu的梳理速度是一級快取的數倍,二級快取的數十倍,記憶體的數百倍,硬碟的數千萬倍,網路io的數億。

於是就產生乙個問題叫做nio問題,而處理這個問題有效的方法也就是非阻塞是io。下面介紹一些此方面的技術。

PV和併發 以及計算web伺服器的數量的方法

幾個概念 流量是指 的訪問量,用來描述訪問 的使用者數量以及使用者所瀏覽的網頁數量等指標,常用的統計指標包括 的獨立使用者數量 總使用者數量 含重複訪問者 網頁瀏覽數量 每個使用者的頁面瀏覽數量 使用者在 的平均停留時間等。綜合瀏覽量 pv 指一定時間範圍內頁面瀏覽量或點選量,使用者每次重新整理即被...

web伺服器time wait值過高解決方案

time wait調優過程 1 檢視連線的訪問狀態 注 1 time wait值顯得有點高,太高了會暫用伺服器端口。導致伺服器無法響應。ddos一般都是這種情況 2 併發連線1689正常的值 3 syn recv表示應該沒收到ddoc的 要是受到 的話,這個響應值應該很高。2 檢視一下系統開放多少個...

apache伺服器配置常見錯誤以及解決方法

1 啟動apache apachectl start 結束apache apachectl stop 重啟apache apachectl restart 注意 啟動apachectl一定要在bin的上級目錄中執行,例如bin apachectl start,因為apachectl會呼叫httpd,...