新聞中心
隨著Linux操作系統(tǒng)的不斷普及,越來越多的人開始使用它來完成各種任務(wù)。然而,隨著處理器性能的不斷提高,CPU溫度的升高也成為了一個問題。為了解決這個問題,CPU風(fēng)扇成為了必須的部件之一。然而,CPU風(fēng)扇也會帶來噪音問題。本文將介紹如何手動控制Linux CPU風(fēng)扇來同時提高性能和降低噪音。

1. 為什么需要手動控制CPU風(fēng)扇?
CPU風(fēng)扇的主要作用是通過將空氣引入機箱,將熱量從CPU散熱器中帶走。這是保持CPU溫度在安全范圍內(nèi)的關(guān)鍵。然而,當CPU溫度超過可承受的范圍時,風(fēng)扇就會增加轉(zhuǎn)速以散熱。這會增加噪音,因為風(fēng)扇越快就越嘈雜。
此外,很多CPU風(fēng)扇使用PWM(脈沖寬度調(diào)制)來控制風(fēng)扇的速度。這種方法可以根據(jù)CPU溫度動態(tài)調(diào)整速度。但是,Linux系統(tǒng)可能無法正確地讀取風(fēng)扇的PWM信號,導(dǎo)致風(fēng)扇始終以更高速度運轉(zhuǎn)。這會降低CPU性能,并增加噪音。
因此,手動控制CPU風(fēng)扇是一個很好的解決方案。這可以調(diào)整風(fēng)扇的速度以適應(yīng)不同的CPU負載和溫度,從而提高系統(tǒng)性能并減少噪音。
2. 設(shè)置CPU風(fēng)扇
在Linux上手動控制CPU風(fēng)扇需要幾個步驟。檢查Linux系統(tǒng)是否支持手動風(fēng)扇控制。這可以通過運行以下命令來實現(xiàn):
$ cat /sys/devices/platform/coretemp.0/hwmon/hwmon1/pwm1_enable
如果輸出為1,則代表系統(tǒng)支持手動控制CPU風(fēng)扇。否則,需要對系統(tǒng)進行一些設(shè)置,以使其支持風(fēng)扇控制。
第二步是確定您的CPU使用的是哪種風(fēng)扇。這可以通過運行以下命令來實現(xiàn):
$ cat /proc/cpuinfo | grep ‘model name’
該命令將返回CPU的詳細信息,其中包括風(fēng)扇型號。
接下來,使用以下命令將風(fēng)扇調(diào)整為手動控制模式:
$ echo 1 | sudo tee /sys/devices/platform/coretemp.0/hwmon/hwmon1/pwm1_enable
接下來,確定您的風(fēng)扇支持哪些PWM頻率。這可以通過運行以下命令來實現(xiàn):
$ cat /sys/class/hwmon/hwmon2/pwm1_max
該命令將返回風(fēng)扇的更大PWM頻率。通過此命令確定哪些頻率可以使用。
您可以使用以下命令來控制風(fēng)扇的轉(zhuǎn)速:
$ echo 100 | sudo tee /sys/class/hwmon/hwmon2/pwm1
此命令將風(fēng)扇的速度設(shè)置為100%,即更大速度。您可以根據(jù)您的需要調(diào)整頻率以控制風(fēng)扇的速度。
3. 結(jié)論
手動控制Linux CPU風(fēng)扇可以顯著提高系統(tǒng)性能并在不影響散熱的情況下降低噪音。通過使用上述命令,您可以輕松地調(diào)整風(fēng)扇的速度以適應(yīng)不同的CPU負載和溫度。這不僅使您能夠更好地控制系統(tǒng),還可以增強系統(tǒng)的穩(wěn)定性和可靠性。
相關(guān)問題拓展閱讀:
- 如何提高 linux cpu使用率
- 如何在Linux上得到CPU的工作速度
如何提高 linux cpu使用率
1.在系統(tǒng)維護的過程中,隨時可能有需要查看CPU使用率,并根據(jù)相應(yīng)信息分析系統(tǒng)狀況的需要。在CentOS中,可以通過top命令來查看CPU使用狀況。運行top命令后,CPU使用狀態(tài)會以全屏的方式顯示,并且會處在對話的模式–用基于top的命令,可以控制顯示方式等等。退出top的命令為q(在top運行中敲q鍵一次)。top命令是Linux下常用的性能分析工具,能夠?qū)崟r顯示系統(tǒng)中各個進程的資源占用狀況,類似于Windows的任務(wù)管理器 可以直接使用top命令后,查看%MEM的內(nèi)容??梢赃x擇按進程查看或者按用戶查看,如想查看oracle用戶的進程內(nèi)存使用情況的話可以使用如下的命令: $top-uoracle2.釋義:PID:進程的ID USER:進程所有者 PR:進程的優(yōu)先級別,越小越優(yōu)先被執(zhí)行 NInice:值 VIRT:進程占用的虛擬內(nèi)存 RES:進程占用的物理內(nèi)存 SHR:進程使用的共享內(nèi)存 S:進程的狀態(tài)。S表示休眠,R表示正在運行,Z表示僵死狀態(tài),N表示該進程優(yōu)先值為負數(shù) %CPU:進程占用CPU的使用率 %MEM:進程使用的物理內(nèi)存和總內(nèi)存的百分比 TIME+:該進程啟動后占用的總的CPU時間,即占用CPU使用時間的累加值?! OMMAND:進程啟動命令名稱3.操作實例: 在命令行中輸入“top” 即可啟動top top的全屏對話模式可分為3部分:系統(tǒng)信息欄、命令輸入欄、進程列表欄。 之一部分–最上部的系統(tǒng)信息欄: 之一行(top): “00:11:04”為系統(tǒng)當前時刻; “3:35”為系統(tǒng)啟動后到現(xiàn)在的運作時間; “2users”為當前登錄到系統(tǒng)的用戶,更確切的說是登錄到用戶的終端數(shù)–同一個用戶同一時間對系統(tǒng)多個終端的連接將被視為多個用戶連接到系統(tǒng),這里的用戶數(shù)也將表現(xiàn)為終端的數(shù)目; “l(fā)oadaverage”為當前系統(tǒng)負載的平均值,后面的三個值分別為1分鐘前、5分鐘前、15分鐘前進程的平均數(shù),一般的可以認為這個數(shù)值超過CPU數(shù)目時,CPU將比較吃力的負載當前系統(tǒng)所包含的進程; 第二行(Tasks): “59total”為當前系統(tǒng)進程總數(shù); “1running”為當前運行中的進程數(shù); “58sleeping”為當前處于等待狀態(tài)中的進程數(shù); “0stoped”為被停止的系統(tǒng)進程數(shù); “0zombie”為被復(fù)原的進程數(shù); 第三行(Cpus): 分別表示了CPU當前的使用率; 第四行(Mem): 分別表示了內(nèi)存總量、當前使用量、空閑內(nèi)存量、以及緩沖使用中的內(nèi)存量; 第五行(Swap): 表示類別同第四行(Mem),但此處反映著交換分區(qū)(Swap)的使用情況。通常,交換分區(qū)(Swap)被頻繁使用的情況,將被視作物理灶告悉內(nèi)存不足而造成的。友豎 第二部分–中間部分的內(nèi)部命令提示欄: top運行中可以通過top的內(nèi)部命令對進程的顯示方式進行控制。內(nèi)部命令如下表: s -改變畫面更新頻率 l-關(guān)閉或開啟之一部分之一行top信息的表示 t-關(guān)閉或開啟之一部分第二行Tasks和第三行Cpus信息的表示 m-關(guān)閉或開啟之一部分第四行Mem和第五行Swap信息的表示 N-以PID的大小的順序排列表示進程列表(第三部分后述) P-以CPU占用率大小的順序排列進程列表(第三部分后述) M-以內(nèi)存占用率大小的順序排列進程列表(第三部分后述) h-顯示幫助 n-設(shè)置在進程列表所顯示進程的數(shù)量 q-退出top s- 改變畫面更新周期 第三部分–最下部分的進程列表欄: 以PID區(qū)分的進程列表將根據(jù)所設(shè)定的畫面更新時間定期的更新。通過top內(nèi)部命令可以控制此處的顯示方式pmap可以根據(jù)進程查看進程相關(guān)信息占用的內(nèi)存情況,(進程號可以通過ps查隱乎看)如下所示: $pmap-d5647ps 如下例所示: $ps-e-o’pid,comm,args,pcpu,rsz,vsz,stime,user,uid’其中rsz是是實際內(nèi)存 $ps-e-o’pid,comm,args,pcpu,rsz,vsz,stime,user,uid’|greporacle|sort-nrk 其中rsz為實際內(nèi)存,上例實現(xiàn)按內(nèi)存排序,由大到小在Linux下查看內(nèi)存我們一般用free命令:#freetotalusedfreesharedbufferscachedMem:68236-/+buffers/cache:Swap:68116下面是對這些數(shù)值的解釋:total:總計物理內(nèi)存的大小。used:已使用多大。free:可用有多少。Shared:多個進程共享的內(nèi)存總額。Buffers/cached:磁盤緩存的大小。第三行(-/+buffers/cached):used:已使用多大。free:可用有多少。第四行就不多解釋了。區(qū)別:第二行(mem)的used/free與第三行(-/+buffers/cache)used/free的區(qū)別。這兩個的區(qū)別在于使用的角度來看,之一行是從OS的角度來看,因為對于OS,buffers/cached都是屬于被使用,所以他的可用內(nèi)存是16176KB,已用內(nèi)存是KB,其中包括,內(nèi)核(OS)使用+Application(X,oracle,etc)使用的+buffers+cached.第三行所指的是從應(yīng)用程序角度來看,對于應(yīng)用程序來說,buffers/cached是等于可用的,因為buffer/cached是為了提高文件讀取的性能,當應(yīng)用程序需在用到內(nèi)存的時候,buffer/cached會很快地被回收。所以從應(yīng)用程序的角度來說,可用內(nèi)存=系統(tǒng)freememory+buffers+cached。如上例:=16176+110652+接下來解釋什么時候內(nèi)存會被交換,以及按什么方交換。當可用內(nèi)存少于額定值的時候,就會開會進行交換。如何看額定值:cat/proc/meminfo#cat/proc/meminfoMemTotal:kBMemFree:17456kBBuffers:111328kBCached:kBSwapCached:0kBActive:467236kBInactive:kBHighTotal:0kBHighFree:0kBLowTotal:kBLowFree:17456kBSwapTotal:kBSwapFree:kBDirty:8kBWriteback:0kBMapped:345360kBSlab:112344kBCommitted_AS:535292kBPageTables:2340kBVmallocTotal:kBVmallocUsed:272696kBVmallocChunk:kBHugePages_Total:0HugePages_Free:0Hugepagesize:2023kB用free-m查看的結(jié)果:#free-mtotalusedfreesharedbufferscachedMem:2605-/+buffers/cache:Swap:查看/proc/kcore文件的大小(內(nèi)存鏡像):#ll-h/proc/kcore-rrootroot4.1GJun1212:04/proc/kcore備注:占用內(nèi)存的測量測量一個進程占用了多少內(nèi)存,linux為我們提供了一個很方便的方法,/proc目錄為我們提供了所有的信息,實際上top等工具也通過這里來獲取相應(yīng)的信息。/proc/meminfo機器的內(nèi)存使用信息/proc/pid/mapspid為進程號,顯示當前進程所占用的虛擬地址。/proc/pid/statm進程所占用的內(nèi)存#cat/proc/self/statm輸出解釋CPU以及CPU0。。。的每行的每個參數(shù)意思(以之一行為例)為:參數(shù)解釋/proc//statusSize(pages)任務(wù)虛擬地址空間的大小VmSize/4Resident(pages)應(yīng)用程序正在使用的物理內(nèi)存的大小VmRSS/4Shared(pages)共享頁數(shù)0Trs(pages)程序所擁有的可執(zhí)行虛擬內(nèi)存的大小VmExe/4Lrs(pages)被映像到任務(wù)的虛擬內(nèi)存空間的庫的大小VmLib/4Drs(pages)程序數(shù)據(jù)段和用戶態(tài)的棧的大?。╒mData+VmStk)4dt(pages)04查看機器可用內(nèi)存/proc/28248/>freetotalusedfreesharedbufferscachedMem:688-/+buffers/cache:Swap:70312我們通過free命令查看機器空閑內(nèi)存時,會發(fā)現(xiàn)free的值很小。這主要是因為,在linux中有這么一種思想,內(nèi)存不用白不用,因此它盡可能的cache和buffer一些數(shù)據(jù),以方便下次使用。但實際上這些內(nèi)存也是可以立刻拿來使用的。所以空閑內(nèi)存=free+buffers+cached=total-usedtop命令是Linux下常用的性能分析工具,能夠?qū)崟r顯示系統(tǒng)中各個進程的資源占用狀況,類似于Windows的任務(wù)管理器。下面詳細介紹它的使用方法。top-02:53:32up16days,6:34,17users,loadaverage:0.24,0.21,0.24Tasks:481total,3running,474sleeping,0stopped,4zombieCpu(s):10.3%us,1.8%sy,0.0%ni,86.6%id,0.5%wa,0.2%hi,0.6%si,0.0%stMem:ktotal,kused,41668kfree,383536kbuffersSwap:ktotal,7900kused,kfree,kcachedPIDUSERPRNIVIRTRESSHRS%CPU%MEMTIME+COMMAND32497jacky202369m222m31mR105.629:27.62firefox4788yiuwing202357m18m13mS50.55:42.44konsole5657Liuxiaof202385m159m30mS44.05:25.06firefox4455xiefc202342m124m30mR43.17:23.03firefox6188Liuxiaof202391m17m13mS40.50:01.16konsole統(tǒng)計信息區(qū)前五行是系統(tǒng)整體的統(tǒng)計信息。之一行是任務(wù)隊列信息,同uptime命令的執(zhí)行結(jié)果。其內(nèi)容如下:01:06:48當前時間up1:22系統(tǒng)運行時間,格式為時:分1user當前登錄用戶數(shù)loadaverage:0.06,0.60,0.48系統(tǒng)負載,即任務(wù)隊列的平均長度。三個數(shù)值分別為1分鐘、5分鐘、15分鐘前到現(xiàn)在的平均值。第二、三行為進程和CPU的信息。當有多個CPU時,這些內(nèi)容可能會超過兩行。內(nèi)容如下:Tasks:29total進程總數(shù)1running正在運行的進程數(shù)28sleeping睡眠的進程數(shù)0stopped停止的進程數(shù)0zombie僵尸進程數(shù)Cpu(s):0.3%us用戶空間占用CPU百分比1.0%sy內(nèi)核空間占用CPU百分比0.0%ni用戶進程空間內(nèi)改變過優(yōu)先級的進程占用CPU百分比98.7%id空閑CPU百分比0.0%wa等待輸入輸出的CPU時間百分比0.0%hi0.0%si最后兩行為內(nèi)存信息。內(nèi)容如下:Mem:191272ktotal物理內(nèi)存總量173656kused使用的物理內(nèi)存總量17616kfree空閑內(nèi)存總量22023kbuffers用作內(nèi)核緩存的內(nèi)存量Swap:192772ktotal交換區(qū)總量0kused使用的交換區(qū)總量192772kfree空閑交換區(qū)總量123988kcached緩沖的交換區(qū)總量。內(nèi)存中的內(nèi)容被換出到交換區(qū),而后又被換入到內(nèi)存,但使用過的交換區(qū)尚未被覆蓋,該數(shù)值即為這些內(nèi)容已存在于內(nèi)存中的交換區(qū)的大小。相應(yīng)的內(nèi)存再次被換出時可不必再對交換區(qū)寫入。進程信息區(qū)統(tǒng)計信息區(qū)域的下方顯示了各個進程的詳細信息。首先來認識一下各列的含義。序號列名含義aPID進程idbPPID父進程idcRUSERRealusernamedUID進程所有者的用戶ideUSER進程所有者的用戶名fGROUP進程所有者的組名gTTY啟動進程的終端名。不是從終端啟動的進程則顯示為?hPR優(yōu)先級iNInice值。負值表示高優(yōu)先級,正值表示低優(yōu)先級jP最后使用的CPU,僅在多CPU環(huán)境下有意義k%CPU上次更新到現(xiàn)在的CPU時間占用百分比lTIME進程使用的CPU時間總計,單位秒mTIME+進程使用的CPU時間總計,單位1/100秒n%MEM進程使用的物理內(nèi)存百分比oVIRT進程使用的虛擬內(nèi)存總量,單位kb。VIRT=SWAP+RESpSWAP進程使用的虛擬內(nèi)存中,被換出的大小,單位kb。qRES進程使用的、未被換出的物理內(nèi)存大小,單位kb。RES=CODE+DATArCODE可執(zhí)行代碼占用的物理內(nèi)存大小,單位kbsDATA可執(zhí)行代碼以外的部分(數(shù)據(jù)段+棧)占用的物理內(nèi)存大小,單位kbtSHR共享內(nèi)存大小,單位kbunFLT頁面錯誤次數(shù)vnDRT最后一次寫入到現(xiàn)在,被修改過的頁面數(shù)。wS進程狀態(tài)。D=不可中斷的睡眠狀態(tài)R=運行S=睡眠T=跟蹤/停止Z=僵尸進程xCOMMAND命令名/命令行yWCHAN若該進程在睡眠,則顯示睡眠中的系統(tǒng)函數(shù)名zFlags任務(wù)標志,參考sched.h默認情況下僅顯示比較重要的PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND列??梢酝ㄟ^下面的快捷鍵來更改顯示內(nèi)容。更改顯示內(nèi)容通過f鍵可以選擇顯示的內(nèi)容。按f鍵之后會顯示列的列表,按a-z即可顯示或隱藏對應(yīng)的列,最后按回車鍵確定。按o鍵可以改變列的顯示順序。按小寫的a-z可以將相應(yīng)的列向右移動,而大寫的A-Z可以將相應(yīng)的列向左移動。最后按回車鍵確定。按大寫的F或O鍵,然后按a-z可以將進程按照相應(yīng)的列進行排序。而大寫的R鍵可以將當前的排序倒轉(zhuǎn)。==============================top命令使用過程中,還可以使用一些交互的命令來完成其它參數(shù)的功能。這些命令是通過快捷鍵啟動的。<空格>:立刻刷新。P:根據(jù)CPU使用大小進行排序。T:根據(jù)時間、累計時間排序。q:退出top命令。m:切換顯示內(nèi)存信息。t:切換顯示進程和CPU狀態(tài)信息。c:切換顯示命令名稱和完整命令行。M:根據(jù)使用內(nèi)存大小進行排序。W:將當前設(shè)置寫入~/.toprc文件中。這是寫top配置文件的推薦方法??梢钥吹?,top命令是一個功能十分強大的監(jiān)控系統(tǒng)的工具,對于系統(tǒng)管理員而言尤其重要。但是,它的缺點是會消耗很多系統(tǒng)資源。應(yīng)用實例使用top命令可以監(jiān)視指定用戶,缺省情況是監(jiān)視所有用戶的進程。如果想查看指定用戶的情況,在終端中按“U”鍵,然后輸入用戶名,系統(tǒng)就會切換為指定用戶的進程運行界面。a.作用free命令用來顯示內(nèi)存的使用情況,使用權(quán)限是所有用戶。b.格式freec.主要參數(shù)-b-k-m:分別以字節(jié)(KB、MB)為單位顯示內(nèi)存使用情況。-sdelay:顯示每隔多少秒數(shù)來顯示一次內(nèi)存使用情況。-t:顯示內(nèi)存總和列。-o:不顯示緩沖區(qū)調(diào)節(jié)列。d.應(yīng)用實例free命令是用來查看內(nèi)存使用情況的主要命令。和top命令相比,它的優(yōu)點是使用簡單,并且只占用很少的系統(tǒng)資源。通過-S參數(shù)可以使用free命令不間斷地監(jiān)視有多少內(nèi)存在使用,這樣可以把它當作一個方便實時監(jiān)控器。#free-b-s5使用這個命令后終端會連續(xù)不斷地報告內(nèi)存使用情況(以字節(jié)為單位),每5秒更新一次。
如何在Linux上得到CPU的工作速度
對于多核的cpu
usleep 之后可能你的程序被遷移到另外一個cpu核心
你或許看看是否可以把你的程序綁定某個cpu核心
或者多瞎謹比較幾次,如果前后2次不在一個核上,就重新計算
cat /proc/cpuinfo 得到的肯定是正磨祥基確的,延時直接用usleep 應(yīng)該比你自己實現(xiàn)的好
如果內(nèi)核使用了CPU Frequency scaling,有可能宴亮主頻是會動態(tài)改變的。
linux 手動控制cpu轉(zhuǎn)速的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于linux 手動控制cpu轉(zhuǎn)速,手動控制Linux CPU風(fēng)扇:提高性能與降低噪音,如何提高 linux cpu使用率,如何在Linux上得到CPU的工作速度的信息別忘了在本站進行查找喔。
成都服務(wù)器托管選創(chuàng)新互聯(lián),先上架開通再付費。
創(chuàng)新互聯(lián)(www.cdcxhl.com)專業(yè)-網(wǎng)站建設(shè),軟件開發(fā)老牌服務(wù)商!微信小程序開發(fā),APP開發(fā),網(wǎng)站制作,網(wǎng)站營銷推廣服務(wù)眾多企業(yè)。電話:028-86922220
當前文章:手動控制Linux CPU風(fēng)扇:提高性能與降低噪音 (linux 手動控制cpu轉(zhuǎn)速)
分享鏈接:http://www.dlmjj.cn/article/djdidsj.html


咨詢
建站咨詢
