我有一個運行報表的PHP應用程序,並在90秒內向SQL服務器發出大約100萬次SQL查詢。在這段時間內,沒有其他人可以使用這個基於網絡的應用程序 - 蛋計時器正在滾動,但是直到報告超時或完成纔會加載。我在一個孤立的環境中測試了這個問題,只有我自己在那裏,在瀏覽器中運行報告,然後從其他瀏覽器窗口到此應用程序站點的任何操作都被掛起。php併發請求被卡住了?
對測試環境的一些細節:在IIS
Windows 2008 R2 x64 - IIS 7.5 - PHP 5.3.8 via FastCGI
Windows 2008 R2 x64 - SQL Server 2008 R2 x64
FastCGI的設置:
Instance MaxRequests = 200
Max Instances = 16
Activity Timeout = 70
Idle Timeout = 300
Queue Length = 1000
Rapid Fails PerMin = 10
Request Timeout = 90
每個SQL請求完成小於60毫秒的SQL服務器端。 Web服務器和SQL服務器的CPU負載均小於10%。運行報告時,Web服務器有16GB RAM和大約60%的RAM可用。
看來,PHP一直髮射了太多要求,SQL服務器,成爲太忙,無法處理其他請求。如果是這種情況,那麼應該有一些我可以調整來讓PHP處理更多的併發請求。
有誰知道嗎?請幫忙!
會話鎖定? –
出於好奇,您是否嘗試過通過完全不同的瀏覽器訪問網站(例如,使用Firefox for one和Chrome for another)。只是試圖排除這個想法,也許這只是你的會議被鎖定,而不是整個網站。使用不同的瀏覽器會導致創建多個會話。同一瀏覽器中的不同標籤會共享同一個會話。 –
查看[this](http://stackoverflow.com/questions/12070345/php-multiple-ajax-requests-first-request-block-second-request/12070517)問題。可能你有同樣的問題 –