سوال : Cpu Usage بالاي يك query
سرور سايتم به صورت Share هستش كه با افزايش مصرف cpu بيشتر از 40 ثانيه از 60 ثانيه سايت دان ميشه. من لاگ مصرف cpu رو نگاه كردم و يه قسمت بود كه مرتبا تكرار مي شد و cpu usage بالايي داشت. :
کد:
DELETE FROM mos_1session WHERE (time<1215056782 AND guest>=0) OR (time<1217053182 AND guest<0)
سوالم اينه كه اين مربوط به چه بخشيه و آيا امكانش هست غير فعال بشه؟ خيلي حياتيه لطفا كمك كنيد. با تشكر.
پاسخ : سوال : Cpu Usage بالاي يك query
درضمن من تو تنظيمات مامبو ثبت آمار رو هم غير فعال كردم.
پاسخ : سوال : Cpu Usage بالاي يك query
آیا کامپونننتی یا اسکریپتی روی سایت خود قرار دادید ؟
اشکال از اون مورد بالا نیست اون مر بوط به session ها است
در ضمن 90 درصد کاربران از سرور های اشتراکی استفاده می کنند !!! مشکل حتما از جایی دیگر است
برای اینکه بهتر متوجه بشید مامبو فعلی خودتون رو غیر فعال کنید و هر چیز دیگر هم روی سرور دارید غیر فعال کنید
در یک فولدر دیگر مامبو جدید و تمیز بدون نصب هیچ اضافاتی رو بریزید و و حالا تست کنید ببنید بازم مشکل دارید !!
یاعلی
پاسخ : سوال : Cpu Usage بالاي يك query
نميشه حالا غير فعالش كرد البته من اطلاعاتي در اين زمينه ندارم.
كامپوننت هايي كه نصبه :
MOStlyCE Admin
بانک اطلاعاتی
تبلیغات
خبر خوانها
خبرنامه و ايميلهاي گروهي
خروجی RSS
SEF Advance
لينكستان
نظر سنجي
پل SMF
یادداشت ها
البته من فقط پل SMF (كه غير فكر نكنم فعال باشه) و Sef Advance رو نصب كردم. و بقيه نصب بود از ابتدا روش.
پاسخ : سوال : Cpu Usage بالاي يك query
دوست عزیز اگر لود سرور رو شما می برید بالا و به شما تذکر داده شده مطمئنان از هسته اصلی مامبو نیست
بنابراین باید از کامپوننت هایی که اضافی نصب کردید باشه و یا از اسکریپت دیگری که روی سایت باشه و شما گذاشته باشید
یا اینکه دستکاری کردید در کد ها و ....
به هر باید تک تک تست کنید غیر فعال کنید ببنید اشکال از چیست یا لوگ ها رو دقیق تر بررسی کنید و ریشه یابی کنید !
پاسخ : سوال : Cpu Usage بالاي يك query
عرض كردم خدمتتون من لاگ مصرف cpu كه باعث sospend شدن شده بود رو مشاهده كردم. و اين خطي كه اينجا گذاشتم بيشترين بار رو ايجاد مي كرد. (با هر بار اجرا 9 ثانيه!!!!)
بعد از اون query اين يكي خيلي بار ايجاد مي كرد (هربار تقريبا 5 ثانيه!!!):
کد:
SHOW TABLES LIKE '%sef_config'
با اطلاعات كمي كه دارم ولي فكر مي كنم اين دو query مربوط به هسته mambo ميشه. در ضمن mambo يكي از پر مصرف ترين (از لحظا cpu) ، ـ cms هاست. به طوري كه مثلا 110mb يا سايت هاي ديگر كه خدمات رايگان ميدند نصب mambo/joomla رو روي هاست رايگان قدغن كردند.
پاسخ : سوال : Cpu Usage بالاي يك query
اينو تازه ديدم : (40 ثانيه)
کد:
# Query_time: 40 Lock_time: 0 Rows_sent: 0 Rows_examined: 0
use ***;
UPDATE mos_1session SET `time`='1217055816',`userid`='0',`usertype`='',`username`='',`gid`='0',`guest`='1' WHERE session_id='5f3548f3c9c4fe45f3fa13adde19f552'
پاسخ : سوال : Cpu Usage بالاي يك query
ما الان حداقل 3000 هزار تا سایت مامبو یی مامبولرن داریم که دارن به خوبی کار می کنن ! پس می بینید که مشکل از هسته نباید باشه مگر اینکه سرور واقعا ضعیف باشه که باید روش فقط HTMlگذاشت !!!
در مورد کامپوننت ها هم گفتم احتما لا از اون هاست که تازه نصب کردید لزوما هر کامپوننت اضافی که نصب میشه نباید درست باشه ! شاید مشکل دار باشه !
پیشنهاد دادم به شما که مامبوتون رو تر و تمیز کنید یعنی مثلا همین sef و پل و هر چیزی که نصب کردید اضافی رو حذف کنید و یا غیر فعال ببنید باز هم لود بالا میره !
اگر که خودتون به فایلی یا جایی دست نزدید البته !
باید بررسی کنید
پاسخ : سوال : Cpu Usage بالاي يك query
منم مطمئنم كه مشكل از سروره. چون تقريبا دوساله كه سايت داره بدون مشكلي كار مي كنه. اگه مشكل ازمامبو بود تا به حال بايد چندين بار اين اتفاق مي افتاد. منظورم اين بود كه راهي نيست query هاي بدون نياز غير فعال بشن؟ مثلا ثبت آمار و ...
پاسخ : سوال : Cpu Usage بالاي يك query
هر چیزی که شما نخواهید و در غیر فعالش کنید کلا کد هاش غیر فعال میشن مثلا اگر کامپوننت sef نصب هست اما فعال نباشه کویریش هاش هم فعال نیستد
پس هر چیزی رو نمی خواهید غیر فعال کنید و یا حذف کنید
موفق باشید
پاسخ : سوال : Cpu Usage بالاي يك query
از هسته مامبو چي؟ نميشه چيزي رو غير فعال كرد .شايد سوالم خيلي خنده دار باشه. اميدوارم اينطور نباشه البته.
پاسخ : سوال : Cpu Usage بالاي يك query
خیر نمیشه غیر فعال کرد هسته هست اسمش دوست من
اگر چیزی قرار باشه غیر فعال بشه اضافات هستن ...
پاسخ : سوال : Cpu Usage بالاي يك query
تو يكي از اين query هايي كه اينجا گذاشتم به نظر ميرسه لاگين بودن فرد رو چك مي كنه. من سايتم ثبت نام نداره و فقط خودم تو پانل مديريت لاگين ميكنم. پس تو صفحات اصلي سايت نيازي به چك شدن يوزر نيست : (به نظر ميرسه اين كد زمان لاگين كاربرارو چك ميكنه )
کد:
DELETE FROM mos_1session WHERE (time<1215056782 AND guest>=0) OR (time<1217053182 AND guest<0)
اينطور كه از كد برمياد زمان لاگين رو چك ميكنه. اينو چي؟ نميشه كاريش كرد؟ يعني تو صفحات اصلي سايت (غير از شاخه administrator) زمان لاگين كاربرا رو چك نكنه.
پاسخ : سوال : Cpu Usage بالاي يك query
این لاگین بودن نیست دوست عزیز
پاسخ : سوال : Cpu Usage بالاي يك query
پيداش كردم توي
core.classes.php
تابع : purge()
توي لوكال حذفش كردم. سايت كار مي كرد. اما با حذفش اطلاعات زيادي در ديتابيس حذف نشده مي مونه. فقط اگه بدونم كدوم خط از اين فايل منجر به ذخيره اطلاعات ميشه ديگه حله.
کد:
$database->setQuery("DELETE FROM #__session WHERE (time<$past AND guest>=0) OR (time<$adminpast AND guest<0)");
پاسخ : سوال : Cpu Usage بالاي يك query
دوست عزیز
مشکل از CORE مامبو نیست !
اگر تنظیمات سرور درست باشه ، اگر کامپوننت هایی که استفاده میکنید اپتیمایز باشه هیچ مشکلی برای شما پیش نمیاد
در حال حاضر بیشتر از 3000 سایت دارن با مامبو بدون هیچ مشکلی کار میکنند .
یا علی
پاسخ : سوال : Cpu Usage بالاي يك query
درسته. اما مامبو امكانات زيادي داره. كه باعث ايجاد بار روي سرور ميشه. خوب يه قسمت هست به نام session كه من فقط مي خوام وقتي كاربري لاگين كرد تو ديتابيس قرار بگيره. اما الان با وارد شدن به سايت يك آيتم به اين table اضافه ميشه (با user خالي) :
کد:
username time session_id guest userid usertype gid
1217232561 e4b1ec4ed437da7bb3ecc55057726983 1 0 0
كه اين آيتم بدون كاربر زماني بدرد مي خوره كه بخواهيم حاضرين در سايت رو بشماريم (فكر نمي كنم استفاده ديگه اي داشته باشه)
اما اگه كاربر لاگين كنه حتما بايد اين ايتم وجود داشته باشه تا براي بازديد هر صفحه مجبور نباشه يوزر نيم و پسشو بزنه
نمي دونم واضح منظورمو گفتم يا خير.
فقط اگه مي دونيد تو كدوم فايل با ورود يك بازديد كننده (غير كاربر)يك session به اين table اضافه ميشه. بگيد. من هرچي گشتم پيدا نكردم.
پاسخ : سوال : Cpu Usage بالاي يك query
سلام
نقل قول:
كه اين آيتم بدون كاربر زماني بدرد مي خوره كه بخواهيم حاضرين در سايت رو بشماريم (فكر نمي كنم استفاده ديگه اي داشته باشه)
اما اگه كاربر لاگين كنه حتما بايد اين ايتم وجود داشته باشه تا براي بازديد هر صفحه مجبور نباشه يوزر نيم و پسشو بزنه
به نظر میاد معنی شما معنی دیگه ای از session در ذهنتون هست و تنها یک کاربرد اون رو در نظر میگیرید !
خیر دوست عزیز با حذف این مورد سایت شما دچار مشکلات زیادی میشه ! حتی شما نمیتونید وارد قسمت مدیریت بشید و سایت رو آپدیت کنید
سایت شما فکر نمیکنم از مامبولرن یا ... بزرگتر باشه اما لود سرور همیشه زیر 1 هست !
یا سایتهایی که روی سرور مامبوسرور هستند همگی یا مامبو هستند و یا جوملا اما لود سرور در اکثر اوقات زیر 1 هست .
من باز هم به شما پیشنهاد میکنم راه دیگه ای در پیش بگیرید چرا که این راه مشکل شما رو حل نمیکنه بلکه مشکلات بیشتری هم برای شما به ارمغان میاره !
یا علی
پاسخ : سوال : Cpu Usage بالاي يك query
ببينيد. من اون قسمت رو كه مد نظرم بود پيدا كردم :
فايل core.classes.php
کد:
$currentSession->generateId();
                if (!$currentSession->insert()) {
                    die( $currentSession->getError() );
                }
                setcookie( $sessionCookieName, $currentSession->getCookie(), time() + 43200, '/' );
                //$_COOKIE["sessioncookie"] = $session->getCookie();
                if ($usercookie) {
                    // Remember me cookie exists. Login with usercookie info.
                    require_once (mamboCore::get('mosConfig_absolute_path').'/includes/authenticator.php');
                    $authenticator =& mamboAuthenticator::getInstance();
                    $authenticator->authenticateUser ($message, $usercookie['username'], $usercookie['password'], null, $currentSession);
                }
