導航:首頁 > 編程系統 > linuxcpu多線程測試

linuxcpu多線程測試

發布時間:2023-03-09 01:47:58

linux 多線程cpu運行時間

這個月時間比較長的,因為這個度現成的CPU使用起來非常的好

Ⅱ Linux多線程佔用CPU 99.9%

1、防殺毒軟體造成故障

由於新版的KV、金山、瑞星都加入了對網頁、插件、郵件的隨機監控,無疑增大了系統負擔。處理方式:基本上沒有合理的處理方式,盡量使用最少的監控服務吧,者,升級你的硬體配備。
2、驅動沒有經過認證,造成CPU資源佔用100%

大量的測試版的驅動在網上泛濫,造成了難以發現的故障原因。 處理方式:尤其是顯卡驅動特別要注意,建議使用微軟認證的或由官方發布的驅動,並且嚴格核對型號、版本

3、病毒、木馬造成

大量的蠕蟲病毒在系統內部迅速復制,造成CPU佔用資源率據高不下。解決辦法:用可靠的殺毒軟體徹底清理系統內存和本地硬碟,並且打開系統設置軟體,察看有無異常啟動的程序。經常性更新升級殺毒軟體和防火牆,加強防毒意識,掌握正確的防殺毒知識。

4、控制面板—管理工具—服務—RISING REALTIME MONITOR SERVICE點滑鼠右鍵,改為手動。

5、開始->;運行->;msconfig->;啟動,關閉不必要的啟動項,重啟。

6、查看「svchost」進程。

svchost.exe是Windows XP系統的一個核心進程。svchost.exe不單單只出現在Windows XP中,在使用NT內核的Windows系統中都會有svchost.exe的存在。一般在Windows 2000中svchost.exe進程的數目為2個,而在Windows XP中svchost.exe進程的數目就上升到了4個及4個以上。

7、查看網路連接。主要是網卡。

8、查看網路連接

當安裝了Windows XP的計算機做伺服器的時候,收到埠 445 上的連接請求時,它將分配內存和少量地調配 CPU資源來為這些連接提供服務。當負荷過重的時候,CPU佔用率可能過高,這是因為在工作項的數目和響應能力之間存在固有的權衡關系。你要確定合適的 MaxWorkItems 設置以提高系統響應能力。如果設置的值不正確,伺服器的響應能力可能會受到影響,或者某個用戶獨占太多系統資源。
要解決此問題,我們可以通過修改注冊表來解決:在注冊表編輯器中依次展開 [HKEY_LOCAL_ ]分支,在右側窗口中新建一個名為「maxworkitems」的Dword值。然後雙擊該值,在打開的窗口中鍵入下列數值並保存退出:

9、看看是不是Windows XP使用滑鼠右鍵引起CPU佔用100%

在資源管理器裡面,當你右鍵點擊一個目錄或一個文件,你將有可能出現下面所列問題:
任何文件的拷貝操作在那個時間將有可能停止相應
網路連接速度將顯著性的降低
所有的流輸入/輸出操作例如使用Windows Media Player聽音樂將有可能是音樂失真成因:
當你在資源管理器裡面右鍵點擊一個文件或目錄的時候,當快捷菜單顯示的時候,CPU佔用率將增加到100%,當你關閉快捷菜單的時候才返回正常水平。

解決方法:

方法一:
關閉「為菜單和工具提示使用過渡效果」
1、點擊「開始」--「控制面板」
2、在「控制面板」裡面雙擊「顯示」
3、在「顯示」屬性裡面點擊「外觀」標簽頁
4、在「外觀」標簽頁裡面點擊「效果」
5、在「效果」對話框裡面,清除「為菜單和工具提示使用過渡效果」前面的復選框接著點擊兩次「確定」按鈕。

方法二:
在使用滑鼠右鍵點擊文件或目錄的時候先使用滑鼠左鍵選擇你的目標文件或目錄。然後再使用滑鼠右鍵bomb出快捷菜單。
一般情況下CPU佔了100%的話我們的電腦總會慢下來,而很多時候我們是可以通過做一點點的改動就可以解決,而不必問那些大蝦了。
當機器慢下來的時候,首先我們想到的當然是任務管理器了,看看到底是哪個程序佔了較搞的比例,如果是某個大程序那還可以原諒,在關閉該程序後只要 CPU正常了那就沒問題;如果不是,那你就要看看是什幺程序了,當你查不出這個進程是什幺的時候就去google或者搜。有時只結束是沒用的,在xp下我們可以結合msconfig里的啟動項,把一些不用的項給關掉。在2000下可以去下個winpatrol來用。
一些常用的軟體,比如瀏覽器佔用了很搞的CPU,那幺就要升級該軟體或者乾脆用別的同類軟體代替,有時軟體和系統會有點不兼容,當然我們可以試下xp系統下給我們的那個兼容項,右鍵點該.exe文件選兼容性。
svchost.exe有時是比較頭痛的,當你看到你的某個svchost.exe佔用很大CPU時你可以去下個aports或者fport來檢查其對應的程序路徑,也就是什幺東西在掉用這個svchost.exe,如果不是c:Windowssystem32(xp)或 c:winntsystem32 (2000)下的,那就可疑。升級殺毒軟體殺毒吧。
右擊文件導致100%的CPU佔用我們也會遇到,有時點右鍵停頓可能就是這個問題了。官方的解釋:先點左鍵選中,再右鍵(不是很理解)。非官方:通過在桌面點右鍵-屬性-外觀-效果,取消」為菜單和工具提示使用下列過度效果(U)「來解決。還有某些殺毒軟體對文件的監控也會有所影響,可以關閉殺毒軟體的文件監控;還有就是對網頁,插件,郵件的監控也是同樣的道理。
一些驅動程序有時也可能出現這樣的現象,最好是選擇微軟認證的或者是官方發布的驅動來裝,有時可以適當的升級驅動,不過記得最新的不是最好的。
CPU降溫軟體,由於軟體在運行時會利用所以的CPU空閑時間來進行降溫,但Windows不能分辨普通的CPU佔用和降溫軟體的降溫指令之間的區別,因此CPU始終顯示100%,這個就不必擔心了,不影響正常的系統運行。
在處理較大的word文件時由於word的拼寫和語法檢查會使得CPU累,只要打開word的工具-選項-拼寫和語法把」檢查拼寫和檢查語法「勾去掉。
單擊avi視頻文件後CPU佔用率高是因為系統要先掃描該文件,並檢查文件所有部分,並建立索引;解決辦法:右擊保存視頻文件的文件夾-屬性-常規-高級,去掉為了快速搜索,允許索引服務編制該文件夾的索引的勾。

CPU佔用100%案例分析

1、dllhost進程造成CPU使用率佔用100%

特徵:伺服器正常CPU消耗應該在75%以下,而且CPU消耗應該是上下起伏的,出現這種問題的伺服器,CPU會突然一直處100%的水平,而且不會下降。查看任務管理器,可以發現是DLLHOST.EXE消耗了所有的CPU空閑時間,管理員在這種情況下,只好重新啟動IIS服務,奇怪的是,重新啟動 IIS服務後一切正常,但可能過了一段時間後,問題又再次出現了。
直接原因:

有一個或多個ACCESS資料庫在多次讀寫過程中損壞,微軟的MDAC系統在寫入這個損壞的ACCESS文件時,ASP線程處於BLOCK狀態,結果其它線程只能等待,IIS被死鎖了,全部的CPU時間都消耗在DLLHOST中。

解決辦法:

安裝「一流信息監控攔截系統」,使用其中的「首席文件檢查官IIS健康檢查官」軟體,

啟用」查封我號鎖模塊」,設置:

--wblock=yes

監控的目錄,請指定您的主機的文件所在目錄:

