MySQL server hang on. No error log shown.
Check processes see that mysqld use about 30% (of 512MB RAM). CPU idle.
Show full processlist in >mysql show about 11 connection
ie:
+----+------+-----------------+------+---------+------+----------+------
| Id | User | Host | db | Command | Time | State | Info
+----+------+-----------------+------+---------+------+----------+------
| 87 | root | localhost | txp1 | Query | 0 | starting | show
| 88 | root | localhost:50190 | txp1 | Sleep | 3 | | NULL
| 89 | root | localhost:50192 | txp1 | Sleep | 3 | | NULL
+----+------+-----------------+------+---------+------+----------+------
Check processes see that mysqld use about 30% (of 512MB RAM). CPU idle.
Show full processlist in >mysql show about 11 connection
ie:
+----+------+-----------------+------+---------+------+----------+------
| Id | User | Host | db | Command | Time | State | Info
+----+------+-----------------+------+---------+------+----------+------
| 87 | root | localhost | txp1 | Query | 0 | starting | show
| 88 | root | localhost:50190 | txp1 | Sleep | 3 | | NULL
| 89 | root | localhost:50192 | txp1 | Sleep | 3 | | NULL
+----+------+-----------------+------+---------+------+----------+------
...
I guest this is the caused by MySQL refuse to run query and/or some query hang on.
Then I try connect half dozen of devices include iPhone, Android, Genymotion, PC ... to figure out how new DB connection made when new client access server.
When a machine (device) connect to server, via web I realize that It only create ONE connection to DB. When a mobile device connect to server, Server create few connection to DB.
When a number of connection reach, in my case default node-mysql is 11 connections, it hang on. No more connection created and server hang on.
So I guest that the limit of mysql-node connection caused server Node hang on.
Then I update config mysql add limit connection:
function db() {
/*
creating MySql database connection
*/
var con = mysql.createPool({
host : 'localhost',
user : 'root',
password : '******',
database : 'db_one',
port: 3306,
connectionLimit: 100
});
this.connection=con;
}
Then restart server and problem gone.
Comments
Post a Comment