執行緒數設定技巧——與CPU的關係
1、簡化設定
一般說來,執行緒池的大小可以這樣設定:
1、如果是CPU密集型應用,則執行緒池大小設定為N+1
2、如果是IO密集型應用,則執行緒池大小設定為2N+1(因為io讀資料或者快取的時候,執行緒等待,此時如果多開執行緒,能有效提高cpu利用率)
(其中N為CPU的個數)
如果一臺伺服器上只部署這一個應用並且只有這一個執行緒池,那麼這種估算或許合理,具體還需自行測試驗證。
2、對IO優化有更高要求
可參考如下估算公式
最佳執行緒數目 = ((執行緒等待時間+執行緒CPU時間)/執行緒CPU時間 )* CPU數目
因為很顯然,執行緒等待時間所佔比例越高,需要越多執行緒。執行緒CPU時間所佔比例越高,需要越少執行緒。
舉個例子:
比如平均每個執行緒CPU執行時間為0.5s,而執行緒等待時間(非CPU執行時間,比如IO)為1.5s,CPU核心數為8,那麼根據上面這個公式估算得到:((0.5+1.5)/0.5)*8=32。
這個公式進一步轉化為:
最佳執行緒數目 = (執行緒等待時間與執行緒CPU時間之比 + 1)* CPU數目
參考:
執行緒數設定和CPU數的關係
相關推薦
執行緒數設定技巧——與CPU的關係
1、簡化設定 一般說來,執行緒池的大小可以這樣設定: 1、如果是CPU密集型應用,則執行緒池大小設定為N+1 2、如果是IO密集型應用,則執行緒池大小設定為2N+1(因為io讀資料或者快取的時候,執行緒等待,此時如果多開執行緒,能有效提高cpu利用率) (其中N為CPU的個數)
執行緒數設定和CPU數的關係
開發十年,就只剩下這套架構體系了! >>>
Tomcat簡介(組成,工作原理,執行緒數設定等)
一、簡介:tomcat是一個免費的開放原始碼的web應用伺服器。屬於輕量級應用伺服器,在中小型系統和併發訪問使用者不是很多的場合下被普遍使用,是開發和除錯JSP程式的首選。當在一臺機器上配置好Apache伺服器,可以利用它響應HTML頁面的訪問請求。實際上Tomcat是Apa
證明執行緒池ThreadPoolExecutor的核心執行緒數,最大執行緒數,佇列長度的關係
關於執行緒池的幾個引數,很多人不是很清楚如何配置,他們之間是什麼關係,我用程式碼來證明一下。 package www.itbac.com; import java.util.concurrent.*; public class ExecutorTest { public static
執行緒池大小設定,CPU的核心數、執行緒數的關係和區別,同步與堵塞完全是兩碼事
執行緒池應該設定多少執行緒合適,怎麼樣估算出來。最近接觸到一些相關資料,現作如下總結。 最開始接觸執行緒池的時候,沒有想到就僅僅是設定一個執行緒池的大小居然還有這麼多的學問,汗顏啊。 首先,需要考慮到執行緒池所進行的工作的性質: IO密集型 CPU密集型 簡單的分析來看,如果是CPU密集
CPU的核心數、執行緒數的關係和區別
我們在選購電腦的時候,CPU是一個需要考慮到核心因素,因為它決定了電腦的效能等級。CPU從早期的單核,發展到現在的雙核,多核。CPU除了核心數之外,還有執行緒數之說,下面筆者就來解釋一下CPU的核心數與執行緒數的關係和區別。 簡單地說,CPU的核心數是指物理上,也就是硬
java獲取JVM的CPU佔用率、記憶體佔用率、執行緒數及伺服器的網口吞吐率、磁碟讀寫速率
怎麼說呢,本人菜鳥一枚,費了幾天時間,終於做了一個用java獲取JVM的CPU佔用率、記憶體佔用率、執行緒數及伺服器的網口吞吐率、磁碟讀寫速率的實現。 其中windows環境下獲取jvm 的cpu佔用率這裡是參考網上別人的東西(在此感謝提供參考的網友),其他的都是基於自己的想法做出來的。該工具類
執行緒中的wait() 與 鎖的關係
我們先看一段程式碼: /** * 計算輸出其他執行緒鎖計算的資料 * */ public class ThreadA { public static void main(String[] args) throws InterruptedException{ Thre
linux執行緒數限制與zabbix監控
Linux最大執行緒數限制及當前執行緒數查詢 最大執行緒數計算方式: n = total_memory/128k; Linux使用者執行緒數限制而導致的程式異常為 java.lang.OutOfMemoryError:unable to create new native thread
Linux 檢視系統cpu個數 核心數 執行緒數
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
檢視系統cpu個數、核心數、執行緒數
1、檢視物理cpu個數 grep 'physical id' /proc/cpuinfo | sort -u|wc -l 2、檢視核心數量 grep 'core id' /proc/cpuinfo | sort -u | wc -l 3、檢視執行緒數 grep 'proc
如何在Linux系統中檢視CPU、系統核數、執行緒數等資訊
檢視系統的CPU資訊時,需要注意的引數是:系統中有幾顆CPU,每顆CPU中有幾顆核心,每個CPU有幾個執行緒。 通過/proc/cpuinfo中可以看到系統中總計有幾顆CPU,每顆CPU有幾個核心,系統總計有多少CPU執行緒。 引數的意義: model name:每顆CPU的型號。
Java多執行緒2.4.生產者與消費者之間的關係3
生產者與消費者之間的關係 1、執行緒間通訊舉例的問題解決2 (1)建立學生類 package cn.itcast_05; public class Student { String name; int age; boolean flag; // 預設情況是沒有
(一)執行緒數究竟設定多少合適
N核伺服器,通過執行業務的單執行緒分析出本地計算時間為x,等待時間為y,則工作執行緒數(執行緒池執行緒數)設定為 N*(x+y)/x,能讓CPU的利用率最大化。 1、瞭解工作執行緒的工作模式,對量化分析執行緒數的設定非常有幫助: 上圖是一個典型的工
Linux上檢視物理CPU個數,核數,執行緒數
首先,看看什麼是超執行緒概念 超執行緒技術就是利用特殊的硬體指令,把兩個邏輯核心模擬成兩個物理晶片,讓單個處理器都能使用執行緒級平行計算,進而相容多執行緒作業系統和軟體,減少了CPU的閒置時間,提高的CPU的執行效率。 超執行緒技術是在一顆CPU同時執行多個程式而共同分享一顆CPU內的資
CentOS6 檢視系統 CPU 個數、核心數、執行緒數
1、檢視 CPU 物理個數 grep 'physical id' /proc/cpuinfo | sort -u | wc -l 2、檢視 CPU 核心數量 grep 'core id' /proc/cpuinfo | sort -u | wc -l 3、檢視 CPU
CentOS6.8 檢視系統 CPU 個數、核心數、執行緒數
1、檢視 CPU 物理個數 grep 'physical id' /proc/cpuinfo | sort -u | wc -l 2、檢視 CPU 核心數量 grep 'core id' /proc/cpuinfo | sort -u | wc -l 3、檢視 CPU
.NET Core中遇到奇怪的執行緒死鎖問題:記憶體與執行緒數不停地增長
一個 asp.net core 站點,之前執行在Linux 伺服器上,執行一段時間後有時站點會掛掉,在日誌中記錄很多“EMFILE too many open files”的錯誤: Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.UvExc
通過設定Weblogic設定執行緒數提高系統併發
使用Weblogic版本:Weblogic 11g(10.3.6) 設定Weblogic的執行緒數有兩種方法, 第一種,通過啟動引數設定: -Dweblogic.threadpool.MinPoolSize=1000 -Dweblogic.threadpool.MaxP
執行緒池的選用與執行緒數的指定
1、選用的兩個角度 高效能:將提交到執行緒池中的任務直接交給執行緒去處理(前提:執行緒數小於最大執行緒數),不入隊緩衝執行:希望提交到執行緒池的任務儘量被核心執行緒(corePoolSize)執行掉 2、高效能 佇列:SynchronousQueue最大執行緒數:一般設為