--wblockdir=d: est

監控生成的日誌的文件保存位置在安裝目錄的log目錄中,文件名為:logblock.htm

停止IIS,再啟動「首席文件檢查官IIS健康檢查官」,再啟動IIS,「首席文件檢查官IIS健康檢查官」會在logblock.htm中記錄下最後寫入的ACCESS文件的。

過了一段時間後,當問題出來時,例如CPU會再次一直處100%的水平,可以停止IIS,檢查logblock.htm所記錄的最後的十個文件,注意,最有問題的往往是計數器類的ACCESS文件,例如:」**COUNT.MDB」,」**COUNT.ASP」,可以先把最後十個文件或有所懷疑的文件刪除到回收站中,再啟動IIS,看看問題是否再次出現。我們相信,經過仔細的查找後,您肯定可以找到這個讓您操心了一段時間的文件的。

找到這個文件後,可以刪除它,或下載下來,用ACCESS2000修復它,問題就解決了。

2、svchost.exe造成CPU使用率佔用100%

在win.ini文件中,在[Windows]下面,「run=」和「load=」是可能載入「木馬」程序的途徑,必須仔細留心它們。一般情況下,它們的等號後面什幺都沒有,如果發現後面跟有路徑與文件名不是你熟悉的啟動文件,你的計算機就可能中上「木馬」了。當然你也得看清楚,因為好多「木馬 」,如 「AOL Trojan木馬」,它把自身偽裝成command.exe文件,如果不注意可能不會發現它不是真正的系統啟動文件。

在system.ini文件中,在[BOOT]下面有個「shell=文件名」。正確的文件名應該是「explorer.exe」,如果不是 「explorer.exe」,而是「shell= explorer.exe 程序名」,那幺後面跟著的那個程序就是「木馬」程序,就是說你已經中「木馬」了。

在注冊表中的情況最復雜,通過regedit命令打開注冊表編輯器,在點擊至:「HKEY-LOCAL- 」目錄下,查看鍵值中有沒有自己不熟悉的自動啟動文件,擴展名為EXE,這里切記:有的「木馬」程序生成的文件很像系統自身文件,想通過偽裝矇混過關,如「Acid Battery v1.0木馬」,它將注冊表「HKEY-LOCAL- 」下的Explorer 鍵值改為Explorer=「C:Windowsexpiorer.exe」,「木馬」程序與真正的Explorer之間只有「i」與「l」的差別。當然在注冊表中還有很多地方都可以隱藏「木馬」程序,如:「HKEY-CURRENT- 」、「HKEY- USERS****」的目錄下都有可能,最好的辦法就是在 「HKEY-LOCAL-」下找到「木馬該病毒也稱為「Code Red II(紅色代碼2)」病毒,與早先在西方英文系統下流行「紅色代碼」病毒有點相反,在國際上被稱為VirtualRoot(虛擬目錄)病毒。該蠕蟲病毒利用Microsoft已知的溢出漏洞,通過80埠來傳播到其它的Web頁伺服器上。受感染的機器可由黑客們通過Http Get的請求運行scripts/root.exe來獲得對受感染機器的完全控制權。

當感染一台伺服器成功了以後,如果受感染的機器是中文的系統後,該程序會休眠2天,別的機器休眠1天。當休眠的時間到了以後,該蠕蟲程序會使得機器重新啟動。該蠕蟲也會檢查機器的月份是否是10月或者年份是否是2002年,如果是,受感染的伺服器也會重新啟動。當Windows NT系統啟動時,NT系統會自動搜索C盤根目錄下的文件explorer.exe,受該網路蠕蟲程序感染的伺服器上的文件explorer.exe也就是該網路蠕蟲程序本身。該文件的大小是8192位元組,VirtualRoot網路蠕蟲程序就是通過該程序來執行的。同時,VirtualRoot網路蠕蟲程序還將cmd.exe的文件從Windows NT的system目錄拷貝到別的目錄,給黑客的入侵敞開了大門。它還會修改系統的注冊表項目,通過該注冊表項目的修改,該蠕蟲程序可以建立虛擬的目錄C 或者D,病毒名由此而來。值得一提的是,該網路蠕蟲程序除了文件explorer.exe外,其餘的操作不是基於文件的,而是直接在內存中來進行感染、傳播的,這就給捕捉帶來了較大難度。

