PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : مشکل لود بالای apache



faranetwork
April 17th, 2011, 18:09
با سلام خدمت دوستان در پایین اطلاعات اومده از دیشب لود apache همونطور که در زیر میبینید بالا رفته و همه سایت ها ارور دیتابیس میده....با stop شدن apache لود پایین میاد و صفر میشه...apche هم آپدیت و دوباره نصب شده فرقی نکرد....وی پی اس هم 8 گیگ رم داره...مجازی ساز openvz پنل دایرکت ادمین منتظر کمک شما دوستان هستم

top - 18:06:38 up 56 min, 1 user, load average: 7.73, 3.48, 7.31
Tasks: 328 total, 7 running, 320 sleeping, 0 stopped, 1 zombie
Cpu(s): 83.5%us, 14.7%sy, 0.0%ni, 1.5%id, 0.3%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 8192000k total, 2957904k used, 5234096k free, 0k buffers
Swap: 0k total, 0k used, 0k free, 0k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1440 apache 16 0 51828 36m 3400 S 10.2 0.5 0:00.34 httpd
1381 apache 16 0 51796 36m 3288 S 9.9 0.5 0:00.33 httpd
1433 apache 16 0 51796 36m 3304 S 9.5 0.5 0:00.33 httpd
1436 apache 16 0 51796 36m 3288 S 8.9 0.5 0:00.28 httpd
1430 apache 16 0 51796 36m 3288 S 8.5 0.5 0:00.27 httpd
1412 apache 16 0 51796 36m 3288 S 8.2 0.5 0:00.33 httpd
1388 apache 16 0 51796 36m 3288 S 7.6 0.5 0:00.33 httpd
1405 apache 16 0 51796 36m 3288 S 7.6 0.5 0:00.34 httpd
1384 apache 16 0 51796 36m 3288 S 6.9 0.5 0:00.32 httpd
1378 apache 16 0 51796 36m 3288 S 6.6 0.5 0:00.27 httpd
1389 apache 16 0 51796 36m 3288 S 6.6 0.5 0:00.28 httpd
1372 apache 16 0 51796 36m 3288 S 6.2 0.5 0:00.27 httpd
1374 apache 16 0 51796 36m 3288 S 6.2 0.5 0:00.31 httpd
1382 apache 16 0 51796 36m 3288 S 6.2 0.5 0:00.29 httpd
1380 apache 16 0 51796 36m 3288 S 5.9 0.5 0:00.27 httpd
1383 apache 16 0 51796 36m 3288 S 5.9 0.5 0:00.28 httpd
1393 apache 16 0 51796 36m 3288 S 5.9 0.5 0:00.28 httpd

[root@sever ~]# free -m
total used free shared buffers cached
Mem: 8000 3155 4844 0 0 0
-/+ buffers/cache: 3155 4844
Swap: 0 0 0

NiceIran.net
April 17th, 2011, 18:29
تعداد كانكشن ها رو چك كنيد .

faranetwork
April 17th, 2011, 21:13
چه جوری چک کنم ؟

[root@sever ~]# netstat -n | grep :80 |wc -l
270


الان سی پی یو رو 30% اومده

faranetwork
April 17th, 2011, 23:09
مشکل شما با وقت و هزینه و کار بسیار بالا از فردا شب حل میکنم . با احتساب هزینه اگر مایل بودید . تا یک هفته تضمین میکنم مشکلی پیش آمد کانفیگ بررسی و مشکل از آپاچی باشد حل میکنم .



