務(wù)器性能變慢 c盤temp文件夾存在大量sess開頭文件的問題原因

最近志文工作室所在的服務(wù)器經(jīng)常宕機(jī),而且重啟后也總是cpu占用率非常高,而一旦關(guān)閉iis則恢復(fù)正常。于是進(jìn)行了仔細(xì)地排查。當(dāng)在清理垃圾文件時(shí),發(fā)現(xiàn)c:\windows\temp文件夾中存在超級(jí)多以sess_開頭的文件,此類文件之多使得無(wú)法正常的打開temp文件夾和刪除清理

通過搜查找到了問題所在并進(jìn)行了解決,在此詳細(xì)記錄以供參考。

一、 temp文件夾大量文件的刪除

以sess開頭的存在于temp系統(tǒng)臨時(shí)文件夾的文件,是php的session保存文件,由于php建立了session卻在過期后沒有成功刪除,于是導(dǎo)致大量文件的積累。

清理方法很簡(jiǎn)單,新建批處理文件del_temp.bat,其中寫入如下命令:

復(fù)制代碼 代碼如下:

del %TEMP% /s /q?.

保存后雙擊運(yùn)行,即開始進(jìn)行刪除處理(也可直接在cmd命令行中輸入執(zhí)行)

你也可以將其加入開機(jī)啟動(dòng)項(xiàng),以使得每次重啟系統(tǒng)后即執(zhí)行一次刪除處理。

提示:

如果這里執(zhí)行一直顯示無(wú)法進(jìn)行(志文工作室最先遇到的情況即如此),則可能是temp文件夾及其中部分文件正處于使用狀態(tài),那么你可以在同目錄下新建一個(gè)文件夾tmp,然后修改系統(tǒng)環(huán)境變量temp和tmp的位置為此,接著重啟系統(tǒng)使得新的臨時(shí)目錄生效,此時(shí)即可對(duì)temp文件任意刪改了。

志文工作室的服務(wù)器temp文件夾內(nèi)存在數(shù)十萬(wàn)這樣的文件,清理了若干小時(shí)才完成。故在進(jìn)行處理前應(yīng)停止iis:

net stop iisadmin 關(guān)閉iis服務(wù)

net start iisadmin 開啟iis服務(wù)

當(dāng)然,你不希望在處理的過程中讓網(wǎng)站關(guān)閉如此之久,所以你應(yīng)依次進(jìn)行的操作是:

1>. 關(guān)閉iis

2>. 更改php保存session的默認(rèn)路徑(參考后面內(nèi)容)

3>. 開啟iis,檢查服務(wù)器所有站點(diǎn)是否正常

4>. 執(zhí)行del_temp.bat進(jìn)行清理

二、修改php的Session保存路徑session.save_path

打開php.ini文件,查找到

“;session.save_path = “/tmp””

將其修改為指定的位置用于存儲(chǔ)session,例如,志文工作室將其改為:

session.save_path = “c:/tmp/phpsession”

當(dāng)然你也可以使用分級(jí)目錄的方式,比如改為這樣:

session.save_path=“5;c:/tmp/phpsession”

關(guān)于session的分級(jí)目錄存放請(qǐng)參考后續(xù)內(nèi)容詳解

新建文件夾路徑:c:/tmp/phpsession

添加該路徑(即phpsession文件夾)的internet來(lái)賓賬戶修改和寫入權(quán)限,注意最好不要給予執(zhí)行權(quán)限。

啟動(dòng)iis,觀察該目錄是否會(huì)有新的session文件產(chǎn)生。

三、php的session多級(jí)目錄存放解決大量臨時(shí)文件效率問題

session多級(jí)存放可以緩解一個(gè)目錄下session文件過多帶來(lái)的讀寫效率問題。

php.net上針對(duì)sesstion配置相關(guān)的說(shuō)明:http://cn.php.net/manual/zh/ref.session.php

session.save_path string

session.save_path 定義了傳遞給存儲(chǔ)處理器的參數(shù)。如果選擇了默認(rèn)的 files 文件處理器,則此值是創(chuàng)建文件的路徑。默認(rèn)為 /tmp。參見 session_save_path()。

此指令還有一個(gè)可選的 N 參數(shù)來(lái)決定會(huì)話文件分布的目錄深度。例如,設(shè)定為 ‘5;/tmp’ 將使創(chuàng)建的會(huì)話文件和路徑類似于

/tmp/4/b/1/e/3 /sess_4b1e384ad74619bd212e236e52a5a174If

要使用 N 參數(shù),必須在使用前先創(chuàng)建好這些目錄。在 ext/session 目錄下有個(gè)小的 shell 腳本名叫 mod_files.sh 可以用來(lái)做這件事。此外注意如果使用了 N 參數(shù)并且 N 大于 0,那么將不會(huì)執(zhí)行自動(dòng)垃圾回收,更多信息見 php.ini。

另外如果用了 N 參數(shù),要確保將 session.save_path 的值用雙引號(hào) “quotes” 括起來(lái),因?yàn)榉指舴痔?hào)( ;)在 php.ini 中也是注釋符號(hào)。

文章來(lái)源:http://www.iis7.com/c/90/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容