」程序的文件名,再在整個注冊表中搜索即可。

我們先看看微軟是怎樣描述svchost.exe的。在微軟知識庫314056中對svchost.exe有如下描述:svchost.exe 是從動態鏈接庫 (DLL) 中運行的服務的通用主機進程名稱。

其實svchost.exe是Windows XP系統的一個核心進程。svchost.exe不單單只出現在Windows XP中,在使用NT內核的Windows系統中都會有svchost.exe的存在。一般在Windows 2000中svchost.exe進程的數目為2個,而在Windows XP中svchost.exe進程的數目就上升到了4個及4個以上。所以看到系統的進程列表中有幾個svchost.exe不用那幺擔心。

svchost.exe到底是做什幺用的呢?

首先我們要了解一點那就是Windows系統的中的進程分為:獨立進程和共享進程這兩種。由於Windows系統中的服務越來越多,為了節約有限的系統資源微軟把很多的系統服務做成了共享模式。那svchost.exe在這中間是擔任怎樣一個角色呢?

svchost.exe的工作就是作為這些服務的宿主,即由svchost.exe來啟動這些服務。svchost.exe只是負責為這些服務提供啟動的條件,其自身並不能實現任何服務的功能,也不能為用戶提供任何服務。svchost.exe通過為這些系統服務調用動態鏈接庫(DLL)的方式來啟動系統服務。

svchost.exe是病毒這種說法是任何產生的呢?

因為svchost.exe可以作為服務的宿主來啟動服務,所以病毒、木馬的編寫者也挖空心思的要利用svchost.exe的這個特性來迷惑用戶達到入侵、破壞計算機的目的。

如何才能辨別哪些是正常的svchost.exe進程,而哪些是病毒進程呢?

svchost.exe的鍵值是在「HKEY_LOCAL_ NTCurrentVersionSvchost」,每個鍵值表示一個獨立的svchost.exe組。

微軟還為我們提供了一種察看系統正在運行在svchost.exe列表中的服務的方法。以Windows XP為例:在「運行」中輸入:cmd,然後在命令行模式中輸入:tasklist /svc。系統列出如圖2所示的服務列表。圖2中紅框包圍起來的區域就是svchost.exe啟動的服務列表。如果使用的是Windows 2000系統則把前面的「tasklist /svc」命令替換為:「tlist -s」即可。如果你懷疑計算機有可能被病毒感染,svchost.exe的服務出現異常的話通過搜索svchost.exe文件就可以發現異常情況。一般只會找到一個在:「C:WindowsSystem32」目錄下的svchost.exe程序。如果你在其它目錄下發現svchost.exe程序的話,那很可能就是中毒了。

還有一種確認svchost.exe是否中毒的方法是在任務管理器中察看進程的執行路徑。但是由於在Windows系統自帶的任務管理器不能察看進程路徑,所以要使用第三方的進程察看工具。

上面簡單的介紹了svchost.exe進程的相關情況。總而言之,svchost.exe是一個系統的核心進程,並不是病毒進程。但由於 svchost.exe進程的特殊性,所以病毒也會千方百計的入侵svchost.exe。通過察看svchost.exe進程的執行路徑可以確認是否中毒。

3、Services.exe造成CPU使用率佔用100%

症狀 :

在基於 Windows 2000 的計算機上,Services.exe 中的 CPU 使用率可能間歇性地達到100 %,並且計算機可能停止響應(掛起)。出現此問題時,連接到該計算機(如果它是文件伺服器或域控制器)的用戶會被斷開連接。您可能還需要重新啟動計算機。如果 Esent.dll 錯誤地處理將文件刷新到磁碟的方式,則會出現此症狀。

