快速增加MYSQL數(shù)據(jù)庫連接數(shù)負(fù)載能力的方法分享
第一先限制Innodb的并發(fā)處理.如果innodb_thread_concurrency = 0 可以先改成 16或是64 看機器壓力,如果
非常大,先改成16讓機器的壓力下來,然后慢慢增達(dá),適應(yīng)自已的業(yè)務(wù).
處理方法: set global innodb_thread_concurrency=16;
方法一: (window系統(tǒng)中可直接修改my.ini文件)
進(jìn)入MYSQL安裝目錄 打開MYSQL配置文件 my.ini 或 my.cnf查找 max_connections=100 修改為 max_connections=1000 服務(wù)里重起MYSQL即可
方法二: (在mysql命令模式下)
對于連接數(shù)已經(jīng)超過600或是更多的情況,可以考慮適當(dāng)?shù)南拗埔幌逻B接數(shù),讓前端報一下錯,也別讓DB掛了.
DB在了,總是可以用來加載一下數(shù)據(jù),當(dāng)數(shù)據(jù)加載到了nosql里了,慢慢的DB壓力也會降下來的.
限制單用戶連接數(shù)在500以下. 如:
set global max_user_connections=500;
(MySQL隨著連接數(shù)的增加性能會是下降的,這也是thread_pool出現(xiàn)的原因)
另外對于有的監(jiān)控程序會讀取information_schema下面的表的程序可以考慮關(guān)閉下面的參數(shù)
innodb_stats_on_metadata=0
set global innodb_stats_on_metadata=0;
方法
MySQL的最大連接數(shù)默認(rèn)是100客戶端登錄:mysql -uusername -ppassword
設(shè)置新的最大連接數(shù)為200:mysql> set GLOBAL max_connections=200
顯示當(dāng)前運行的Query:mysql> show processlist
顯示當(dāng)前狀態(tài):mysql> show status
退出客戶端:mysql> exit
查看當(dāng)前最大連接數(shù):mysqladmin -uusername -ppassword variables
這個參數(shù)主要防止對讀取information_schema時造成大量讀取磁盤進(jìn)行信息統(tǒng)計(如果慢查詢中出現(xiàn)關(guān)于information_schema中表時,也可以考慮禁用該參數(shù))
處理依據(jù):
當(dāng)學(xué)校的一個食堂一分鐘只能為兩個打飯, 忽然來了100個時人來打飯,又沒排隊, 不出會現(xiàn)了打飯的師傅要用點時間
去選擇為那個用戶服務(wù)了, 人越多,場面就越亂, 難免出現(xiàn)用戶大吼該他的場面, 最后有可能就出現(xiàn)不是打飯了,而時之間相互
打架了,打飯的師傅也將收到同時有90個以上的Server too busy. 如果能排一下隊.最多也就50分鐘能處理完了
方法三: (linux中得新編譯mysql)
以centos 4.4 下面的mysql 5.0.33 手工編譯版本為例說明:
vi /usr/local/mysql/bin/mysqld_safe
找到safe_mysqld編輯它,找到mysqld啟動的那兩行,在后面加上參數(shù):
-O max_connections=1500
具體一點就是下面的位置:
用紅字特別說明:
then $NOHUP_NICENESS $ledir/$MYSQLD
$defaults --basedir=$MY_BASEDIR_VERSION
--datadir=$DATADIR $USER_OPTION
--pid-file=$pid_file
--skip-external-locking
-O max_connections=1500
>> $err_log 2>&1 else
eval "$NOHUP_NICENESS $ledir/$MYSQLD
$defaults --basedir=$MY_BASEDIR_VERSION
--datadir=$DATADIR $USER_OPTION
--pid-file=$pid_file
--skip-external-locking $args
-O max_connections=1500 >>
$err_log 2>&1"
保存。
# service mysqld restart
# /usr/local/mysql/bin/mysqladmin -uroot -p variables
輸入root數(shù)據(jù)庫賬號的密碼后可看到
max_connections 1500 即新改動已經(jīng)生效。
- 詳解Mysql雙機熱備和負(fù)載均衡的實現(xiàn)步驟
- 利用MySQL系統(tǒng)數(shù)據(jù)庫做性能負(fù)載診斷的方法
- MySQL如何實現(xiàn)負(fù)載均衡功能
- 如何使用nginx充當(dāng)mysql的負(fù)載均衡器
- 在OneProxy的基礎(chǔ)上實行MySQL讀寫分離與負(fù)載均衡
- 基于mysql+mycat搭建穩(wěn)定高可用集群負(fù)載均衡主備復(fù)制讀寫分離操作
- python實現(xiàn)mysql的讀寫分離及負(fù)載均衡
- Keepalived+HAProxy實現(xiàn)MySQL高可用負(fù)載均衡的配置
- 分析MySQL中索引引引發(fā)的CPU負(fù)載飆升的問題
- 具有負(fù)載均衡功能的MySQL服務(wù)器集群部署及實現(xiàn)
- mysql CPU高負(fù)載問題排查
相關(guān)文章
windows下mysql 5.7.20 安裝配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了windows下mysql 5.7.20 安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-09-09