توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : Out of memory
maya2010
June 23rd, 2014, 10:10
سلام. من سرور مجازی دایرکت ادمین دارم و جدیدا یکی دو تا از اکانت هام دارن از مصرف بیشراز اندازه استفاده میکنن و کل سرویس بعضی مواقع پیغام خطای زیر رو میده:
Fatal error: Out of memory (allocated 34645008) (tried to allocate 39 bytes)
رم من 1024 هست و اکثرا حدود 300 تاش خالیه ولی برای یک لحظه رم پر میشه و این خطا ظاهر میشه.
حالا بغیر از دستور htop چطور میشه این اکانت پر مصرف رو پیدا کرد؟
آیا با ldf میشه و اگه میشه چطوری ؟
راهکار دیگه ای هم دارید بفرمایید.
میشه براشون مثلا 256 تا رم تعریف کرد تا از کل فضای رم استفاده نکنن ؟
Yas-Host
June 23rd, 2014, 10:22
سلام. من سرور مجازی دایرکت ادمین دارم و جدیدا یکی دو تا از اکانت هام دارن از مصرف بیشراز اندازه استفاده میکنن و کل سرویس بعضی مواقع پیغام خطای زیر رو میده:
Fatal error: Out of memory (allocated 34645008) (tried to allocate 39 bytes)
رم من 1024 هست و اکثرا حدود 300 تاش خالیه ولی برای یک لحظه رم پر میشه و این خطا ظاهر میشه.
حالا بغیر از دستور htop چطور میشه این اکانت پر مصرف رو پیدا کرد؟
آیا با ldf میشه و اگه میشه چطوری ؟
راهکار دیگه ای هم دارید بفرمایید.
میشه براشون مثلا 256 تا رم تعریف کرد تا از کل فضای رم استفاده نکنن ؟
این ارور رو داخل سایت نمایش می دهد؟
اگر بله باید در php.ini مقدار memory_limit را افزایش دهید.
maya2010
June 23rd, 2014, 10:24
آخه برای همه سایت ها اینجوریه. مقدار رم کل سرور من 1024 هست و چقدر برای مموری لیمیت بزارم؟
Yas-Host
June 23rd, 2014, 10:26
آخه برای همه سایت ها اینجوریه. مقدار رم کل سرور من 1024 هست و چقدر برای مموری لیمیت بزارم؟
این ارور کاملا معلوم هست که php سرور و سایت مورد نظر شما بیش از مجاز تعریف شده استفاده می کند.
بهترین مقدار برای memory_limit : -1 می باشد.
maya2010
June 23rd, 2014, 10:29
یعنی برای هر اکانت جداگانه این php.iniساخته بشه و تو روت اصلیش قرار بگیره و مقدارش هم -1 باشه؟
پس اینکه میگن مقدار رو 64 بزارید برای چیه؟
Yas-Host
June 23rd, 2014, 10:41
یعنی برای هر اکانت جداگانه این php.iniساخته بشه و تو روت اصلیش قرار بگیره و مقدارش هم -1 باشه؟
پس اینکه میگن مقدار رو 64 بزارید برای چیه؟
خیر
دستور زیر را در SSH وارد کنید.
php --ini
سپس فایل آدرس فایل php.ini را به شما میدهد و سپس دستور زیر رو وارد کنید :
nano /usr/local/lib/php.ini
سپس در فایل بالا با زدن کلید های ترکیبی ctrl+w اقدام به سرچ کلمه memory limit کرده و مقدار آن را -1 بزارید (-1 بهترین مقدار برای کار شما می باشد).
سپس با ctrl+x و y سیو کنید و وب سرور با با دستور service httpd restart یا service nginx restart ریستارت کنید.
maya2010
June 23rd, 2014, 10:54
خوب این -1 که رم رو کمتر میکنه. الان رم مثلا یکی از سایت ها که ارور میده memory limit روی 18 بود ارور میداد. اگه -1 بکنم که دیگه اوضاعش بدتر میشه !
MajorHost
June 24th, 2014, 01:31
-1 به معنای نامحدود هست
Yas-Host
June 24th, 2014, 07:59
-1 به معنای نامحدود هست
بله .
میتونید از 512M هم استفاده کنید ولی ممکن است یک سایت در process از مقدار رم بیشتری نیاز داشته باشد!