解決方案

Service Pack 信息

要解決此問題,請獲取最新的 Microsoft Windows 2000 Service Pack。有關其它信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:

260910 如何獲取最新的 Windows 2000 Service Pack

修復程序信息

Microsoft 提供了受支持的修補程序,但該程序只是為了解決本文所介紹的問題。只有計算機遇到本文提到的特定問題時才可應用此修補程序。此修補程序可能還會接受其它一些測試。因此,如果這個問題沒有對您造成嚴重的影響,Microsoft 建議您等待包含此修補程序的下一個 Windows 2000 Service Pack。

要立即解決此問題,請與「Microsoft 產品支持服務」聯系,以獲取此修補程序。有關「Microsoft 產品支持服務」電話號碼和支持費用信息的完整列表,請訪問 Microsoft Web 站點:

注意 :特殊情況下,如果 Microsoft 支持專業人員確定某個特定的更新程序能夠解決您的問題,可免收通常情況下收取的電話支持服務費用。對於特定更新程序無法解決的其它支持問題和事項,將正常收取支持費用。

4、正常軟體造成CPU使用率佔用100%

首先,如果是從開機後就發生上述情況直到關機。那幺就有可能是由某個隨系統同時登陸的軟體造成的。可以通過運行輸入「msconfig」打開「系統實用配置工具」,進入「啟動」選項卡。接著,依次取消可疑選項前面的對鉤,然後重新啟動電腦。反復測試直到找到造成故障的軟體。或者可以通過一些優化軟體如「優化大師」達到上述目的。另:如果鍵盤內按鍵卡住也可能造成開機就出現上述問題。

如果是使用電腦途中出項這類問題,可以調出任務管理器(WINXP CTRL+ALT+DEL WIN2000 CTRL+SHIFT「ESC),進入」進程「選項卡,看」CPU「欄,從裡面找到佔用資源較高的程序(其中SYSTEM IDLE PROCESS是屬於正常,它的值一般都芨擼淖饔檬歉嫠叩鼻澳憧捎玫腃PU資源是多少,所以它的值越高越好)通過搜索功能找到這個進程屬於哪個軟體。然後,可以通過升級、關閉、卸載這個軟體或者乾脆找個同類軟體替換,問題即可得到解決。

5、病毒、木馬、間諜軟體造成CPU使用率佔用100%

出現CPU佔用率100% 的故障經常是因為病毒木馬造成的,比如震盪波病毒。應該首先更新病毒庫,對電腦進行全機掃描。接著,在使用反間諜軟體Ad—Aware,檢查是否存在間諜軟體。論壇上有不少朋友都遇到過svchost.exe佔用CPU100%,這個往往是中毒的表現。

svchost.exe Windows中的系統服務是以動態鏈接庫(DLL)的形式實現的,其中一些會把可執行程序指向svchost.exe,由它調用相應服務的動態鏈接庫並加上相應參數來啟動服務。正是因為它的特殊性和重要性,使它更容易成為了一些病毒木馬的宿主。

6、explorer.exe進程造成CPU使用率佔用100%

在system.ini文件中,在[BOOT]下面有個「shell=文件名」。正確的文件名應該是「explorer.exe」,如果不是 「explorer.exe」,而是「shell= explorer.exe 程序名」,那幺後面跟著的那個程序就是「木馬」程序,就是說你已經中「木馬」了。

在注冊表中的情況最復雜,通過regedit命令打開注冊表編輯器,在點擊至:「HKEY-LOCAL- 」目錄下,查看鍵值中有沒有自己不熟悉的自動啟動文件,擴展名為EXE,這里切記:有的「木馬」程序生成的文件很像系統自身文件,想通過偽裝矇混過關,如「Acid Battery v1.0木馬」,它將注冊表「HKEY-LOCAL- 」下的

Explorer 鍵值改為Explorer=「C:Windowsexpiorer.exe」,「木馬」程序與真正的Explorer之間只有「i」與「l」的差別。當然在注冊表中還有很多地方都可以隱藏「木馬」程序,如:「HKEY- CURRENT」、 「HKEYUSERS****」的目錄下都有可能,最好的辦法就是在「HKEYLOCAL」下找到「木馬」程序的文件名,再在整個注冊表中搜索即可。

7、超線程導致CPU使用率佔用100%

這類故障的共同原因就是都使用了具有超線程功能的P4 CPU。我查找了一些資料都沒有明確的原因解釋。據一些網友總結超線程似乎和天網防火牆有沖突,可以通過卸載天網並安裝其它防火牆解決,也可以通過在BIOS中關閉超線程功能解決。

8、AVI視頻文件造成CPU使用率佔用100%

在Windows XP中,單擊一個較大的AVI視頻文件後,可能會出現系統假死現象,並且造成exploere.exe進程的使用率100%,這是因為系統要先掃描該文件,並檢查文件所有部分,建立索引。如果文件較大就會需要較Zhang時間並造成CPU佔用率100%。解決方法:右鍵單擊保存視頻文件的文件夾,選擇」 屬性—>常規—>高級「,去掉」為了快速搜索,允許索引服務編制該文件夾的索引「前面復選框的對鉤即可。

9、殺毒軟體CPU使用率佔用100%

現在的殺毒軟體一般都加入了,對網頁、郵件、個人隱私的即時監空功能,這樣無疑會加大系統的負擔。比如:在玩游戲的時候,會非常緩慢。關閉該殺毒軟體是解決得最直接辦法。

10、處理較大的Word文件時CPU使用率過高

上述問題一般還會造成電腦假死,這些都是因為WORD的拼寫和語法檢查造成的,只要打開WORD的「工具—選項」,進入「拼寫和語法」選項卡,將其中的「鍵入時檢查拼寫」和「鍵入時檢查語法」兩項前面的復選框中的鉤去掉即可。

11、網路連接導致CPU使用率佔用100%

當你的Windows2000/xp作為伺服器時,收到來自埠445上的連接請求後,系統將分配內存和少量CPU資源來為這些連接提供服務,當負荷過重,就會出現上述情況。要解決這個問題可以通過修改注冊表來解決,打開注冊表,找到HKEY—LOCAL— ,在右面新建一個名為"; maxworkitems";的DWORD值.然後雙擊該值,如果你的電腦有512以上內存,就設置為";1024";,如果小於512,就設置為 256.
一些不完善的驅動程序也可以造成CPU使用率過高
經常使用待機功能,也會造成系統自動關閉硬碟DMA模式。這不僅會使系統性能大幅度下降,系統啟動速度變慢,也會使是系統在運行一些大型軟體和游戲時CPU使用率100%,產生停頓。

進程佔用CPU 100%時可能中的病毒

system Idle Process
進程文件: [system process] or [system process]
進程名稱: Windows內存處理系統進程
描 述: Windows頁面內存管理進程,擁有0級優先。
介 紹:該進程作為單線程運行在每個處理器上,並在系統不處理其它線程的時候分派處理器的時間。它的CPU佔用率越大表示可供分配的CPU資源越多,數字越小則表示CPU資源緊張。

Spoolsv.exe
進程文件: spoolsv or Spoolsv.exe
進程名稱: Printer Spooler Service
描 述: Windows列印任務控製程序,用以列印機就緒。
介 紹:緩沖(spooler)服務是管理緩沖池中的列印和傳真作業。
Spoolsv.exe→列印任務控製程序,一般會先載入以供列表機列印前的准備?

Ⅲ linux單進程如何實現多核cpu多線程分配

linux下的單進程多線程的程序,要實現每個線程平均分配到多核cpu,主要有2個方法


