-
بلعیدن cpu توسط mysql
با سلام
سروری دارم با مشخصات:
core i7
ram:24 gig
برای سایت: mehrstat.com
با
دایرکت ادمین و زند اپتیمایزر و سنت او اس 64 بیتی
حال پروسس زیر 99 درصد سی.پی.یو رو میخورد:
/usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/mehrstat.com.pid --skip-external-locking
نمی دونم چکار کنم
لطفا راهنماییم کنید.
-
پاسخ : بلعیدن cpu توسط mysql
باید به فکر اپتیمایز MySql باشید
-
پاسخ : بلعیدن cpu توسط mysql
نقل قول:
نوشته اصلی توسط
akonews
با سلام
سروری دارم با مشخصات:
core i7
ram:24 gig
برای سایت: mehrstat.com
با
دایرکت ادمین و زند اپتیمایزر و سنت او اس 64 بیتی
حال پروسس زیر 99 درصد سی.پی.یو رو میخورد:
/usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/mehrstat.com.pid --skip-external-locking
نمی دونم چکار کنم
لطفا راهنماییم کنید.
بلی بفکرشم و سرور رو دادم دست یوزر allbert برای بهینه سازی ولی کاری نتونستند انجام بدن.
-
پاسخ : بلعیدن cpu توسط mysql
99 درصد ؟
اگه در حد 90 درصد هست و لود سرور نرمال باشه غیرطبیعی نیست.
-
پاسخ : بلعیدن cpu توسط mysql
نقل قول:
نوشته اصلی توسط
pardishosting
99 درصد ؟
اگه در حد 90 درصد هست و لود سرور نرمال باشه غیرطبیعی نیست.
لود سرور اصلا نرمال نیست یعنی بیشتر مواقع لود نمی شود حالا هم با 4-5 کاربر در سایت رسیده به 274 درصد (سرور 8 هسته دارد).
-
پاسخ : بلعیدن cpu توسط mysql
امکانش هست محتویات فایل my.cnf را برای بررسی قرار بدید ؟.
-
پاسخ : بلعیدن cpu توسط mysql
تنظیمات mysql را باید متناسب با استفاده ای که می کنید بهینه کنید.
یک top اینجا بزارید.
راه حل نهایی شما بهینه سازی اسکریپت سایت هست و درمان موقت بهینه سازی تنظیمات سرور فعلا
-
پاسخ : بلعیدن cpu توسط mysql
با عرض سلام و ادب خدمت دوستان عزیز
دیتابیس این سرور با استفاده از برنامه انالیز mysqltune بهینه شده.
لود دیتابیس سرور روی رم بالا نیست و کلا دیتابیس رم زیادی مصرف نمیکنه
حجم زیپ نشده دیتابیس 600 مگ هست.
من به ایشون عرض کردم مشکل در اسکریپت ایشون هست و اسکریپ هست که منابع رو مدیریت میکنه
اینجور عملیاتی که ما انجام میدیم فقط محدود کردن استفاده از منابع هست
---------- Post added at 12:16 PM ---------- Previous post was at 12:13 PM ----------
Swap: 523260k total, 0k used, 523260k free, 794944k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4792 mysql 20 0 3644m 205m 4156 S 104.8 0.9 56:34.50 mysqld
5658 apache 20 0 100m 10m 3456 S 0.7 0.0 0:00.24 httpd
5719 apache 20 0 102m 11m 3976 S 0.7 0.0 0:00.21 httpd
5717 apache 20 0 100m 10m 3452 S 0.3 0.0 0:00.11 httpd
5735 apache 20 0 100m 10m 3424 S 0.3 0.0 0:00.03 httpd
5737 root 20 0 15056 1276 892 R 0.3 0.0 0:00.03 top
1 root 20 0 19248 1492 1220 S 0.0 0.0 0:01.60 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0
6 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
7 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/1
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kworker/1:0
9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/1
10 root 20 0 0 0 0 S 0.0 0.0 0:00.50 kworker/0:1
11 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/2
12 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kworker/2:0
13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/2
14 root RT 0 0 0
---------- Post added at 12:17 PM ---------- Previous post was at 12:16 PM ----------
میزان استفاده از CPU بین 20 تا 250 % متغیر هست که تمام موارد رو دیتابیس مصرف میکنه
cpu core i 7
-
1 فایل پیوست
پاسخ : بلعیدن cpu توسط mysql
-
پاسخ : بلعیدن cpu توسط mysql
با عرض سلام خدمت یوزر آلبرت
این سایت من قبلا روی یک هاست اشتراکی بودند که هیچ مشکلی نداشت ولی با سرور اختصاصی نمیدونم چرا اینقدر سی.پی.یو مصرف می کند.
اسکریپت سایت همان اسکریپت است با همون دیتابیس.
-
پاسخ : بلعیدن cpu توسط mysql
اگه با mysqltuner آنالیز و tune کردید که قاعدتا سرور تا الان باید بسوزه دیگه !
معمولا mysqltuner براساس مقدار مصرف و منابع مصرف شده دایم پیشنهاد اختصاص منابع بیشتر رو میده و به تدریج mysql خودش به تنهایی نیازمند یک ابر هست که عادی کار کنه فقط !
-
پاسخ : بلعیدن cpu توسط mysql
این تنظیمات در تنظیمات my.cnf اعمال شده
skip-innodb
log-slow-queries=/var/lib/mysql/slow.log
skip-locking
key_buffer = 512M
#max_allowed_packet = 1M
max_allowed_packet = 16M
table_cache = 256
#sort_buffer_size = 1M
sort_buffer_size = 16M
#read_buffer_size = 1M
read_buffer_size = 16M
read_rnd_buffer_size = 2M
myisam_sort_buffer_size = 64M
thread_cache_size = 64
query_cache_size= 2000M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8
سایت هایی که از امار گیر شما استفاده میکنند برای اپدیت شدن درخواست دریافت اطلاعات ارسال میکنند
دیتابیس برای جواب دادن به درخواست اونها کورلی میگیره و جوستجو میکنه
البته من برنامه نویسی اشنایی ندارم
اگر من کد امار گیر شمارو در سایتم قرار بدم برای هر مشاهده سایت و اپدیت بازدید درخواست ارسال میشه
حالا به نظر شما من برای کم کردم پردازش چه چیزی از منابع دیتابیس رو محدود کنم
---------- Post added at 12:47 PM ---------- Previous post was at 12:46 PM ----------
اینکه با mysqltuner نرمالایز بشه درخوست ایشون و برنامه نویس اسکریپت بوده هرچند تاثیری نداشته
بنده انواع تنظیمات رو تست کردم
-
پاسخ : بلعیدن cpu توسط mysql
شما دستی این مقادیرو دادی ؟ اگر my.cnf همینه باید بگم به هیچ عنوان متناسب با بار وب سایت و سخت افزار بهینه نشده.. :)
-
پاسخ : بلعیدن cpu توسط mysql
خیر این پیشنهاد اون برنامه بوده
شما چه چیزی پیش نهاد میکنید ؟
-
پاسخ : بلعیدن cpu توسط mysql
از تمامی دوستان که تخصص دارند تقاضای درخواست کمک رو دارم.
-
پاسخ : بلعیدن cpu توسط mysql
با woshka عزیز تماس بگیرین تخصصی در این کار دارن!!
میزبانی وب و ثبت دامنه توسط مارون هاست - مارون هاست
-
پاسخ : بلعیدن cpu توسط mysql
در ssh عبارت mysql را تایپ و enter کنید
دستور زیر را اجرا کنید :
SHOW PROCESSLIST
و خروجی را اینجا بذارید.
همچنین در فایل etc/my.cnf عبارت log-slow-queries را قرار داده و mysql را restart کنید. بعد از چند ساعت چک کنید ببینید کدام کوری ها زمان بیشتری برای اجرا نیاز دارند (کند هستند)
-
پاسخ : بلعیدن cpu توسط mysql
آقای faranetwork من این سرور رو از شما گرفتم که قرار بود اوپتیمایزشده تحویل بدید که این کار رو نکردید.
-
پاسخ : بلعیدن cpu توسط mysql
چک کنید ببینید ایا Slow Query ها چطوره .
همچنین کانکشنهای معلق سرور .
با این اطلاعات به جایی نمیشه رسید .
-
پاسخ : بلعیدن cpu توسط mysql
نقل قول:
نوشته اصلی توسط
Talahost.Com
در ssh عبارت mysql را تایپ و enter کنید
دستور زیر را اجرا کنید :
SHOW PROCESSLIST
و خروجی را اینجا بذارید.
همچنین در فایل etc/my.cnf عبارت log-slow-queries را قرار داده و mysql را restart کنید. بعد از چند ساعت چک کنید ببینید کدام کوری ها زمان بیشتری برای اجرا نیاز دارند (کند هستند)
دستور شما برای سیستمعامل تعریف نشده هست
CPU CPU NI S TIME COMMAND
0.1 - 0 S 00:00:00 /usr/sbin/httpd -k start -DSSL
0.1 - 0 S 00:00:00 /usr/sbin/httpd -k start -DSSL
0.1 - 0 S 00:00:00 /usr/sbin/httpd -k start -DSSL
0.1 - 0 S 00:00:00 /usr/sbin/httpd -k start -DSSL
0.1 - 0 S 00:00:00 /usr/sbin/httpd -k start -DSSL
0.1 - 0 S 00:00:00 /usr/sbin/httpd -k start -DSSL
0.1 - 0 S 00:00:00 /usr/sbin/httpd -k start -DSSL
0.1 - 0 Z 00:00:00 [httpd] <defunct>
0.1 - 0 S 00:00:00 /usr/sbin/httpd -k start -DSSL
0.1 - 0 S 00:00:00 /usr/sbin/httpd -k start -DSSL
0.1 - 0 S 00:00:00 /usr/sbin/httpd -k start -DSSL
0.1 - 0 S 00:00:00 /usr/sbin/httpd -k start -DSSL
0.2 - 0 S 00:00:00 /usr/sbin/httpd -k start -DSSL
0.2 - 0 S 00:00:00 /usr/sbin/httpd -k start -DSSL
0.2 - 0 S 00:00:00 /usr/sbin/httpd -k start -DSSL
146 - 0 S 06:07:36 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysq
l --pid-file=/var/lib/mysql/mehrstat.com.pid --skip-external-locking
[root@mehrstat ~]#
-
پاسخ : بلعیدن cpu توسط mysql
-
پاسخ : بلعیدن cpu توسط mysql
این show processlist رو باید بعد از این که به mysql console وارد شدید بزنید .
اول
mysql -u MYSQLUSERNAME -p
با این دستور وارد کنسول mysql بشید . به جای MYSQLUSERNAME هم نام کاربری Mysql رو بزارید .
بهتره اول log slow queries رو فعال کنید تا بشه فهمید دقیقه کدوم اعمال مدت زمان بیشتر و فشار بیشتری وارد میکنن .
-
پاسخ : بلعیدن cpu توسط mysql
اگر منظورتون نمایش کورلی های در حال اجرا هست این دستور هست
mysqladmin -u root -p -i2 processlist
که خروجی این رو برای شما هم میزارم تا نظر بدید
:"""
+-------+--------------+-----------+---------------+---------+------+--------------+-----
----------------------------------------------------------------------------------------+
| 74569 | mehrstat_ako | localhost | mehrstat_stat | Query | 0 | Sending data | sele
ct * from bazdid_rooz where site='1882' and checked_top=0 order by id desc limit 2 |
| 75074 | mehrstat_ako | localhost | mehrstat_stat | Sleep | 13 | |
|
| 75090 | root | localhost | | Query | 0 | | show
processlist |
| 75100 | mehrstat_ako | localhost | mehrstat_stat | Query | 0 | Sending data | sele
ct * from bazdid_safhe_date where site=209 and page='http://aloneboy.com/tag/???-?????? |
+-------+--------------+-----------+---------------+---------+------+--------------+-----
----------------------------------------------------------------------------------------+
+-------+--------------+-----------+---------------+---------+------+--------------+-----
-----------------------------------------------------------------------------------------
--------+
بیشترین درخواست ها توسط این 2 یوزر به سرور ارسال میشه
allmp3
aloneboy
کلا درخواست به سمت سرور زیاد هست
دوستان توجه داشته باشند که این یک سایت امارگیر هست
-
پاسخ : بلعیدن cpu توسط mysql
این تنظیماتی که برای my.cnf گذاشتید متناسب نیست mysqltuner.pl را اجرا کنید خروجی را اینجا بزارید تا بگم مقادیر را به چی تغییر بدید.
لطفا خروجی را داخل تگ code بزارید.
داخل top مقدا iow را بنویسید ، داخل فایل slow query ببنید کدام کوئری بیشتر تکرار شده اینجا بزارید یا اینکه داخل لیست کوئری ها ببنید کدوم کوئری بیشتر از 5 یا 10 ثانیه طول میکشه و اینجا بزارید
-
پاسخ : بلعیدن cpu توسط mysql
ممکنه وب سرور خوب کامپایل نشده باشه
-
پاسخ : بلعیدن cpu توسط mysql
سلام دوستان
این لوگ slow query
البته این چیزی رو نمایش نمیده و همیش همین خیط کپی میشه تو این ریپورت
کد:
/usr/sbin/mysqld, Version: 5.0.91-community-log (MySQL Community Edition (GPL)). started $
Tcp port: 0 Unix socket: (null)
Time Id Command Argument
و گزارش myslqtuner
کد:
-------- Performance Metrics -------------------------------------------------
[--] Up for: 10s (174 q [17.400 qps], 14 conn, TX: 44K, RX: 13K)
[--] Reads / Writes: 54% / 46%
[--] Total buffers: 34.0M global + 2.7M per thread (100 max threads)
[OK] Maximum possible memory usage: 309.0M (1% of installed RAM)
[OK] Slow queries: 0% (0/174)
[OK] Highest usage of available connections: 3% (3/100)
[!!] Key buffer size / total MyISAM indexes: 8.0M/44.4M
[!!] Key buffer hit rate: 58.3% (211 cached / 88 reads)
[!!] Query cache is disabled
[OK] Temporary tables created on disk: 0% (0 on disk / 2 total)
[!!] Thread cache is disabled
[OK] Table cache hit rate: 82% (29 open / 35 opened)
[OK] Open file limit used: 5% (58/1K)
[OK] Table locks acquired immediately: 100% (160 immediate / 160 locks)
[!!] Connections aborted: 7%
-------- Recommendations -----------------------------------------------------
General recommendations:
Add skip-innodb to MySQL configuration to disable InnoDB
Run OPTIMIZE TABLE to defragment tables for better performance
MySQL started within last 24 hours - recommendations may be inaccurate
Set thread_cache_size to 4 as a starting value
Your applications are not closing MySQL connections properly
Variables to adjust:
key_buffer_size (> 44.4M)
query_cache_size (>= 8M)
thread_cache_size (start at 4)
با تشکر از دوستان
-
پاسخ : بلعیدن cpu توسط mysql
نقل قول:
نوشته اصلی توسط
akonews
آقای
faranetwork من این سرور رو از شما گرفتم که قرار بود اوپتیمایزشده تحویل بدید که این کار رو نکردید.
ما روی سی پنل بهتون تحویل دادم!! خودتون گفتین فرمت کنیم دایرکت ادمین نصب کنین!!! برای کانفیگ هم هزینه ای دریافت نشده ازتون که بخواد منتی باشه یا کم کاری
-
پاسخ : بلعیدن cpu توسط mysql
-
پاسخ : بلعیدن cpu توسط mysql
نقل قول:
نوشته اصلی توسط
allbert
سلام دوستان
این لوگ slow query
البته این چیزی رو نمایش نمیده و همیش همین خیط کپی میشه تو این ریپورت
کد:
/usr/sbin/mysqld, Version: 5.0.91-community-log (MySQL Community Edition (GPL)). started $
Tcp port: 0 Unix socket: (null)
Time Id Command Argument
و گزارش myslqtuner
کد:
-------- Performance Metrics -------------------------------------------------
[--] Up for: 10s (174 q [17.400 qps], 14 conn, TX: 44K, RX: 13K)
[--] Reads / Writes: 54% / 46%
[--] Total buffers: 34.0M global + 2.7M per thread (100 max threads)
[OK] Maximum possible memory usage: 309.0M (1% of installed RAM)
[OK] Slow queries: 0% (0/174)
[OK] Highest usage of available connections: 3% (3/100)
[!!] Key buffer size / total MyISAM indexes: 8.0M/44.4M
[!!] Key buffer hit rate: 58.3% (211 cached / 88 reads)
[!!] Query cache is disabled
[OK] Temporary tables created on disk: 0% (0 on disk / 2 total)
[!!] Thread cache is disabled
[OK] Table cache hit rate: 82% (29 open / 35 opened)
[OK] Open file limit used: 5% (58/1K)
[OK] Table locks acquired immediately: 100% (160 immediate / 160 locks)
[!!] Connections aborted: 7%
-------- Recommendations -----------------------------------------------------
General recommendations:
Add skip-innodb to MySQL configuration to disable InnoDB
Run OPTIMIZE TABLE to defragment tables for better performance
MySQL started within last 24 hours - recommendations may be inaccurate
Set thread_cache_size to 4 as a starting value
Your applications are not closing MySQL connections properly
Variables to adjust:
key_buffer_size (> 44.4M)
query_cache_size (>= 8M)
thread_cache_size (start at 4)
با تشکر از دوستان
سلام
دوست عزیز این mysql با اطمینان میتوانم بگم که درست کانفیگ نشده و الان در وضعیت عادی هم نیست و این کانفیگ برای یک وی پی اس 512 خوبه نه سرور با این کانفیگ :)
دیتابیس و اسکریپت را ندیدم ولی از روی حجم ایندکس میشه گفت احتمالا خوب ایندکس گزاری نشده ...
این کانفیگ را جایگزین کنید حتما لود کمتری خواهید داشت با کارایی بیشتر:
نقل قول:
key_buffer = 64MB
table_cache = 1000
table_definition_cache = 1000
read_rnd_buffer_size = 3M
myisam_sort_buffer_size = 128M
query_cache_type = 1
query_cache_size = 256M
query_cache_limit=5M
query_cache_min_res_unit=1k
join_buffer_size=4M
thread_cache_size=6
max_connection=100
interactive_timeout=60
wait_timeout=60
low_priority_updates=1
concurrent_insert=2
max_heap_table_size = 16M
tmp_table_size=16M
دقت کنید بعد از جایگزین کردن این کانفیگ mysql را ری استارت کنید و استانداردش 24 ساعت هست ولی حداقل یکساعت بعد از ری استارت مجدد ریپورت mysqltuner را بفرستید این ریپورتی که الان بالا فرستادید برای 10 ثانیه پس از اجرا mysql هست که گزارش در این مدت کم عملا بی استفاده است ...
-
پاسخ : بلعیدن cpu توسط mysql
بعد از انجام تغییراتی که شما گفتید mysql دیگه run نمیشه !
من خیلی از گزینه ها رو تغییر دادم اما تغییری نکرد.
من برای اینکه شما بتونید درست تصمیم بگیرید تنظیمات خودم رو از my.cnf پاک کردم بعد با mysqltuner گزارش گرفتم
گزارشی که قرار دادم کاملا مشخص هست که تغییری داده نشده
همون تمظیمات my.cnf که من داده بودم 5 گیگ از حافظه رم به mysql اختصاص داده شده بود البته نمیگم کار من درست هست . اما به اون بدی که شما گفتید هم نیست
کد:
#local-infile=0
key_buffer = 64MB
table_cache = 1000
table_definition_cache = 1000
read_rnd_buffer_size = 3M
myisam_sort_buffer_size = 128M
query_cache_type = 1
query_cache_size = 256M
query_cache_limit=5M
query_cache_min_res_unit=1k
join_buffer_size=4M
thread_cache_size=6
max_connection=100
interactive_timeout=60
wait_timeout=60
low_priority_updates=1
concurrent_insert=2
max_heap_table_size = 16M
tmp_table_size=16M
log-slow-queries=/var/lib/mysql/slow.log
[root@mehrstat ~]# service mysqld restart
ERROR! MySQL manager or server PID file could not be found!
Starting MySQL. ERROR! Manager of pid-file quit without updating file.
[root@mehrstat ~]# ^C
[root@mehrstat ~]# ^C
[root@mehrstat ~]#
-
پاسخ : بلعیدن cpu توسط mysql
این مقادیر رو در کانفیگ فعلی جایگزین کنید یا هر کدوم که نیست اضافه کنید ، من کانفیگ کامل را نفرستادم فقط پارامتر هایی که نیاز به تغییر داشتن رو فرستادم.
اگر برای اجرا خطا داد داخل فایل /var/lib/mysql به اسم سرور یک لاگ برای mysql هست که خطا داخلش نوشته شده ان را باید نگاه کنید و مشکل را حل کنید.
اگر مشکلی بود پسورد بفرستید خودم ردیفش کنم.
-
پاسخ : بلعیدن cpu توسط mysql
فرقی نداره یک یا 2 پارامتر هرکدوم رو که وارد بشه اعمال میشه تغییرات
احتمالا یکی از پارامتر ها مشکل داشت
-
پاسخ : بلعیدن cpu توسط mysql
من هم این مشکل رو داشتم
مقادیر mysqltuner را ست کنید
یکبار mysql را هم آپگرید کنید از whm
-
پاسخ : بلعیدن cpu توسط mysql
نقل قول:
نوشته اصلی توسط
هاست 97
من هم این مشکل رو داشتم
مقادیر mysqltuner را ست کنید
یکبار mysql را هم آپگرید کنید از whm
متشکر بخاطر پاسخ
فکر نمیکنم بخاطر اپگرید دیتابیس یا درست کامپایل نشدن وبسرور باشه چون من بعد از این مشکل یک بار سرور رو rebuild کردم و دایرکت ادمین رو دوباره نصب کردم
-
پاسخ : بلعیدن cpu توسط mysql
نقل قول:
نوشته اصلی توسط
allbert
متشکر بخاطر پاسخ
فکر نمیکنم بخاطر اپگرید دیتابیس یا درست کامپایل نشدن وبسرور باشه چون من بعد از این مشکل یک بار سرور رو rebuild کردم و دایرکت ادمین رو دوباره نصب کردم
پارامترها رو تنظیم کردم mysql را هم ری استارت کردم وضعیتش بهتر نشد ؟
-
پاسخ : بلعیدن cpu توسط mysql
-
پاسخ : بلعیدن cpu توسط mysql
نقل قول:
نوشته اصلی توسط
ali2k
پارامترها رو تنظیم کردم mysql را هم ری استارت کردم وضعیتش بهتر نشد ؟
بنده عرض کرده بودم مشکل از تنظیمات نیست و mysql نیاز به مصرف این مقدار از منابع داره
-
پاسخ : بلعیدن cpu توسط mysql
با سپاس ولی مشکل همچنان پا برجاست.
-
پاسخ : بلعیدن cpu توسط mysql
-
پاسخ : بلعیدن cpu توسط mysql
دوستان کسی نبود که یک راه حل نشون بده که واقعا جواب بده.