當前位置:首頁 » 操作系統 » linuxmysqlcpu

linuxmysqlcpu

發布時間: 2022-08-15 11:20:24

Ⅰ 如何在linux系統中,查看某個進程中線程佔用cpu或內存等信息

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
3、查看CPU是幾核(即,核心數)
[root@MysqlCluster01 ~]# cat /proc/cpuinfo |grep "cores"|uniq
cpu cores : 4
4、查看CPU的主頻
[root@MysqlCluster01 ~]# cat /proc/cpuinfo |grep MHz|uniq
cpu MHz : 2499.982
5、當前操作系統內核信息
[root@MysqlCluster01 ~]# uname -a
Linux MysqlCluster01 2.6.32-431.20.3.el6.x86_64 #1 SMP Thu Jun 19 21:14:45 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
6、當前操作系統發行版信息
[root@MysqlCluster01 ~]# cat /etc/issue
CentOS release 6.4 (Final)
Kernel \r on an \m
7、內存使用情況
[root@MysqlCluster01 ~]# free -m
total used free shared buffers cached
Mem: 7863 2738 5125 0 141 835
-/+ buffers/cache: 1761 6102
Swap: 3967 0 3967

Ⅱ linux 伺服器mysql的CPU占的高是怎麼回事啊

先 找到 CPU 高的線程,如果 CPU 高的線程號一直在變,那可能不是單個 SQL 引起的 CPU 消耗,需要用其他方法來輔助分析。找到線程任務processlist 。
可以看到很多有用的信息:
1. 可以看到 processlist 中對應這根線程的信息
2. 可以找到其在 processlist 中的 ID,這樣我們就可以下 kill 命令來結束 SQL
小貼士:
使用 performance_schema 時,需要大家注意 MySQL 使用了多個線程編號,源自於不同視角:
1. PROCESSLIST_ID:在 processlist 中的編號,是使用者視角的編號,使用者可以直接用 kill 命令。
2. THREAD_ID:是 MySQL 內部使用的線程編號,是 MySQL 內部視角的編號。
3. THREAD_OS_ID:是在操作系統上,對應的線程編號,是操作系統視角的編號。
大家使用時需要區分好,不要 kill 錯了 SQL。
其他有用的信息,可以看到 SQL 執行的開始時間,正在使用了一張臨時磁碟表。
如果開啟了 performance_schema 的其他監控項,通過 Thread_ID 關聯,可以找到更多信息。
當然,眼下這么明顯的坑 SQL,我們 kill 掉就是了。

Ⅲ Linux上MySQL優化提升性能 哪些可以優化的關閉NUMA特性

Linux上MySQL優化提升性能,可以優化關閉NUMA特性如下:
這些其實都源於CPU最新的技術:節能模式。操作系統和CPU硬體配合,系統不繁忙的時候,為了節約電能和降低溫度,它會將CPU降頻。
為了保證MySQL能夠充分利用CPU的資源,建議設置CPU為最大性能模式。這個設置可以在BIOS和操作系統中設置,當然,在BIOS中設置該選項更好,更徹底。
然後我們看看內存方面,我們有哪些可以優化的。
i)
我們先看看numa
非一致存儲訪問結構
(NUMA

Non-Uniform
Memory
Access)
也是最新的內存管理技術。它和對稱多處理器結構
(SMP

Symmetric
Multi-Processor)
是對應的。
我們可以直觀的看到:SMP訪問內存的都是代價都是一樣的;但是在NUMA架構下,本地內存的訪問和非
本地內存的訪問代價是不一樣的。對應的根據這個特性,操作系統上,我們可以設置進程的內存分配方式。目前支持的方式包括:
--interleave=nodes
--membind=nodes
--cpunodebind=nodes
--physcpubind=cpus
--localalloc
--preferred=node
簡而言之,就是說,你可以指定內存在本地分配,在某幾個CPU節點分配或者輪詢分配。除非
是設置為--interleave=nodes輪詢分配方式,即內存可以在任意NUMA節點上分配這種方式以外。其他的方式就算其他NUMA節點上還有內
存剩餘,Linux也不會把剩餘的內存分配給這個進程,而是採用SWAP的方式來獲得內存。
所以最簡單的方法,還是關閉掉這個特性。
關閉特性的方法,分別有:可以從BIOS,操作系統,啟動進程時臨時關閉這個特性。
a)
由於各種BIOS類型的區別,如何關閉NUMA千差萬別,我們這里就不具體展示怎麼設置了。
b)
在操作系統中關閉,可以直接在/etc/grub.conf的kernel行最後添加numa=off,如下所示:
kernel
/vmlinuz-2.6.32-220.el6.x86_64
ro
root=/dev/mapper/VolGroup-root
rd_NO_LUKS.UTF-8
rd_LVM_LV=VolGroup/root
rd_NO_MD
quiet
SYSFONT=latarcyrheb-sun16
rhgb
crashkernel=auto
rd_LVM_LV=VolGroup/swap
rhgb
crashkernel=auto
quiet
KEYBOARDTYPE=pc
KEYTABLE=us
rd_NO_DM
numa=off
另外可以設置
vm.zone_reclaim_mode=0盡量回收內存。
c)
啟動MySQL的時候,關閉NUMA特性:
numactl
--interleave=all
mysqld
當然,最好的方式是在BIOS中關閉。
ii)
我們再看看vm.swappiness。
vm.swappiness是操作系統控制物理內存交換出去的策略。它允許的值是一個百分比的值,最小為0,最大運行100,該值默認為60。vm.swappiness設置為0表示盡量少swap,100表示盡量將inactive的內存頁交換出去。
具體的說:當內存基本用滿的時候,系統會根據這個參數來判斷是把內存中很少用到的inactive
內存交換出去,還是釋放數據的cache。

