頻道欄目
首頁 > 程序開發 > Web開發 > php > 正文
php session阻塞頁面分析及優化教程+session_write_close session_commit使用講解
2018-07-24 15:56:38         來源:c8621的博客  
收藏   我要投稿

php 開發時一個啟用了session_start()頁面,由于執行時間過長,導致如果一個用戶在訪問,另一個用戶啟用session_start()的時候處于阻塞狀態。

直到第一個用戶完畢 ,第二個才能啟用。開始讀取。這就是session阻塞。

session 默認以文件保存,當一個用戶訪問session_start頁面后。這個時候,就會默認創建一個包含 session_id文件名,并且這個時候。會對文件進行鎖定。如果這個用戶點擊鏈接。又訪問一個該站的session文件,由于 第一個頁面沒有執行完。他一直鎖定了該文件。所以第二個頁面就不能獲取鎖,一直處于等待狀態、。這樣如果是網站上有大量的用戶訪問,會導致session讀取文件一直阻塞等待著,用戶瀏覽器一直跟服務器保持連接買回消耗很多服務器資源 、web 服務站活躍連接數也會增大?赡芫蜁馁M完連接資源。出現拒絕服務器。

------用memcache 存放用戶session

用memcache 保存用戶session ,相比讀取文件有很大速度提升。而且可以做到服務器共享session 確實很方便,這個時候就不會出現 用文件session 鎖定清理、memcached 讀取時候,是共享的,不會出現等待,但是我們發現。memcached 連接數。還是會保持著,并且,連接數會增加。如果這個時候。你設置的memcached連接數過小。你會發現。很快memcached 就掛死了。 這也是長出現的問題。,有時候web 服務器很多,session(memcache)很少,發現memcache 莫名死掉?赡芨@個有關系。太多的反映很慢的頁面(啟用session) ,會大道至占用太多的memcached連接數。

改變session使用習慣、優化調用方法

其實,通過file或者session,如果處理耗時頁面,都會帶來服務器資源很大消耗。

實我們一般寫入session或者讀取時候,如果自己能夠控制。

用完了,就關閉掉文件鎖,或者mem連接。就會自動釋放資源,其實,php里面的:session_write_close,session_commit 函數就能做到改功能。

點擊復制鏈接 與好友分享!回本站首頁
上一篇:分享phpize的安裝教程
下一篇:最后一頁
相關文章
圖文推薦
點擊排行

關于我們 | 聯系我們 | 廣告服務 | 投資合作 | 版權申明 | 在線幫助 | 網站地圖 | 作品發布 | Vip技術培訓 | 舉報中心

版權所有: 紅黑聯盟--致力于做實用的IT技術學習網站

加拿大28火车判定方法