Php 如何减少MongoDB主&x27;系统调用(克隆)?
环境: 1,PHP5.5 2,mongodb 2.4.6,带replSet(一个主要版本和五个次要版本) 3,pecl mongo 1.5.4 4、具有readPreference的php数据库配置:Php 如何减少MongoDB主&x27;系统调用(克隆)?,php,mongodb,system-calls,Php,Mongodb,System Calls,环境: 1,PHP5.5 2,mongodb 2.4.6,带replSet(一个主要版本和五个次要版本) 3,pecl mongo 1.5.4 4、具有readPreference的php数据库配置: array( 'database' => 'mydatabase', 'server' => 'mongodb://mongo1:27017,mongo2:27017,mongo3:27017,mongo4:27017,mongo5:27017,mongo6:
array(
'database' => 'mydatabase',
'server' => 'mongodb://mongo1:27017,mongo2:27017,mongo3:27017,mongo4:27017,mongo5:27017,mongo6:27017/?readPreference=secondary',
'options' => array('replicaSet' => 'myreplica'),
'profiling' => FALSE,
),
5、mongostats:
mognodb primary (mongostats): 5000-20000 command 10-50 update
mongodb secondary (mongostats): 1000-1800 command 1000-4000 query
我发现主节点负载很高,然后我发现使用strace-c-p进行了大量系统调用(克隆)
如何减少系统调用(克隆)
php驱动程序是否使用连接池?建立了多少个连接,根据
mongod
?-它看起来像:-php连接mongodb主要使用短连接,-php连接mongodb次要使用长连接netstat-n | grep已建立| grep 10.10.54.11:27017 | wc-l200
-10.10.21.66是mongodb主要解决方案| 10.10.54.11是mongodb次要解决方案!因为PHPer调用MongoClient::close,所以它不正确。php驱动程序是否使用连接池?建立了多少个连接,根据mongod
?-它看起来像:-php连接mongodb主要使用短连接,-php连接mongodb次要使用长连接netstat-n | grep已建立| grep 10.10.54.11:27017 | wc-l200
-10.10.21.66是mongodb主要解决方案| 10.10.54.11是mongodb次要解决方案!因为PHPer调用MongoClient::close,所以它是不正确的。
# strace -c -p 3004
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
53.80 0.020932 6 3687 clone
13.80 0.005368 1 7374 getsockopt
13.15 0.005116 1 7374 setsockopt
7.90 0.003072 1 3688 select
6.13 0.002385 1 3687 getrlimit
5.23 0.002033 1 3687 accept
0.00 0.000000 0 111 mmap
0.00 0.000000 0 111 mprotect
0.00 0.000000 0 14 6 futex
------ ----------- ----------- --------- --------- ----------------
100.00 0.038906 29733 6 total