線程伺服器
Ⅰ 線程太多會對服務器有什麼影響
多線程技術可以提高cpu利用率,尤其是多核cpu的機器,提高並發執行效率。這是建立在cpu執行有空餘版的情況權下的,多線程也並非沒有代價,首先線程作為操作系統的最小調度單位也是要佔用內存空間的,其次線程調度及上下文切換也會消耗性能。一般線程數為cpu個數*2+1較好,線程太多會佔用內存,頻繁的線程上下文切換也會導致效率降低。
Ⅱ 伺服器CPU是不是線程數越多越好另外並發訪問量最多1000的伺服器用什麼CPU比較好
你好.我來解答抄下你的問題
線程數只是衡量CPU性能的參數之一.並不完全由線程數量來決定CPU的性能.當然.在同等平台和同一級別的處理器.線程數越多性能越強.一般情況下.一台普通配置的伺服器最大並發數可以達到幾千.一台至強高配置的伺服器的最大並發數可以達到上萬.你所要求的並發數達到一千.基本上隨便一個普通配置就可以滿足了.除了配置以外.也要帶寬夠用才可以保障訪問速度.
海騰數據楊闖為你解答.若有伺服器問題需要幫忙的可以來找我
Ⅲ 一台java伺服器可以跑多少個線程
Java的多線程可謂是Java編程的精華之一,運用得當可以極大地改善程序的響應時間,提高程序的並行性。在伺服器程序中,由於往往要接收不同客戶機的同時請求或命令,因此
Ⅳ 伺服器說的「路、通道、線程」是什麼意思
首先你要明白一點:路、核、線程三者的區別。
路:獨立的CPU的個數。
核:單個CPU的物理核心(也叫真實核心)數量。
線程:程序中順序控制流程的數量。
舉個例子,雙路四核八線程伺服器指的就是該伺服器有2個獨立的CPU,每個CPU有2個物理核心(2x2=4核),每個核心擁有2條線程(4x2=8線程)。個人PC平台上很少出現「路」這個術語,以前奔騰時代英特爾公司面向桌面級用戶倒是做過一些高端的雙CPU平台,就是說一塊主板上裝了兩個獨立的CPU,和現在的雙核CPU不是一個概念。多核CPU是由於後期技術發展後,晶元集成度越來越高,可以把多個物理核心集成在一個CPU上。打個比喻(雖然不恰當),如果把雙路看做一對健康的雙胞胎的話,那麼雙核就是一對連體雙胞胎。
而所謂的四核八線程(注意:這里沒有「路」定義)就是說,一顆獨立的CPU上的真實核心數量為4,但是通過超線程技術又模擬出4個核心,看上去像8個核心了,但有4個是模擬出來的,不是真實的,以此類推。這就是所謂的超線程,目前是英特爾公司獨有的技術。
至於「幾通道」,它指的是伺服器進行資源共享操作時的信道數量,它表現的是伺服器的網路共享通信那一塊的性能,和上面的三個術語面向的對象不同,他們仨表現的是伺服器的數據處理那一塊的性能,數量越高,伺服器多任務處理能力越強。當然,這四個傢伙一起展現了一台伺服器的綜合性能。
Ⅳ 伺服器線程指什麼有什麼作用
伺服器線程指的是伺服器可以接受多個請求和任務達到更快更高的效率
Ⅵ 什麼是多線程並發伺服器
有多個 CPU 可用。單核機器上多線程的優勢不明顯。
線程間有共享數據。如果沒有共享數據,用模型 3b 就行。雖然我們應該把線程間的共享數據降到最低,但不代表沒有;
共享的數據是可以修改的,而不是靜態的常量表。如果數據不能修改,那麼可以在進程間用 shared memory,模式 3 就能勝任;
提供非均質的服務。即,事件的響應有優先順序差異,我們可以用專門的線程來處理優先順序高的事件。防止優先順序反轉;
latency 和 throughput 同樣重要,不是邏輯簡單的 IO bound 或 CPU bound 程序;
利用非同步操作。比如 logging。無論往磁碟寫 log file,還是往 log server 發送消息都不應該阻塞 critical path;
能 scale up。一個好的多線程程序應該能享受增加 CPU 數目帶來的好處,目前主流是 8 核,很快就會用到 16 核的機器了。
具有可預測的性能。隨著負載增加,性能緩慢下降,超過某個臨界點之後急速下降。線程數目一般不隨負載變化。
多線程能有效地劃分責任與功能,讓每個線程的邏輯比較簡單,任務單一,便於編碼。而不是把所有邏輯都塞到一個 event loop 里,就像 Win32 SDK 程序那樣。
Ⅶ 關於多線程伺服器
你說你綁定和監聽都好了吧
那麼服務就可以這樣寫
while(bWorking)
{
SOCKET sAccept = accept(sListen, NULL, NULL);
if(sAccept != SOCKET_ERROR)
CreateThread(NULL, 0, ThreadProc, (LPVOID)&sAccept, 0, NULL);
}
相應的線程回函數可以這樣:
DWORD WINAPI ThreadProc(LPVOID lpPara)
{
SOCKET sComm = *((SOCKET*)lpPara);
//從這里答開始讀寫這個socket就可以了
}
這樣就實現了accept一個連接就創建一個線程。
Ⅷ 伺服器一般支持多少線程
這個是根據伺服器配置(處理器)來的,主流的都是核心數* 2。你可以去伺服器廠商(正睿)的網上找找伺服器產品,查看一下參數和配置,幾分鍾就清楚了!
Ⅸ 一台java伺服器跑多少個線程
首先確認你是cpu密集型的還是io密集型的,
如果是cpu密集型的線程數可專以設置到和cpu個數一致,
如果是io密集型的,首先需要確屬認你io wait的時間,線程數和io wait時間成正比,具體需要根據測試得出。
Ⅹ Java的伺服器一般運行幾個線程比較合適
首先確認你是cpu密集型的還是io密集型的,
如果是cpu密集型的線程數可以設置到和回cpu個數一致,
如果是io密集型的,首先需答要確認你io wait的時間,線程數和io wait時間成正比,具體需要根據測試得出。