تو وارد شدن به مديريت هم مشكلي ندارم
session ايجاد ميشه فقط با ورود كاربر. اما با ورود ويزيتور (بازديد كننده) ايجاد نميشه.
ميتونيد بگيد تو چه بخشي session يك بازديد كننده مورد استفاده قرار ميگيره؟
من احتمال ميدم تو بازديد مطالب و يا راي به مطالب باشه. (مثلا  با چك كردن session نمي ذاره يه كاربر دوبار راي بده به يه مطلب)
من تو قسمت غير مديريت سايت اصلا ورود و يا ثبت نام كاربر ندارم.
پاسخ : سوال : Cpu Usage بالاي يك query
« پاسخ #20 : امروز، ساعت 13:22 »
نقل قول ويرايش حذف تقسیم موضوع
حتي تو بخش امتياز دادن به مطالب هم هنوز اجازه دوبار امتياز دادن پشت سر هم رونداريم. پس ميشه بگيد اين session ها براي ويزيتور ها چه فايده اي داره؟؟؟؟
(به جز موردي كه خودم گفتم : شمردن حاضرين در سايت)
و يه چيز خيلي مهمتر.توي سايت الان با phpmyadmin اين table رو نگاه كردم و مشاهده كردم 136,979 تا آيتم تو اين table وجود داره. (براي سايتي كه فقط 3 كاربر ادمين داره)  افراد انلاين به طور متوسط 20 نفر هستش. و بازديد در روز حدود 2400 نفر. آيا اين مقدار session بيش از حد نيست؟ آيا به من حق نميديد كه چاره اي براي اين بخش پيدا كنم ؟!؟
فقط با حذف :
کد:
$currentSession->generateId();
if (!$currentSession->insert()) {
die( $currentSession->getError() );
}
و
کد:
$database->setQuery("DELETE FROM #__session WHERE (time<$past AND guest>=0) OR (time<$adminpast AND guest<0)");
از فايل core.classes.php
نتيجه مطلوب حاصل ميشه (البته براي سايت هايي كه تو صفحات سايت ورود و ثبت نام كاربر ندارند و فقط از پانل مديريت استفاده مي كنند)
البته با حذف بخش دوم اگر در سيستمي غير از سيستم شخصي خودتون به پانل مديريت لاگين ميشيد بايد حتما پس از پايان كارتون بايد خروج رو بزنيد چون با گذشت زمان session شما expire نميشه.
** N پست شما یکی شد
پاسخ : سوال : Cpu Usage بالاي يك query
اونچه شرط بلاغ بود ما با شما گفتیم ...
در هر صورت دیگر کاربران لطفا توجه داشته باشند :
این روش مورد تایید تیم مامبولرن نیست . در صورت استفاده از این روش و تغییر به این صورت قطعا دچار مشکل خواهید شد .
یا علی