سعید محمدی
3 سال پیش توسط سعید محمدی مطرح شد
6 پاسخ

چرا لاراول برای باز کردن یک صفحه ساده از صد در صد cpu استفاده میکنه

سلام
دوستان یه مسئله برام پیش بوده برای یه سایت که تعداد بازدید خیلی زیادی داره به مشکل برخوردم !!
نه مشکل کوئری هست نه مشکل بهینه سازی و نه موراد مشابه
من از فریم ورک خام لاراول استفاده کردم و یه Route صفحه اصلی بیشتر هم ندارم که وقتی صفحه اصلی رو تو مرورگر در چندین تب مختلف باز میکنم همزمان میرم تو سرور مقدار مصرف cpu رو نگاه میکنم میبینم که cpu یهو 100% رو پر میکنه اونم فقط بخاطر اجرای یه صفحه ساده hello word واقعا برام عجیب بود حتی روت و ویو ها و کانفیگ ها رو هم کش کردم بازم هیچ فرقی نکرد
اگه اینطوری باشه که چندصدتا کاربر همزمان فقط یه صفحه عادی لاراول رو باز کنند سایت down میشه...

حالا نکته جالب اینه که همین صفحه hello world رو با یه فایل عادی php اجرا کردم و در 50 تا تب مرورگر همزمان اجراش کردم ولی cpu از جاش تکون نمیخورد و متوجه شدم انگار هر چی هست به خود هسته اصلی لاراول ربط داره که اینقدر cpu رو درگیر میکنه ولی واقعا نمیدونم دقیقا از چیه که مشکل رو رفع کنم!

ورژن لاراول 5.7 هست و php7.2 و مشخصات سرور بصورت زیر هست:

Thread Count    1
Processor Name  Intel(R) Xeon(R) CPU E5-2660 v2 @ 2.20GHz
Vendor ID   GenuineIntel
Processor Speed (MHz)   2194.711
Total Memory    1882412 kB
Free Memory 343008 kB
Total Swap Memory   0 kB
Free Swap Memory    0 kB
Load Average    0.09, 0.2, 0.23
Php 7.2.34  Installed

روت لاراول بصورت زیر هست:

Route::get('/', 'PagesController@index');

کنترل PagesController.php بصورت زیر هست :

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class PagesController extends Controller
{
    public function __construct()
    {
    }

    public function index(Request $request)
    {
        return view('indexpage');

    }
}

و محتوای indexpage.blade.php بصورت زیر هست :

<h1>Hello world</h1>

اینم تصویر مصرف cpu تو اون لحظه باز شدن صفحه سایت :
مصرف cpu

laravel-cpu-usage-of-100-percent

ممنون میشم اگه از دوستان تجربه ای نکته ای چیزی وجود داره بهم بگه که این مشکل رو رفع کنم واقعا چیزی نموند که تست نکرده باشم.

سپاس از همگی

@hesammousavi
@Alimotreb
@mhyeganeh
@mobinasattari7
@mehranmarandi90
@gomnam
@farhadi
@khanzadimahdi
@muhamad
@mimsadAlef
@hekmati
@ali.bayat
@milad
@juza66
@endworld
@mohsenbostan
@mohaligateway
@esn7ir
@hossein.r.1442
@hosseinshirinegad98


ثبت پرسش جدید
حسن حکمتی
تخصص : برنامه نویس وب و بلاکچین
@hekmati 3 سال پیش مطرح شد
0

سلام
از امکاناتی مثل performance و memory در inspect مرورگر استفاده کنید تا اطلاعات دقیقتر و هدفمندتری از این ایراد بدست بیارید.


سعید محمدی
@saeiidm 3 سال پیش مطرح شد
0

@hekmati
خب مشکل لود وجود نداره که اصلا سمت کاربر
چون یه لاراول خام استفاده شده با یک روت و یه ویو که درون صفحه اش نوشته hello world داره نمایش داده میشه
و اصلا نه تمپلیتی وجود داره نه دیتابیسی نه هیچ چیز دیگه تازه همه چی رو هم کش کردم هم روت ها رو هم کانفیگ ها رو هم ویو ها رو
ولی بازم وقتی همون صفحه سایت رو تو 50 تا تب تو مرورگر همزمان باز میکنم یهو 100درصد cpu مصرف میشه در حالی که همون متن رو تو یه صفحه معمولی php میزارم و همزمان تو 50 تا تب مرورگر باز میکنم اصلا cpu مصرف نمیشه!!!
برام عجیبه

نه تو فریم ورک دستکاری خاصی کردم نه چیز دیگه


Muhammad
تخصص : Back-End Developer
@muhammad 3 سال پیش مطرح شد
0

سلام، شاید مشکل سیستمتون باشه.


سعید محمدی
@saeiidm 3 سال پیش مطرح شد
0

@muhammad
از سرور آنلاین استفاده میکنم و اسکریپت لاراول هم درحالت production هست منابع سرور هم خوبه آخه چرا یه صفحه عادی php رو در همون شرایط با کمترین استفاده از cpu اجرا میکنه ولی تحت لاراول واقعا 100 درصد درگیر میکنه!


Alimotreb
تخصص : کانفیگ سرور و برنامه نویس
@Alimotreb 3 سال پیش مطرح شد
1

سلام
@saeiidm

چند بحث وجود داره :
1)رکوئست بالا
2) بحث پردازش کد

توی بحث اول بخش عمده عملیات روی وب سرور هست : شما اگر از nginx یا Litespeed استفاده کنید قطعا نتیجه بهتری خواهید گرفت!
و اینکه نیاز به کانفیگ هم داره ، شما باید موارد مموری لیمیت و execution time رو در PHP تنظیم کنید . ( چون توی حالت عادی لیمیت هستن )

بحث دوم بحث پردازش کد شماست ، سی پی یو آنچنان سی پی یو قوی نیست ولی خب برای همچین کدی ، اره زیاد هم هست.
مموری سرور شما هم کافیست
شما باید پارامتر های پردازشی رو که توی بحث اول گفتم ، هماهنگ با نوع سرورتون کانفیگ کنید
کانفیگ درست سرور و وب سرور ، توی عملکرد درست و استفاده بهینه از منابع سرور ، بسیار مهم هست.

موفق باشید.


سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 3 سال پیش آپدیت شد
1

یکی از سایت های که داشتم با اینکه توی صفحه کلی ریلیشن و دریافت اطلاعات از دیتابیس داشتم با 40 تب باز (البته این کار اصولی نیست) همین مقدار توی عکس زیر از سی پی یو استفاده شدم ، این نشان میده که سرور شما درست کانفیگ نشده ، اگر هم هاست اشتراکی هست که مربوط به شرکت ارائه دهنده هاستتونه. من از میهن وب هاست و هاست اشتراکی استفاده میکنم.

توضیح تصویر رو وارد کنید


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام