一、安裝mysql5.7
安裝位置為/usr/local/mysql
二、安裝sysbench1.0
1、下載 sysbench1.0.17
wget https://codeload.github.com/akopytov/sysbench/tar.gz/1.0.17
2、解壓縮sysbench
3、安裝sysbench 所需依賴包
yum -y install make automake libtool pkgconfig libaio-devel vim-common
yum -y install mysql-devel
4、建立軟連接
ls -l /usr/local/mysql/lib/libmysqlclient.so.18*
?ln -s /usr/local/mysql/lib/libmysqlclient.so.18? /usr/lib/
5、vi /etc/ld.so.conf?
export LD_LIBRARY_PATH=/usr/local/mysql/lib
6、ldconfig
7、cd /soft/sysbench-1.0
1>./autogen.sh
2>./configure --with-mysql-includes=/usr/local/mysql/include --with-mysql-libs=/usr/local/mysql/lib
3> make
?4>make install
8、驗證是否安裝成功:sysbench --version
三、壓測MySQL數(shù)據(jù)庫
1、先在數(shù)據(jù)庫創(chuàng)建test庫
2、prepare 數(shù)據(jù)
sysbench /usr/share/sysbench/tests/include/oltp_legacy/oltp.lua
--mysql-host=127.0.0.1
--mysql-port=3306
--mysql-user=root
--mysql-password=root
--mysql-db=test
--db-driver=mysql
--oltp-test-mode=complex //執(zhí)行模式
--oltp-tables-count=32 //生成表的數(shù)量
--oltp-table-size=10000000 //每張表的數(shù)據(jù)條數(shù)
--threads=64 //客戶端的并發(fā)線程數(shù) 64,128,256
--time=120 //執(zhí)行時間為120秒
--report-interval=10 //每10秒生成一次報告
prepare
3、run
sysbench /usr/share/sysbench/tests/include/oltp_legacy/oltp.lua
--mysql-host=127.0.0.1
--mysql-port=3306
--mysql-user=root
--mysql-password=root
--mysql-db=test
--db-driver=mysql
--oltp-test-mode=complex //執(zhí)行模式
--oltp-tables-count=32 //生成表的數(shù)量
--oltp-table-size=10000000 //每張表的數(shù)據(jù)條數(shù)
--threads=64 //客戶端的并發(fā)線程數(shù)
--time=120 //執(zhí)行時間為120秒
--report-interval=10 //每10秒生成一次報告
run >> /soft/sysbench_threads64.log? //將日志輸出到文件
4、clean up
sysbench /usr/share/sysbench/tests/include/oltp_legacy/oltp.lua
--mysql-host=127.0.0.1
--mysql-port=3306
--mysql-user=root
--mysql-password=root
--mysql-db=test
--db-driver=mysql
--oltp-tables-count=10
cleanup
報錯:
FATAL: error 2001: Can't create UNIX socket (24)
FATAL: unable to connect to MySQL server, aborting...
FATAL: error 2001: Can't create UNIX socket (24)
FATAL: failed to connect to database server!
FATAL: thread#1021: failed to connect to database server, aborting...
[root@server170 ~]# ulimit -a
core file size????????? (blocks, -c) 0
data seg size?????????? (kbytes, -d) unlimited
file size?????????????? (blocks, -f) unlimited
pending signals???????????????? (-i) 1024
max locked memory?????? (kbytes, -l) 32
max memory size???????? (kbytes, -m) unlimited
open files????????????????????? (-n) 1024
pipe size??????????? (512 bytes, -p) 8
POSIX message queues???? (bytes, -q) 819200
stack size????????????? (kbytes, -s) 10240
cpu time?????????????? (seconds, -t) unlimited
max user processes????????????? (-u) 32767
virtual memory????????? (kbytes, -v) unlimited
file locks????????????????????? (-x) unlimited
[root@server170 ~]# ulimit -n 10240
[root@server170 ~]# ulimit -a
core file size????????? (blocks, -c) 0
(1) 解決思路:
而Linux內(nèi)核也會對 mysql 打開的進程數(shù)進行限制,并且優(yōu)先級要高。
通過 ulimit -a 查看 mysql 這個用戶的最大打開文件個數(shù),發(fā)現(xiàn)其值為 1024(linux 默認都是1024)。
open files????????????????????? (-n) 1024
通過修改 /etc/security/limits.conf 配置文件,添加如下行:
*??????????????? -?????? nofile????????? 4096,把該限制放大