簡體   English   中英

除了MySQL並發連接限制外,PHP / Apache在斷開連接方面是否發揮任何作用?

[英]Apart from MySQL concurrent connection limit, does PHP/Apache play any role on dropping connections?

如果MySQL在PHP應用程序中斷開連接,並且MySQL連接限制設置為高於應用程序中的並發用戶數,那么其他哪些因素也可能導致此行為? 另外,分析穆迪爾日志(在這些服務器上運行的唯一應用程序),昨天我的活動增加了4倍,並且它沒有掉線,但是今天有時候卻令人沮喪地斷開了連接。

我在這里的主要問題是,為什么數據庫在以前沒有活動的情況下拒絕連接,而活動卻增加了4倍(而且一切都是一樣的,我沒有在兩者之間進行任何更改)。

一些背景:我的托管服務器簽約了2台服務器:

  • 運行Debian Linux / PHP 5.3(FastCGI)的共享服務器
  • 運行Debian Linux / MySQL 5.1.39的VPS

在這種環境下,我僅運行情緒1.9.12(用於使用adoDB和持久連接的數據庫連接),共享服務器上的php部分,VPS上的數據庫。 我懷疑通過在共享服務器上運行的PHP,其他托管帳戶正在影響我(我的意思是數據庫拒絕連接,我真的不在乎RAM / CPU)。

閱讀我在一些地方看到的問題后,持久連接在PHP上作為CGI / FastCGI不能很好地工作,並且如果兩個服務器都在本地局域網中,那么由於連接而使用持久連接或不持久連接都沒關系無論如何都會很快。 所以現在我使用的不是持久連接。 我想這可能是問題的一部分,但我無法理解為什么它在更大的負載下工作。 這里涉及哪些PHP / Apache設置?

由於數據庫和Web服務器位於兩台不同的計算機上,因此還有其他兩種可能的原因:兩者之間的網絡以及操作系統的網絡層。

如果您沒有更改配置中的任何內容,並且以前曾在更高的負載下工作,則兩台計算機之間的網絡連接很有可能是一個問題。 由於數據庫機是VPS,因此您也不知道它正在處理多少實際網絡負載。 如果您的ISP有稱職的支持人員(不幸的是,情況並非總是如此),詢問他們是否有解釋就可以了。

您的“共享”網絡服務器也是如此。 盡管這不太可能,但這並非不可能是該計算機上的連接過多的問題。

這也有助於了解您如何精確地測量斷開的連接。 如果您正在查看mySQL的中止連接計數器,則不一定可以衡量實際問題: http : //dev.mysql.com/doc/refman/5.1/en/communication-errors.html 用戶已經中止頁面加載可能會增加此計數器。

如果PHP由於在查詢期間無法連接到服務器或失去與服務器的連接而引發錯誤,則一個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM