2012-04-18 105 views
2

好的,請原諒我可能在這裏很厚或者我對StackOverflow的研究不足,但是目前面臨壓力讓服務器穩定下來以便研究各種選項。硬盤上的舊PHP會話文件

我們注意到我們的服務器(Windows 2008/IIS7)tmp文件夾有一百萬個會話文件(垃圾收集似乎沒有工作),所以這可能導致我的PHP網站加載時間的問題,至於過去2/3周我注意到了負載問題。

我的理論是,當PHP創建一個會話並想閱讀它時,它必須通過百萬條記錄才能找到我的會話。

任何想法,很高興被告知我的理論是完全廢話。


UPDATE到目前爲止
結算超過一百萬的會話文件似乎已經減少了對硬盤和PHP網站的壓力似乎比以前更加敏感。等待負載增加,看看這些會話文件是否導致最初的問題。

+0

那麼,刪除死人不會讓它變慢,所以...刪除它們,看看會發生什麼? – 2012-04-18 17:51:30

回答

1

由於這是一個I/O操作,它會在訪問tmp目錄中的會話時變慢。檢查你的PHP INI設置http://php.net/manual/en/session.configuration.php#ini.session.gc-maxlifetime

只見問上serverfault檢查 https://serverfault.com/questions/373024/php-processes-run-one-at-a-time-always-taking-100-of-one-core

+0

Hey PoX,默認值爲1440s(24分鐘)。 就我個人而言,我不認爲它正在被採取行動。 session.save_path被設置爲C:\ windows \ temp,所以它應該從那裏刪除也是正確的? – PHPology 2012-04-18 18:35:25

+1

我認爲你正在運行PHP作爲Fastcgi和你看到的問題是類似於這個 PoX 2012-04-18 18:46:14

+0

Hey PoX,是它的FastCGI設置和刪除舊會話似乎已經造成了巨大的差異 – PHPology 2012-04-19 09:58:07

0

PHP 5.4提供了一個sessionhandler類來擴展類似的問題,這樣的會議可以存儲在一個鍵值擴展,數據庫或什麼的。對於較老的PHP版本,也有類似的功能。

如果會話似乎是一個瓶頸,這應該被考慮。