本文目錄一覽:
- 1、查看 mysql 為什麼使用cpu 100
- 2、mysql中如何查看是什麼佔用CPU內存
- 3、Mysql資料庫CPU佔用過高原因排查 show processlist
- 4、mysql如何查詢SQL中哪些語句執行最佔用CPU?
- 5、如何排查mysql cpu利用率高
查看 mysql 為什麼使用cpu 100
CPU佔用率高的九種可能
1、防殺毒軟體造成故障
由於新版的KV、金山、瑞星都加入了對網頁、插件、郵件的隨機監控,無疑增大了系統負擔。處理方式:基本上沒有合理的處理方式,盡量使用最少的監控服務吧,或者,升級你的硬體配備。
2、驅動沒有經過認證,造成CPU資源佔用100%
大量的測試版的驅動在網上泛濫,造成了難以發現的故障原因。處理方式:尤其是顯卡驅動特別要注意,建議使用微軟認證的或由官方發布的驅動,並且嚴格核對型號、版本。
3、病毒、木馬造成
大量的蠕蟲病毒在系統內部迅速複製,造成CPU佔用資源率據高不下。解決辦法:用可靠的殺毒軟體徹底清理系統內存和本地硬碟,並且打開系統設置軟體,察看有無異常啟動的程序。經常性更新升級殺毒軟體和防火牆,加強防毒意識,掌握正確的防殺毒知識。
4、控制面板-管理工具-服務-RISINGREALTIMEMONITORSERVICE點滑鼠右鍵,改為手動。
5、開始-運行-msconfig-啟動,關閉不必要的啟動項,重啟。
6、查看「svchost」進程。
svchost.exe是WindowsXP系統的一個核心進程。svchost.exe不單單只出現在WindowsXP中,在使用NT內核的Windows系統中都會有svchost.exe的存在。一般在Windows2000中svchost.exe進程的數目為2個,而在WindowsXP中svchost.exe進程的數目就上升到了4個及4個以上。
7、查看網路連接。主要是網卡。
8、查看網路連接
當安裝了WindowsXP的計算機做伺服器的時候,收到埠445上的連接請求時,它將分配內存和少量地調配CPU資源來為這些連接提供服務。當負荷過重的時候,CPU佔用率可能過高,這是因為在工作項的數目和響應能力之間存在固有的權衡關係。你要確定合適的MaxWorkItems設置以提高系統響應能力。如果設置的值不正確,伺服器的響應能力可能會受到影響,或者某個用戶獨佔太多系統資源。
要解決此問題,我們可以通過修改註冊表來解決:在註冊表編輯器中依次展開[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver]分支,在右側窗口中新建一個名為「maxworkitems」的DWORD值。然後雙擊該值,在打開的窗口中鍵入下列數值並保存退出:
如果計算機有512MB以上的內存,鍵入「1024」;如果計算機內存小於512MB,鍵入「256」。
9、看看是不是WindowsXP使用滑鼠右鍵引起CPU佔用100%
前不久的報到說在資源管理器裡面使用滑鼠右鍵會導致CPU資源100%佔用,我們來看看是怎麼回事?
徵兆:在資源管理器裡面,當你右鍵點擊一個目錄或一個文件,你將有可能出現下面所列問題。
任何文件的拷貝操作在那個時間將有可能停止響應。
網路連接速度將顯著性的降低。
所有的流輸入/輸出操作例如使用WindowsMediaPlayer聽音樂將有可能是音樂失真成因。
當你在資源管理器裡面右鍵點擊一個文件或目錄的時候,當快捷菜單顯示的時候,CPU佔用率將增加到100%,當你關閉快捷菜單的時候才返回正常水平。
解決方法:
方法一:關閉「為菜單和工具提示使用過渡效果」
1、點擊「開始」--「控制面板」
2、在「控制面板」裡面雙擊「顯示」
3、在「顯示」屬性裡面點擊「外觀」標籤頁
4、在「外觀」標籤頁裡面點擊「效果」
5、在「效果」對話框裡面,清除「為菜單和工具提示使用過渡效果」前面的複選框接著點擊兩次「確定」按鈕。
方法二:在使用滑鼠右鍵點擊文件或目錄的時候先使用滑鼠左鍵選擇你的目標文件或目錄。然後再使用滑鼠右鍵彈出快捷菜單。
mysql中如何查看是什麼佔用CPU內存
如何查看MySQL佔用的內存都用在哪了 1、查看物理CPU的個數 [root@MysqlCluster01 ~]# cat /proc/cpuinfo |grep 「physical id」|sort |uniq|wc -l 1 2、查看邏輯CPU的個數 [root@MysqlCluster01 ~]# cat /proc/cpuinfo |grep 「processor」|wc -l 4 …
Mysql資料庫CPU佔用過高原因排查 show processlist
mysql伺服器最近偶爾出現cpu百分百居高不下的情況,所以需要進行分析
兄弟命令 show processlist;只列出前100條,如果想全列出請使用show full processlist;
先 簡單說一下各列的含義和用途:
正在將表中修改的數據刷新到磁碟中,同時正在關閉已經用完的表。這是一個很快的操作,如果不是這樣的話,就應該確認磁碟空間是否已經滿了或者磁碟是否正處於重負中。
Connect Out
複製從伺服器正在連接主伺服器。
Copying to tmp table on disk
由於臨時結果集大於 tmp_table_size,正在將臨時表從內存存儲轉為磁碟存儲以此節省內存。
Creating tmp table
正在創建臨時表以存放部分查詢結果。
deleting from main table
伺服器正在執行多表刪除中的第一部分,剛刪除第一個表。
deleting from reference tables
伺服器正在執行多表刪除中的第二部分,正在刪除其他表的記錄。
Flushing tables
正在執行 FLUSH TABLES,等待其他線程關閉數據表。
Killed
發送了一個kill請求給某線程,那麼這個線程將會檢查kill標誌位,同時會放棄下一個kill請求。MySQL會在每次的主循環中檢查kill標誌 位,不過有些情況下該線程可能會過一小段才能死掉。如果該線程程被其他線程鎖住了,那麼kill請求會在鎖釋放時馬上生效。
Locked
被其他查詢鎖住了。
Sending data
正在處理 SELECT 查詢的記錄,同時正在把結果發送給客戶端。
Sorting for group
正在為 GROUP BY 做排序。
Sorting for order
正在為 ORDER BY 做排序。
Opening tables
這個過程應該會很快,除非受到其他因素的干擾。例如,在執 ALTER TABLE 或 LOCK TABLE 語句行完以前,數據表無法被其他線程打開。 正嘗試打開一個表。
Removing duplicates
正在執行一個 SELECT DISTINCT 方式的查詢,但是MySQL無法在前一個階段優化掉那些重複的記錄。因此,MySQL需要再次去掉重複的記錄,然後再把結果發送給客戶端。
Reopen table
獲得了對一個表的鎖,但是必須在表結構修改之後才能獲得這個鎖。已經釋放鎖,關閉數據表,正嘗試重新打開數據表。
Repair by sorting
修復指令正在排序以創建索引。
Repair with keycache
修復指令正在利用索引緩存一個一個地創建新索引。它會比 Repair by sorting 慢些。
Searching rows for update
正在講符合條件的記錄找出來以備更新。它必須在 UPDATE 要修改相關的記錄之前就完成了。
Sleeping
正在等待客戶端發送新請求.
System lock
正在等待取得一個外部的系統鎖。如果當前沒有運行多個 mysqld 伺服器同時請求同一個表,那麼可以通過增加 –skip-external-locking參數來禁止外部系統鎖。
U pgrading lock
INSERT DELAYED 正在嘗試取得一個鎖表以插入新記錄。
Updating
正在搜索匹配的記錄,並且修改它們。
User Lock
正在等待 GET_LOCK()。
Waiting for tables
該線程得到通知,數據表結構已經被修改了,需要重新打開數據表以取得新的結構。然後,為了能的重新打開數據表,必須等到所有其他線程關閉這個表。以下幾種 情況下會產生這個通知:FLUSH TABLES tbl_name, ALTER TABLE, RENAME TABLE, REPAIR TABLE, ANALYZE TABLE, 或 OPTIMIZE TABLE。
waiting for handler insert
INSERT DELAYED 已經處理完了所有待處理的插入操作,正在等待新的請求。
大部分狀態對應很快的操作,只要有一個線程保持同一個狀態好幾秒鐘,那麼可能是有問題發生了,需要檢查一下。
還有其他的狀態沒在上面中列出來,不過它們大部分只是在查看伺服器是否有存在錯誤是才用得著。
文章轉自:
mysql如何查詢SQL中哪些語句執行最佔用CPU?
mysql -u root -p之後,輸入show full processlist; 可以看到正在執行的語句
然後通過 EXPLAIN分析SQL語句
如何排查mysql cpu利用率高
MySQL處在高負載環境下,磁碟IO讀寫過多,肯定會佔用很多資源,必然CP會U佔用過高。
佔用CPU過高,可以做如下考慮:
1.打開慢查詢日誌,查詢是否是某個SQL語句佔用過多資源,如果是的話,可以對SQL語句進行優化,比如優化 insert 語句、優化 group by 語句、優化 order by 語句、優化 join 語句等等;
2.考慮索引問題;
3.定期分析表,使用optimize table;
4.優化資料庫對象;
5.考慮是否是鎖問題;
6.調整一些MySQL Server參數,比如key_buffer_size、table_cache、innodb_buffer_pool_size、innodb_log_file_size等等;
7.如果數據量過大,可以考慮使用MySQL集群或者搭建高可用環境。
原創文章,作者:DTNO,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/131022.html