Ⅳ linux怎麼查看資料庫的cpu使用率

1.top使用許可權:所有使用者
使用方式:top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]
說明:即時顯示process的動態
d :改變顯示的更新速度,或是在交談式指令列( interactive command)按s
q :沒有任何延遲的顯示速度,如果使用者是有superuser的許可權,則top將會以最高的優先序執行
c :切換顯示模式,共有兩種模式,一是只顯示執行檔的名稱,另一種是顯示完整的路徑與名稱S :累積模式,會將己完成或消失的子行程( dead child process )的CPU time累積起來
s :安全模式,將交談式指令取消,避免潛在的危機
i :不顯示任何閑置(idle)或無用(zombie)的行程
n :更新的次數,完成後將會退出top
b :批次檔模式,搭配"n"參數一起使用,可以用來將top的結果輸出到檔案內

其他命令還有vmstat、mpstat、prstat、sar等等

Ⅳ linux下的 mysql 處理能力會比 windows下的mysql 快嗎

其實是差不太多,只是linux下面CPU的利用率會比windows高一點。

Ⅵ linux伺服器下mysql啟動慢,怎麼解決的相關推薦

0 先了解主機和資料庫的環境
#主機
內存多大,為了看有多少剩餘能為mysql留出多少來:free

資源使用情況,看負載情況,重點看空閑 CPU百分比(帶 xx% id):top
#mysql
看mysql數據文件多大: -c -s /var/lib/mysql

1 初步調整(最主要的)
# 配置mysql的innodb內存佔用,根據上邊結果中剩餘內存(取80%)增加 innodb_buffer_pool_size的值
# 配置mysql的其它內存使用和緩存使用情況,不要加的太大,主要是 sort_buffer_size, join_buffer_size, key_cache_size。
配置依據是:總內存 - OS系統預留 - max_connections * (sort_buffer_size + join_buffer_size + read_buffer_size + read_rnd_buffer_size + thread_statck ) - key_cache_size > 0

2 優化調整(屬於優化性能方面)
主要是以下幾方面:
連接等待隊列數 back_log
客戶端請求線程緩存數 thread_cache_size
表緩沖的數量 table_open_cache
臨時表的內存大小,用於group by的優化 tmp_table_size

innodb日誌緩沖大小 innodb_log_buffer_size
innodb能打開表的數量大小(庫里的表特別多時增加此項值) innodb_open_files

Ⅶ Linux系統下mysql運行慢,請給出分析方案!!

Linux 進程通過 C 標准庫中的內存分配函數 malloc 向系統申請內存,但是到真正與內核交互之間,其實還隔了一層,即內存分配管理器(memory allocator)。常見的內存分配器包括:ptmalloc(Glibc)、tcmalloc(Google)、jemalloc(FreeBSD)。MySQL 默認使用的是 glibc 的 ptmalloc 作為內存分配器。

目前 jemalloc 應用於 Firefox、FaceBook 等,並且是 MariaDB、Redis、Tengine 默認推薦的內存分配器,而 tcmalloc 則應用於 WebKit、Chrome 等。

Ⅷ 在linux安裝MySQL時採用源碼編譯安裝,但是如何讓MySQL的編譯時間縮短呢

可以試試在使用make && make install 時添加-j參數,不限制內核進行編譯安裝。或者-j 後加內核數 。例如 make -j 4 && make install -j 4
優點:速度快會相對提高很多
缺點:消耗大量CPU,內存資源。
我做過一個測試,如果不限定內核 (16核 80GB內存 )的伺服器編譯安裝mysql 5.0.7 安裝時長大致在10分鍾左右,但是測試時伺服器CPU跑滿100% ,內存消耗至少32GB。直接使用 make && make install 安裝耗時45分鍾,內存4GB ,CPU 10%左右。

熱點內容
ubuntuphpmcrypt 發布:2025-01-16 08:26:46 瀏覽:428
安卓圖片如何添加蘋果的水墨印 發布:2025-01-16 08:18:12 瀏覽:730
fmp腳本 發布:2025-01-16 08:12:23 瀏覽:230
nagios自定義腳本 發布:2025-01-16 08:09:52 瀏覽:364
安卓為什麼下不了方舟生存進化 發布:2025-01-16 08:02:32 瀏覽:194
如何登錄男朋友的微信密碼 發布:2025-01-16 07:41:14 瀏覽:194
寶駿解壓流程 發布:2025-01-16 07:35:35 瀏覽:2
兩匹壓縮機多少錢 發布:2025-01-16 07:29:19 瀏覽:635
個人pc搭建游戲伺服器 發布:2025-01-16 07:27:09 瀏覽:970
存儲剩餘照片 發布:2025-01-16 07:25:01 瀏覽:50