清完風扇以來,我的筆電一直很正常,不過這兩三天,我的筆電只要開著超過3小時,CPU溫度就飆到70多度,CPU使用率也都接近90%。於是就花了點時間,查查看要怎麼解決這個問題。不然連用個vim也會一直當,實在不是辦法啊。
首先,我先用
top
看一下,到底是哪一個程式佔著我的CPU資源不放。
由圖中,可以看到是chrome明顯吃著我的資源。可是沒道理,我之前連開個2 30個分頁,我的電腦還是一點事都沒有啊,這次我只開幾個分頁而已,就吃這麼多。此外,有一個Xorg的東西也佔著很多的資源,或許跟這個有關係。查了一下,才知道,原來Xorg這個東西和電腦顯示有關係。
https://wiki.ubuntu.com/X/Troubleshooting/HighCPU
High CPU loads will be noted under this condition especially when moving windows, scrolling in firefox, and when compiz is enabled. This is normal – you’re using the CPU to make up for the lack of GPU. Question is, where-for-art-thou GPU?
現在知道跟GPU有關係了,這是因為電腦拿一部分的CPU來跑GPU的東西,可這很沒道理啊,以前GPU就跑的好好的,沒事為什麼要花CPU資源= =
此外,實驗性的把chrome全部都關掉,電腦瞬間正常。可以更加確定是跟Xorg有關係。
Your system doesn’t use the driver for your videochip, but uses software rendering over llvmpipe, so your CPU is doing all the drawing work, instead of your GPU. This explains the slow rendering and high CPU usage. Have you tried to specify the driver for that chip in your xorg.conf?
所以,應該是跟GPU的driver有關係,可能driver換了,或者是miss了。接著,又查到這篇,
http://askubuntu.com/questions/28033/how-to-check-the-information-of-current-installed-video-drivers
Here is an easier solution, using GUI instead of command line. on the Ubuntu desktop, choose:
System Settings > Software and updates (in the bottom) -> Other drivers (the right most tab).
This is a list of your video driver’s information.
照著做,問題就解決了。回想一下,可能是我前幾天在重弄virtualbox的時候,灌了什麼東西,然後系統自動幫我switch到xorg這個open source的driver,所以才會產生這些問題。
補記 2016 1/1 新年第一篇
information by從恩
blog:
剛剛跟從恩討論一下,他說Xorg是一個diaplay server,也就是說firefox、gnome、libreoffice是client
,而server負責依應用程式需要把東西畫在螢幕上。之前出問題的時候,那時候的driver,應該是nouveau這個開源的driver,而後我切到nvidia自己的driver時,就沒有這個問題了。不過我剛剛又回去看了一下我目前的driver,似乎又回去nouveau,或許我最近chrome會卡卡的,也是跟這個有關係。
補個noveau的資訊
http://www.x.org/wiki/Projects/Drivers/
是個開源的driver,採用類似逆向工程的方式去做出來的。因為一般來說,driver都是由硬體廠商提供,當然就會跟他們自己出的硬體比較match,所以就是GPU render的。昨天我問從恩的時候,他說開源的driver因為是採用逆向工程的方式去做出來的,也就是摸黑硬幹出來的,所以對硬體的支援或許沒那麼好,也就會用到CPU render,或許這就是導致我CPU使用率爆衝的原因。
關於我:
我是沒一村,專長和興趣是程式、主動投資、科技商業模式。可以參考我的書單和比較熱門的文章:
Xorg是display server喔~~
系統裡負責畫圖的 driver會按照xorg的api做 你用到的開源driver應該叫nouveau 如果是nvidia顯卡
搞定囉