انجمن (http://www.webhostingtalk.ir/forum.php)
بخش آموزشی (http://www.webhostingtalk.ir/f5/)
سرور مجازی (http://www.webhostingtalk.ir/f7/)
سوالات و مشکلات (http://www.webhostingtalk.ir/f56/)
مشکل لود بالای apache

بخش درخواست و......نیست....بخش آموزشی هست....

tinavps
April 17th, 2011, 23:42
همانطور که نمی دانیم دیتابیس بیشتر به cpu احتیاج دارد. مثلا یک سایت با 100 هزار بازدید می تواند روی یک سرور مجازی با 400 مگ رم کار کند اون هم 270 تا سی پنل و اکانت می گیرد اما ممکن است این سایت سی پی یو 2 هسته ای بگیرد یا 4 هسته ای
خب مشکل کجاست وقتی رکویست ها بالا میرود فشار روی سی پی یو پلکانی بالا میرود. یک لاگ بزاری ببینید
مثلا اگر در هر 6 ثانیه یک کاربر جدید به سایت می آید و مصرف سی پی یو روی 20% است و در بازه زمانی بعدی هر 3 ثانیه یک کاربر ممکن است سی پی یو تا 60% هم بالا بیاید
اگر از htop استفاده کنیم متوجه می شویم کی چقدر مصرف داشته معمولا بیشترین مصرف کننده در بالا قرار دارد
راه حل کاهش مصرف توسط دیتایس:
الف-فعال کردن slow query log در دیتابیس
ب- کچ کردن کوری های تکراری در رم (حد اقل 256 یا 512 مگ رم البته تنظیم دارد اجباری نیست مثلا شما روی 64 مگابایت اختصاص بدهید به کچ کردن)
ج-کوری هایی که مدام باید تعداد ویزیتور ها را group by یا disc int کند و زمان بر است را هر چند دقیقه یک بار اجرا کنید به این ترتیب مثلا یک کران جاب وظیفه دارد امار نفرات و کل صفحات امروز را هر 1 دقیقه اجرا کند. و خروجی را در یک جدول static بریزد
د-در جدول و یا دیتابیس که مخصوص دیتا و متن است فایل و داده binary blob نریزیم آن را جدا گانه آرشیو کنیم

مطمئن شویم هر جدول یک index key دارد
یک کران جاب بنویسیم که مثلا هر 6 ساعت جداول دیتابیس را optimize کند با این کار فضای خالی و over qout ها که جدول را کند می سازد از بین می رود.

در php5 به بعد یک دستور هست که لود بالانسینگ سرور را نشان می دهد. مثلا روی 2 من این طور عمل کردم. روی سایتم صفحاتی که اولویت ندارد را شناسایی کردم مثلا کوری های جدیدترین اخبار و کوری های اضافی که سایت را پر نشان دهد وقتی لود بالانسینگ روی 3 تا 6 هست آن را نشان نمی دهم

و وقتی لود بالانسینگ از 6 به بالاتر می رود یک پیغام به کاربر نمایش دهیم که مجددا تلاش کنید. این کار باعث می شود تا سرور به سمت دان شدن نرود. (مخصوص کسانی که سی پی یو یک هسته ای دارند و مشکل قطعی های زیاد هستند.)

---------- Post added at 11:42 PM ---------- Previous post was at 11:27 PM ----------

apache ro re build konid

faranetwork
April 18th, 2011, 00:10
مرسی ممنون از جواب شما.......ولی مشکل اینجاست که لود تمامی وی پی اس ها داره میره بالا

special
April 18th, 2011, 23:48
سلام
با استفاده از دستورات زیر کانکشن هاتون را بررسی کنید که یک ایپی چند تا کانکشن دارد:
netstat -atnp -A inet | grep ":80" | awk -F " " '{print $5} ' | awk -F ":" '{print $1}' | sort | uniq -c | sort -nr | head -10
10تا از بالاترین ها است این دستور
این دستور هم کل کانکشن هاتون به پورت 80 را نشان میدهد:
watch -n 0.1 'netstat -an | grep :80 | wc -l'

لاگ وبسرور را هم بررسی کنید، ببینید چه ایپی بیشترین درخواست را داده است:
awk '{print $1}' /usr/local/apache/logs/access_log | sort | uniq -c | sort -rnk1 | head -n 10

لاگ وبسرور هم مجددا مشاهده کنید، ببینید کدام صفحه و کدام سایت دارد بیشترین درخواست را میگیرد، سپس محدودیت کانکشن برای آن بگذارید.
از مد هایی مانند evasive هم استفاده کنید، کمک خواهند کرد