mysql讀寫性能測試-調優案例參考


docker pull mysql:5.7
mkdir /data/mysql/logs /data/mysql/conf /data/mysql/data -p

 

docker run --name mysql5.7 -p 3306:3306 \
-m 2g \
-v /data/mysql/data:/var/lib/mysql -v /data/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

 

mysql -uroot -p123456 -h 172.17.0.1#因為mysql運行在docker里需要這樣登錄
不然報錯ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

mysql -uroot -p123456

yum install -y mysql


mysqlslap -a -c 500 -i 10 -uroot -p123456 -h 172.17.0.1

mysqlslap -a --concurrency=50,100 --number-of-queries 100 --iterations=5 --engine=myisam,innodb --debug-info -uroot -p123456 -h 172.17.0.1

mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --debug-info -uroot -p123456 -h 172.17.0.1

 顯示詳細過程的測試,如果報錯Option 'debug-info' used, but is disabled 請取消 debug-info參數

mysqlslap --concurrency=1000 --iterations=1 --auto-generate-sql --auto-generate-sql-add-autoincrement --auto-generate-sql-load-type=mixed \
--engine=myisam --number-of-queries=1000 --debug-info --only-print \
-uroot -p123456 -h 172.17.0.1

 

-concurrency代表並發數量,多個可以用逗號隔開,concurrency=10,50,100, 並發連接線程數分別是10、50、100個並發。
--engines代表要測試的引擎,可以有多個,用分隔符隔開。
--iterations代表要運行這些測試多少次。
--auto-generate-sql 代表用系統自己生成的SQL腳本來測試。
--auto-generate-sql-load-type 代表要測試的是讀還是寫還是兩者混合的(read,write,update,mixed)
--number-of-queries 代表總共要運行多少次查詢。每個客戶運行的查詢數量可以用查詢總數/並發數來計算。
--debug-info 代表要額外輸出CPU以及內存的相關信息。
--number-int-cols :創建測試表的 int 型字段數量
--auto-generate-sql-add-autoincrement : 代表對生成的表自動添加auto_increment列,從5.1.18版本開始
--number-char-cols 創建測試表的 char 型字段數量。
--create-schema 測試的schema,MySQL中schema也就是database。
--query 使用自定義腳本執行測試,例如可以調用自定義的一個存儲過程或者sql語句來執行測試。
--only-print 查看語句做了什么。

 

mysqlslap --concurrency=1000 --iterations=1 --auto-generate-sql --auto-generate-sql-add-autoincrement --auto-generate-sql-load-type=mixed \
--engine=myisam --number-of-queries=10000 --debug-info \
-uroot -p123456 -h 172.17.0.1

mysqlslap --concurrency=2000 --iterations=1 --auto-generate-sql --auto-generate-sql-add-autoincrement --auto-generate-sql-load-type=write \
--engine=myisam,innodb --number-of-queries=8000 --debug-info -uroot -p123456 -h 172.17.0.1

 遠程數據庫加自定義端口

mysql -uroot -p -h 172.17.0.1 -P 4345

4G內存不優化測試

[root@node62 ~]# vi /etc/my.cnf

max_connections=2000 #修改客戶端最大連接數不然報錯繁忙
[root@node62 ~]# systemctl restart mysqld

 

mysqlslap --concurrency=1000 --iterations=1 --auto-generate-sql --auto-generate-sql-add-autoincrement --auto-generate-sql-load-type=mixed \
--engine=myisam --number-of-queries=1000000 \
-uroot -p123456 

 

 

 

2000客戶端 10w數據測試報錯

優化打開數

查看用戶打開數

修改句柄

[root@node62 ~]# vi /etc/security/limits.conf

* soft nofile 65536
* hard nofile 65536

 

[root@node62 ~]# vi /etc/sysctl.conf
[root@node62 ~]# /sbin/sysctl -p
fs.file-max = 6553560

優化后測試10w數據

100w數據測試

 


tokudb參考

https://www.cnblogs.com/ivictor/p/5755876.html

安裝tokudb

https://yq.aliyun.com/articles/609881

參考
https://www.cnblogs.com/fjping0606/p/5853325.html #mysql讀寫性能測試

調優

https://www.cnblogs.com/double-K/p/5712334.html
https://blog.csdn.net/TNT_D/article/details/88049341
https://m.linuxidc.com/Linux/2015-04/116468.htm 

 唯品會docker容器化

https://juejin.im/entry/57d744af5bbb50005bcca4dd


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM