[英]PHP - Persistant connections, too many connections
我有一個網站,隨時都有大約700-1000個用戶在線。 最近,我發現我的網站變得非常慢。 似乎存在某種瓶頸。
我當前的設置是我有一個index.php
頁面,該頁面處理我的所有子頁面。 設計是這樣的:
include_once($settings['incpath'].'_ify_database.php');
//Define the extra page levels.
$i = (isset($_GET['i']) ? inputFilter($_GET['i']) : 'h');
$xp = (isset($_GET['p']) ? inputFilter($_GET['p']) : null);
$xpp = (isset($_GET['n']) ? inputFilter($_GET['n']) : null);
switch($i){
case 'h': // Home
include($settings['themespath'].$config['active_theme'].'/indexheader.php');
include($settings['pagepath'].'home.php');
include($settings['themespath'].$config['active_theme'].'/indexfooter.php');
break;
}
這是我連接到數據庫( _ify_database.php
)的方式:
try {
$dsn = "mysql:host=" . $database['host'] . ";dbname=" . $database['db'];
$dbh = new PDO($dsn, $database['user'], $database['pass'], array(PDO::ATTR_PERSISTENT => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_SILENT));
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT); // <== add this line
}
catch(PDOException $e){
echo $e->getMessage();
}
如您所見,我將持久連接設置為false
:
PDO::ATTR_PERSISTENT => false
如果將其啟用為TRUE
,則加載時間會增加Too Many Connections
,但是一段時間后,我會收到“ Too Many Connections
錯誤。
我究竟做錯了什么? 如果網站上有500人,那它很快。 如果有900-1000,則是加載時間的兩倍。
限制來自php的最大持久連接數,或增加mysql中的限制。
ini_set('mysql.max_persistent','500');
ini_set('mysqli.max_persistent','500');
並在mysql文檔中發現了這一點,似乎與之相關: https : //dev.mysql.com/doc/refman/5.5/en/too-many-connections.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.