1:利用linux系統自己的線程切換機制,有一個服務叫做irqbalance,這個服務是linux系統自帶的,默認會啟動,這個服務的作用就是把多線程平均分配到CPU的每個核上面,只要這個服務不停止,多線程分配就可以自己實現。但是要注意,如果線程函數內部的有某個循環,且該循環內沒有任何系統調用的話,可能會導致這個線程的CPU時間無法被切換出去。也就是占滿CPU現象,此時加個系統調用,例如sleep,線程所佔的CPU時間就可以切換出去了。


2:利用pthread庫自帶的線程親和性設置函數,來設置線程在某個CPU核心上跑,這個需要在程序內部實現。同時注意不要和進程親和性設置搞混淆了

intpthread_setaffinity_np(pthread_tthread,size_tcpusetsize,
constcpu_set_t*cpuset);
intpthread_getaffinity_np(pthread_tthread,size_tcpusetsize,
cpu_set_t*cpuset);
從函數名以及參數名都很明了,唯一需要點解釋下的可能就是cpu_set_t這個結構體了。這個結構體的理解類似於select中的fd_set,可以理解為cpu集,也是通過約定好的宏來進行清除、設置以及判斷:
//初始化,設為空
voidCPU_ZERO(cpu_set_t*set);
//將某個cpu加入cpu集中
voidCPU_SET(intcpu,cpu_set_t*set);
//將某個cpu從cpu集中移出
voidCPU_CLR(intcpu,cpu_set_t*set);
//判斷某個cpu是否已在cpu集中設置了
intCPU_ISSET(intcpu,constcpu_set_t*set);

Ⅳ 如何在 Linux 上查找哪個線程cpu利用率最高

可以用 top 命令看
1.找出cpu耗用厲害的進程pid, 終端執行top命令,然後按下shift+p (shift+m是找出消耗內存最高)查找出cpu利用最厲害的pid號
2.根據上面第一步拿到的pid號,top -H -p pid 。然後按下shift+p,查找出cpu利用率最厲害的線程號,比如top -H -p 1328
3.將獲取到的線程號轉換成16進制,去網路轉換一下就行
4.使用jstack工具將進程信息列印輸出,jstack pid號 > /tmp/t.dat,比如jstack 31365 > /tmp/t.dat
5.編輯/tmp/t.dat文件,查找線程號對應的信息

Ⅳ 如何在Linux中查看進程的多線程

方法/步驟

問題: 我的程序在其內部創建並執行了多個線程,我怎樣才能在該程序創建線程後監控其中單個線程?我想要看到帶有它們名稱的單個線程詳細情況(如,CPU/內存使用率)。
線程是現代操作系統上進行並行執行的一個流行的編程方面的抽象概念。當一個程序內有多個線程被叉分出用以執行多個流時,這些線程就會在它們之間共享 特定的資源(如,內存地址空間、打開的文件),以使叉分開銷最小化,並避免大量高成本的IPC(進程間通信)通道。這些功能讓線程在並發執行時成為一個高 效的機制。
在Linux中,程序中創建的線程(也稱為輕量級進程,LWP)會具有和程序的PID相同的「線程組ID」。然後,各個線程會獲得其自身的線程 ID(TID)。對於Linux內核調度器而言,線程不過是恰好共享特定資源的標準的進程而已。經典的命令行工具,如ps或top,都可以用來顯示線程級 別的信息,只是默認情況下它們顯示進程級別的信息。
這里提供了在Linux上顯示某個進程的線程的幾種方式。

方法一:PS
在ps命令中,「-T」選項可以開啟線程查看。下面的命令列出了由進程號為<pid>的進程創建的所有線程。
1.$ ps -T -p <pid>

「SID」欄表示線程ID,而「CMD」欄則顯示了線程名稱。

方法二: Top
top命令可以實時顯示各個線程情況。要在top輸出中開啟線程查看,請調用top命令的「-H」選項,該選項會列出所有Linux線程。在top運行時,你也可以通過按「H」鍵將線程查看模式切換為開或關。
1.$ top -H

