服務(wù)器性能變慢 c盤(pán)temp文件夾存在大量sess開(kāi)頭文件的問(wèn)題原因及解決
通過(guò)搜查找到了問(wèn)題所在并進(jìn)行了解決,在此詳細(xì)記錄以供參考。
一、 temp文件夾大量文件的刪除
以sess開(kāi)頭的存在于temp系統(tǒng)臨時(shí)文件夾的文件,是php的session保存文件,由于php建立了session卻在過(guò)期后沒(méi)有成功刪除,于是導(dǎo)致大量文件的積累。
清理方法很簡(jiǎn)單,新建批處理文件del_temp.bat,其中寫(xiě)入如下命令:
del %TEMP% /s /q *.*
保存后雙擊運(yùn)行,即開(kāi)始進(jìn)行刪除處理(也可直接在cmd命令行中輸入執(zhí)行)
你也可以將其加入開(kāi)機(jī)啟動(dòng)項(xiàng),以使得每次重啟系統(tǒng)后即執(zhí)行一次刪除處理。
提示:
1. 如果這里執(zhí)行一直顯示無(wú)法進(jìn)行(志文工作室最先遇到的情況即如此),則可能是temp文件夾及其中部分文件正處于使用狀態(tài),那么你可以在同目錄下新建一個(gè)文件夾tmp,然后修改系統(tǒng)環(huán)境變量temp和tmp的位置為此,接著重啟系統(tǒng)使得新的臨時(shí)目錄生效,此時(shí)即可對(duì)temp文件任意刪改了。
2. 志文工作室的服務(wù)器temp文件夾內(nèi)存在數(shù)十萬(wàn)這樣的文件,清理了若干小時(shí)才完成。故在進(jìn)行處理前應(yīng)停止iis:
net stop iisadmin 關(guān)閉iis服務(wù)
net start iisadmin 開(kāi)啟iis服務(wù)
3. 當(dāng)然,你不希望在處理的過(guò)程中讓網(wǎng)站關(guān)閉如此之久,所以你應(yīng)依次進(jìn)行的操作是:
1>. 關(guān)閉iis
2>. 更改php保存session的默認(rèn)路徑(參考后面內(nèi)容)
3>. 開(kāi)啟iis,檢查服務(wù)器所有站點(diǎn)是否正常
4>. 執(zhí)行del_temp.bat進(jìn)行清理
二、修改php的Session保存路徑session.save_path
1. 打開(kāi)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)容詳解
2. 新建文件夾路徑:c:/tmp/phpsession
3. 添加該路徑(即phpsession文件夾)的internet來(lái)賓賬戶(hù)修改和寫(xiě)入權(quán)限,注意最好不要給予執(zhí)行權(quán)限。
4. 啟動(dòng)iis,觀(guān)察該目錄是否會(huì)有新的session文件產(chǎn)生。
三、php的session多級(jí)目錄存放解決大量臨時(shí)文件效率問(wèn)題
session多級(jí)存放可以緩解一個(gè)目錄下session文件過(guò)多帶來(lái)的讀寫(xiě)效率問(wèn)題。
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。參見(jiàn) session_save_path()。
此指令還有一個(gè)可選的 N 參數(shù)來(lái)決定會(huì)話(huà)文件分布的目錄深度。例如,設(shè)定為 '5;/tmp' 將使創(chuàng)建的會(huì)話(huà)文件和路徑類(lèi)似于
/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)垃圾回收,更多信息見(jiàn) php.ini。
另外如果用了 N 參數(shù),要確保將 session.save_path 的值用雙引號(hào) “quotes” 括起來(lái),因?yàn)榉指舴痔?hào)( ;)在 php.ini 中也是注釋符號(hào)。
參考以上說(shuō)明,在定義session.save_path中可以定義多級(jí)存放的路徑,于是我們可以修改php.ini中的session.save_path為:
session.save_path = “2;/data/session_tmp”
如此將session文件分成兩級(jí)存放,即類(lèi)似于
/data/session_tmp/4/b/sess_4b1e384ad74619bd212e236e52a5a174If
取session的前兩位字符作為二級(jí)目錄索引,但是php并不生成目錄,需要自己手工生成,這里提供一個(gè)php腳本來(lái)生成初始的目錄。
<?php
$string = '0123456789abcdefghijklmnopqrstuvwxyz';
$length = strlen($string);
function makeDir($param)
{
if(!file_exists($param)) {
echo "mkdir ".$param."\n”;
exec("mkdir ".$param);
}
}
for($i = 0; $i < $length; $i++) {
for($j = 0; $j < $length; $j++) {
makeDir('/data/session_tmp/'.$string[$i].'/'.$string[$j]);
}
}
?>
session目錄分級(jí)處理之后,IO處理值增加,http進(jìn)程降低,web處理效率明顯好轉(zhuǎn)
相關(guān)參考
session.save_path目錄大量session臨時(shí)文件帶來(lái)的服務(wù)器效率問(wèn)題
http://wenku.baidu.com/view/b3921d8ea0116c175f0e484e.html
IIS PHP環(huán)境Temp文件夾的權(quán)限問(wèn)題引起的網(wǎng)站故障
http://chabaoo.cn/article/34301.htm
相關(guān)文章
Apache2與PHP5 for WinXP簡(jiǎn)單配置技巧
Apache2與PHP5 for WinXP簡(jiǎn)單配置技巧...2007-12-12
Windows下編譯安裝php擴(kuò)展eAccelerator教程
這篇文章主要介紹了Windows下編譯安裝php擴(kuò)展eAccelerator教程,本文不僅說(shuō)明如何在windows下編譯eAccelerator,同時(shí)也說(shuō)明了在windows下可以直接編寫(xiě)php擴(kuò)展,無(wú)須借助cygwin等等 ,需要的朋友可以參考下2015-01-01
iis7.5 gzip時(shí)有時(shí)無(wú)的解決方法
本文給大家分享的是如何解決win2008R2系統(tǒng)中IIS7.5啟用GZIP之后,壓縮時(shí)有時(shí)無(wú),一點(diǎn)都不穩(wěn)定的問(wèn)題,有需要的小伙伴可以參考下2017-04-04
Win10系統(tǒng)安裝MySQL8.0.13遇到的問(wèn)題及解決方法
這篇文章主要介紹了Win10系統(tǒng)安裝MySQL8.0.13遇到的問(wèn)題及解決方法,本文分步驟給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-11-11
WordPress在window2003 IIS ISAPI ReWrite下的URL規(guī)則
WordPress在window2003 IIS ISAPI ReWrite下的URL規(guī)則...2007-10-10
IIS設(shè)置404頁(yè)面圖文教程(選擇URL還是文件 )
在網(wǎng)站運(yùn)營(yíng)中,經(jīng)常會(huì)因?yàn)閮?nèi)容整理,網(wǎng)頁(yè)改版,造成原因的網(wǎng)頁(yè)刪除,丟失等,采用跳轉(zhuǎn)404頁(yè)能讓保留以消失網(wǎng)頁(yè)的流量,還能增加用戶(hù)體驗(yàn)2012-07-07
IIS6.0的默認(rèn)權(quán)限和用戶(hù)權(quán)限設(shè)置小結(jié)
網(wǎng)上高手整理的一些win服務(wù)器下,ntfs的權(quán)限設(shè)置2008-09-09
Win2003 手機(jī)站IIS MIME類(lèi)型設(shè)置大全
在手機(jī)軟件下載站越來(lái)越流行,由于手機(jī)軟件格式不同,當(dāng)下載cad,apk格式的文件時(shí)并不能直接下載,要想實(shí)現(xiàn)和普通軟件一樣的下載功能,需要在iis網(wǎng)站屬性mime類(lèi)型中進(jìn)行設(shè)置2014-11-11
windows+IIS 環(huán)境下以Fastcgi方式配置php 5.3.3的方法
需要在IIS6.0下配置PHP,由于php 5.3.3已經(jīng)不再支持isapi配置了,因此需采用fastcgi方式配置,下面分享一下我的配置過(guò)程。2010-12-12

