Session_GC () သည် PHP ၏ပြည်တွင်းရေး function ကိုဖြစ်ပြီး၎င်း၏ function သည်အမှိုက်များစုဆောင်းခြင်းယန္တရားကိုလုပ်ဆောင်ရန်ဖြစ်သည်။ PHP သည်သက်တမ်းကုန်ဆုံးသော session files များကိုသန့်ရှင်းရေးလုပ်ရန်အသုံးပြုသူတောင်းဆိုမှုများတွင်အချို့သောဖြစ်နိုင်ခြေရှိသောဖြစ်နိုင်ခြေတစ်ခုဖြင့်ဤလုပ်ငန်းကိုဖြစ်ပေါ်စေသည်။ ပုံမှန်အပြုအမူကိုအောက်ပါ configuration သုံးပစ္စည်းများဖြင့်ဆုံးဖြတ်သည်။
ini_get('session.gc_probability'); // ပုံမှန်တန်ဖိုး:1
ini_get('session.gc_divisor'); // ပုံမှန်တန်ဖိုး:100
ini_get('session.gc_maxlifetime'); // ပုံမှန်တန်ဖိုး:1440 စက်ဏန့်(24 မိနစ်)
ဆိုလိုသည်မှာ - တောင်းဆိုမှု 100 တိုင်းတွင် session_GC ကို GC_MAXLIFTIME ထက်ကျော်လွန်သော session files အားလုံးကိုရှင်းလင်းရန်,
PHP သည်ဆာဗာ၏ဖိုင်စနစ်တွင် Session Data session data (များသောအားဖြင့် / tmp လမ်းညွှန်) ဖြင့် Session Data ။ Peach_gc တိုင်းကွပ်မျက်ခံရတိုင်း PHP သည်ဤလမ်းညွှန်တွင် session files အားလုံးကို scan ဖတ်ရန်လိုအပ်သည်။ အစည်းအဝေးဖိုင်များသေးငယ်သည့်အခါဤစစ်ဆင်ရေးသည်အသေးအဖွဲ 0 င်ကြည့်ရှုခြင်းသို့မဟုတ် session retention tening အချိန်ရှိသည့်အခါ,
အကယ်. အကြိမ်ကြိမ်တောင်းဆိုမှုများသည်တစ်ချိန်တည်းတွင် session_gc ကိုအစပျိုးပါက၎င်းသည်သော့ခတ်ပြိုင်ပွဲကိုဖြစ်ပေါ်စေနိုင်သည်။ ၎င်းသည်အထူးသဖြင့်တစ်ပြိုင်နက်တည်းကတစ်ပြိုင်နက်တည်းစနစ်များတွင်အန္တရာယ်ရှိသည်။ အနည်းဆုံးတော့တုန့်ပြန်မှုမြန်နှုန်းကိုလျှော့ချပြီးအဆိုးဆုံးမှာ server load ကိုတိုက်ရိုက်ဖြည့်ဆည်းပေးပါတယ်။
အသုံးအများဆုံးနည်းလမ်းမှာ PHP ၏အလိုအလျောက် GC ကိုပိတ်ထားရန်မှာ PHP ၏အလိုအလျောက် GC ကိုပိတ်ထားရန်ဖြစ်သည်။
ini_set('session.gc_probability', 0);
ထို့နောက် 5 မိနစ်တိုင်းသန့်ရှင်းရေးလုပ်ခြင်းကဲ့သို့သောအချိန်ကိုက်ထားသောအလုပ်ကိုစီစဉ်ပါ။
*/5 * * * * php /var/www/html/session_gc.php
session_gc.php နမူနာကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
<?php
ini_set('session.save_path', '/var/www/html/sessions');
ini_set('session.gc_maxlifetime', 3600); // သက်တမ်းကုန်ဆုံးချိန်သတ်မှတ်ထားပါ
session_start();
session_gc(); // ကိုယ်တိုင်သန့်ရှင်းရေးလုပ်ပါ
session.save_Handler ကို memcached or redis ကို configure လုပ်ခြင်းအားဖြင့်စာဖတ်ခြင်း၏ထိရောက်မှုကိုများစွာတိုးတက်အောင်လုပ်နိုင်သည်။ PHP file system GC ၏စွမ်းဆောင်ရည်ပြ problems နာများကိုဤစနစ်၏ဇာတိသက်တမ်းကုန်ဆုံးနည်းဗျူဟာများ၏အကူအညီဖြင့်ရှောင်ရှားနိုင်သည်။
ini_set('session.save_handler', 'redis');
ini_set('session.save_path', 'tcp://gitbox.net:6379');
Redis ၏ကိုယ်ပိုင် TTL ယန္တရားသည်လက်ဖြင့် 0 င်ရောက်စွက်ဖက်ခြင်းမရှိဘဲသက်တမ်းကုန်ဆုံးသောအစည်းအဝေးများအလိုအလျောက်ဖျက်နိုင်သည်။
PHP 7.1 မှစတင်. Session.Lazy_write configuration item ကိုထည့်သွင်းပြီး, session file ကို Session Data အပြောင်းအလဲများမှသာရေးသားခဲ့သည်။ ၎င်းသည် Session_GC နှင့်တိုက်ရိုက်ဆက်နွယ်မှုမရှိသော်လည်း၎င်းသည်မလိုအပ်သောရေးသားမှုစစ်ဆင်ရေးများကိုလျှော့ချနိုင်ပြီးစွမ်းဆောင်ရည်ကိုသွယ်ဝိုက်တိုးတက်စေနိုင်သည်။
ini_set('session.lazy_write', 1);
ကြီးမားသောလည်ပတ်မှုများရှိသော B2C Mall တွင်မူလပြင်ဆင်မှုသည်ရာနှင့်ချီသော session files များဖြစ်ပွားခဲ့သည် ။ Session_GC Execute တစ်ခုစီသည် CPU ကိုမြင့်တက်စေပြီးစာမျက်နှာတုံ့ပြန်မှုသည်သိသိသာသာတိုးပွားလာသည်။
Optimization Plan သည်အောက်ပါအတိုင်းဖြစ်သည် -
အလိုအလျောက် GC ကိုပိတ်ပါ။
စတိုးဆိုင်များစတိုးဆိုင်များသို့ redis ကိုသုံးပါ။
နောက်ခံအလုပ်သည် session_gc () (အခြားရွေးချယ်စရာ) ကို 2 A.m တွင်ပြုလုပ်သည်။ ;
login live ်ဌာန်းချက်ကာလကိုတိုးချဲ့ရန် Session.gc_Maxlifetime ကို 7200 စက္ကန့်အထိချိန်ညှိပါ။
အွန်လိုင်းတွင်အွန်လိုင်းသွားလာပြီးနောက်စနစ်တကျတုန့်ပြန်မှုသည်ပျမ်းမျှအားဖြင့် 30% ကျဆင်းသွားပြီးပျမ်းမျှအားဖြင့်စက္ကန့်အနည်းငယ်မှမိနစ်အနည်းငယ်မှအနည်းငယ်သောင်းချီသောသောင်းချီသည်
Session_GC သည် "backend task" ဖြစ်သော်လည်း၎င်း၏ပုံမှန်အပြုအမူသည်တစ်ပြိုင်နက်တည်းတစ်ပြိုင်နက်တည်းကပါ 0 င်သောစွမ်းဆောင်ရည်ပြောင်ပြောင်တင်းတင်းဖြစ်လာနိုင်သည်။ အမှန်တကယ်စီးပွားရေးအခြေအနေများအပေါ် အခြေခံ. ၎င်း၏မူများကိုနားလည်ခြင်းနှင့် configururations များကိုစိတ်ကြိုက်ပြုပြင်ခြင်းသည် PHP application များ၏တည်ငြိမ်မှုနှင့်စွမ်းဆောင်ရည်ကိုတိုးတက်ကောင်းမွန်စေသည်။
အကောင်းဆုံးအလေ့အကျင့်အကျဉ်းချုပ်
ကြီးမားသောစီမံကိန်းများတွင်အလိုအလျောက် GC ကိုပိတ်ထားပြီးအချိန်ကိုက်အလုပ်များကိုအသုံးပြုပါ။
စတိုးဆိုင်များသိုလှောင်ရန် Redis / Memcached ကိုသုံးရန်ကြိုးစားပါ။
ကျိုးကြောင်းဆီလျော်သော configuration ဖြင့် gc_maxlifetime ကို configure လုပ်ပါ။
disk ရေးသားခြင်းကိုလျှော့ချရန် session.lazy_write ကို သုံးပါ။
ဤကျွမ်းကျင်မှုများကိုကျွမ်းကျင်ခြင်းသည်စွမ်းဆောင်ရည်အားနည်းခြင်းမဖြစ်နိုင်ပါ။