要讓top輸出某個特定進程<pid>並檢查該進程內運行的線程狀況:
$ top -H -p <pid>

方法三: Htop
一個對用戶更加友好的方式是,通過htop查看單個進程的線程,它是一個基於ncurses的交互進程查看器。該程序允許你在樹狀視圖中監控單個獨立線程。
要在htop中啟用線程查看,請開啟htop,然後按<F2>來進入htop的設置菜單。選擇「設置」欄下面的「顯示選項」,然後開啟「樹狀視圖」和「顯示自定義線程名」選項。按<F10>退出設置。

5
現在,你就會看到下面這樣單個進程的線程視圖。

Ⅵ 如何判斷linux下物理cpu數,核數以及是否支持超線程

# 總核數 = 物理CPU個數 X 每顆物理CPU的核數
# 總邏輯CPU數 = 物理CPU個數 X 每顆物理CPU的核數 X 超線程數

# 查看物理CPU個數
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

# 查看每個物理CPU中core的個數(即核數)
cat /proc/cpuinfo| grep "cpu cores"| uniq

# 查看邏輯CPU的個數
cat /proc/cpuinfo| grep "processor"| wc -l

轉自http://www.cnblogs.com/emanlee/p/3587571.html

如果物理cpu數×每cpu核數=邏輯cpu數則代表不支持超線程,反之則支持。

Ⅶ Nmon工具怎麼測試多線程的cpu使用率呢,搜了下全是進程,想知道線程怎

直接使用 ps Hh -eo pid,tid,pcpu | sort -nk3 |tail 獲取對於的進程號和線程號,然後跳轉到版3.
查看哪個進程線權程佔用cpu過高; top / ps -aux, 獲得進程號
確定哪個線程佔用cpu過高,進入進程號的目錄:/proc/pid/task,
執行:grep SleepAVG **/status | sort -k2,2 | head, 確定cpu佔用較高的線程號。
使用kill -3 pid 會列印線程堆棧的情況!

Ⅷ linux多線程下怎麼單步調試

方法一:PS
在ps命令中,「-T」選項可以開啟線程查看。下面的命令列出了由進程號為<pid>的進程創建的所有線程。
1.$ ps -T -p <pid>

「SID」欄表示線程ID,而「CMD」欄則顯示了線程名稱。

方法二: Top
top命令可以實時顯示各個線程情況。要在top輸出中開啟線程查看,請調用top命令的「-H」選項,該選項會列出所有Linux線程。在top運行時,你也可以通過按「H」鍵將線程查看模式切換為開或關。
1.$ top -H

要讓top輸出某個特定進程<pid>並檢查該進程內運行的線程狀況:
$ top -H -p <pid>

閱讀全文

與linuxcpu多線程測試相關的資料

熱點內容
專題學習網站源碼 瀏覽:163
jsphead什麼 瀏覽:88
gps串口數據怎麼發送 瀏覽:968
win10文件主頁共享查看 瀏覽:411
中國聯通有哪些app是免流的 瀏覽:176
邊做邊保存的文件找不到了 瀏覽:858
win10照片應用文件夾名稱 瀏覽:966
編程如何解決資金的原子性 瀏覽:638
如何製作廣角鏡頭矯正文件 瀏覽:513
在網頁開發中應該選用哪個資料庫 瀏覽:742
iphone5移動卡貼 瀏覽:990
電腦文件的格式 瀏覽:127
extjs的xtype 瀏覽:959
suse11iso文件要u盤安裝 瀏覽:153
如何將報表統計數據轉化為圖形 瀏覽:444
如何寄快遞材料文件 瀏覽:265
java構造方法private 瀏覽:475
手機文件找回恢復 瀏覽:516
word怎麼把u盤里的文件拔掉 瀏覽:976
港版蘋果用的插排 瀏覽:1000

友情鏈接