程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> mysql -參數thread_cache_size優化方法 小結

mysql -參數thread_cache_size優化方法 小結

編輯:關於MYSQL數據庫

說明:
根據調查發現以上服務器線程緩存thread_cache_size沒有進行設置,或者設置過小,這個值表示可以重新利用保存在緩存中線程的數量,當斷開連接時如果緩存中還有空間,那麼客戶端的線程將被放到緩存中,如果線程重新被請求,那麼請求將從緩存中讀取,如果緩存中是空的或者是新的請求,那麼這個線程將被重新創建,如果有很多新的線程,增加這個值可以改善系統性能.通過比較 Connections 和 Threads_created 狀態的變量,可以看到這個變量的作用。(-->表示要調整的值) 根據物理內存設置規則如下:
1G ---> 8
2G ---> 16
3G ---> 32
>3G ---> 64
優化方法:
1、mysql> set global thread_cache_size=16
2、編輯/etc/my.cnf 更改/添加
--------
thread_concurrency = 16
--------

1、MySQL服務器的線程數查看方法:

show  global status like 'Thread%';

Threads_created:創建過的線程數,如果發現Threads_created值過大的話,表明MySQL服務器一直在創建線程,這也是比較耗資源,可以適當增加配置文件中thread_cache_size值

2、優化參數thread_cache_size

thread_cache_size:當客戶端斷開之後,服務器處理此客戶的線程將會緩存起來以響應下一個客戶而不是銷毀(前提是緩存數未達上限)

即可以重新利用保存在緩存中線程的數量,當斷開連接時如果緩存中還有空間,那麼客戶端的線程將被放到緩存中,如果線程重新被請求,那麼請求將從緩存中讀取,如果緩存中是空的或者是新的請求,那麼這個線程將被重新創建,如果有很多新的線程,增加這個值可以改善系統性能。

thread_cache_size大小的設置:

如果是短連接,適當設置大一點,因為短連接往往需要不停創建,不停銷毀,如果大一點,連接線程都處於取用狀態,不需要重新創建和銷毀,所以對性能肯定是比較大的提升。
對於長連接,不能保證連接的穩定性,所以設置這參數還是有一定必要,可能連接池的問題,會導致連接數據庫的不穩定性,也會出現頻繁的創建和銷毀,但這個情況比較少,如果是長連接,可以設置成小一點,一般在50-100左右。

物理內存設置規則:通過比較Connections 和 Threads_created 狀態的變量,可以看到這個變量的作用。(-->表示要調整的值)   根據物理內存設置規則如下:

     1G  ---> 8
     2G  ---> 16
     3G  ---> 32
    >3G  ---> 64

查詢thread_cache_size設置

show global status like'thread_cache_size';

優化方法:

1、mysql> set global thread_cache_size=16
2、編輯/etc/my.cnf 更改/添加
thread_concurrency = 16

3、mysql kill線程

mysqladmin start slave stop slave kill某個連接到mysqlServer的線程

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved