注:mongo實例 沒有用副本集 直接用的mongod
-
搭建環(huán)境
目錄 : /data/db
cd /data/db
mkdir 10001 20001 27017 27018 keyfile
10001 config配置目錄
20001 mongos配置目錄
27017 mongod 實例配置目錄
27018 mongod 實例配置目錄
keyfile 放openssl生成的key1. 啟動mongoldb config /data/home/user00/playcrab/usr/mongodb/bin/mongod --smallfiles --fork --port 10001 --dbpath=10001 --logpath=10001/mongo.log --configsvr 2.啟動mongoldb mongos /data/home/user00/playcrab/usr/mongodb/bin/mongos --fork --port 20001 --logpath=20001/mongo.log --configdb=192.168.5.207:10001 3.啟動mongoldb mongo /data/home/user00/playcrab/usr/mongodb/bin/mongod --fork --port 27017 --logpath=27017/mongo.log --dbpath=27017 /data/home/user00/playcrab/usr/mongodb/bin/mongod --fork --port 27018 --logpath=27018/mongo.log --dbpath=27018/ 進入mongos 創(chuàng)建管理權(quán)限 /data/home/user00/playcrab/usr/mongodb/bin/mongo 192.168.5.207:20001 命令 db.createUser({user:"qxy",pwd:"qxy",roles:[{role:"root",db:"admin"}]}) db.createUser({user:”testUser",pwd:"testUser", roles: [{role:"readWrite",db:”war_9991"}]}) 進入兩個mongo 創(chuàng)建管理權(quán)限 /data/home/user00/playcrab/usr/mongodb/bin/mongo 192.168.100.7:27017 db.createUser({user:"qxy",pwd:"qxy",roles:[{role:"root",db:"admin"}]}) db.createUser({user:”testUser",pwd:"testUser", roles: [{role:"readWrite",db:”war_9991"}]}) /data/home/user00/playcrab/usr/mongodb/bin/mongo 192.168.100.7:27018 db.createUser({user:"qxy",pwd:"qxy",roles:[{role:"root",db:"admin"}]}) db.createUser({user:”testUser2",pwd:"testUser2", roles: [{role:"readWrite",db:”war_9992"}]}) 將mongod,mongos 進程全部殺掉 開啟鑒權(quán) openssl rand -base64 755 > keyfile/mongodb-keyfile chmod 600 keyfile/mongodb-keyfile 啟動開啟鑒權(quán)的命令 /data/home/user00/playcrab/usr/mongodb/bin/mongod --smallfiles --fork --port 10001 --dbpath=10001 --logpath=10001/mongo.log --configsvr --keyFile=keyfile/mongodb-keyfile --auth /data/home/user00/playcrab/usr/mongodb/bin/mongos --fork --port 20001 --logpath=20001/mongo.log --configdb=192.168.5.207:10001 --keyFile=keyfile/mongodb-keyfile /data/home/user00/playcrab/usr/mongodb/bin/mongod --fork --port 27017 --logpath=27017/mongo.log --dbpath=27017 --keyFile=keyfile/mongodb-keyfile /data/home/user00/playcrab/usr/mongodb/bin/mongod --fork --port 27018 --logpath=27018/mongo.log --dbpath=27018 --keyFile=keyfile/mongodb-keyfile 命令行連接: /data/home/user00/playcrab/usr/mongodb/bin/mongo 192.168.5.207:20001 -uqxy -pqxy --authenticationDatabase admin
測試:
兩臺機器 php-fpm各開500個進程 192.168.100.6 192.168.100.7
8.php程序文件 里面執(zhí)行的程序是 對數(shù)據(jù)庫讀一次寫一次
通過ab壓測
壓測直連mongo
ab -c 2000 -n 2000 http://192.168.100.6:8001/demo/8.php 連續(xù)壓測3次 300左右處理

image.png
壓測連接mongos
ab -c 2000 -n 2000 http://192.168.100.7:8001/demo/8.php 連續(xù)壓測3次 600左右測試

image.png
正常2臺機器的所有php-fpm去連接mongos 下面的連接數(shù)
mongos的連接數(shù)

image.png
mongod的連接數(shù)

image.png
在高并發(fā)的壓測下
mongos的連接數(shù)

image.png
mongod的連接數(shù) 反復(fù)壓測 這個值不變的

image.png
20分鐘左右,mongod的連接數(shù) 會降下去

image.png