-
January 28th, 2016, 10:54
#1
عضو دائم
سوال تخصصی در باره sql با پرداخت هزینه !!!!!!
با سلام و احترام
مشکلی داریم با یک سایت فروشگاهی وردپرس که دیتابیس سایت در زمانهایی شدیدا درگیر میشود و مصرف cpu در mysql بالا میرود به طوری که سایت دیگر بالا نمی آید
تعداد آنلاینها از 100 تا 600 نفر است اما این مشکل در هر تعداد انلاینی رخ میدهد
امکان دارد در هر لحظه 50 نفر باهم خرید کنند به بانک بروند و به سایت بازگردند
از لحاظ تنظیمات my.cnf کاملا بهینه است
از نظر سخت افزار 128 گیگ رم 2 cpu با مجموع 32 هسته زئون هارد ssd
کل مشکل آنطوری که فکر میکنیم از یک Query است که زمانی که تعداد آن Query توسط چند بازدید کننده زیاد باشد و در صف قرار بگیرد باعث هنگ کردن و پاسخ ندادن به query های در صف میشود ,
و ما میخوایم بفهمیم کدام query این مشکل را باعث میشود
تصویر زیر خروجی از mtop است که تایم یک query را تا 50 ثانیه هم نگه میدارد و دیگر query ها در صف میمانند , و باعث کندی و هنگ mysql میشود
Untitled.png
اگر کسی بتونه راهنمایی کنه Query مشکل ساز را پیدا کنیم با هزینه هیچ میکلی نداریم
با تشکر
- - - Updated - - -
یعنی متخصص sql نیست ؟
-
-
January 28th, 2016 10:54
# ADS
-
January 28th, 2016, 11:04
#2
عضو دائم
پاسخ : سوال تخصصی در باره sql با پرداخت هزینه !!!!!!
سلام .
سیستم عامل چی هست ؟
-
-
January 28th, 2016, 11:31
#3
عضو دائم
پاسخ : سوال تخصصی در باره sql با پرداخت هزینه !!!!!!
سلام
1. از افزونه های کش استفاده کنید تا قسمت های غیر ضروری هر بار از دیتابیس بارگذاری نشند.
2. افزونه ها رو یکی یکی غیر فعال کنید ، شاید مشکل از افزونه ها باشد. ( قبلا مشکل مشابهی رو با افزونه تاریخ شمسی داشتیم ( بخش آرشیو ) !)
3. فایل های پوسته یا مرتبط رو طوری تنظیم کنید که برای آی پی شما کل کویری های اجرا شده صفحه رو نمایش بده. از روی کویری ها میشه اطلاعات خوبی بدست آورد.
-
-
January 28th, 2016, 15:54
#4
عضو دائم
پاسخ : سوال تخصصی در باره sql با پرداخت هزینه !!!!!!
تشکر از دوستان
سنتوز و cpanel است
محتویات فایل my.cnf
[mysqld]
general_log_file = /var/log/mysql/mysql.log
general_log = 1
log_slow_queries = /var/log/mysql/mysql-slow.log
slow_query_log
local-infile=0
default-storage-engine=InnoDB
back_log=50
#skip_networking
max_user_connections=150
max_connections=300
max_connect_errors=20
table-open-cache=8192
table-definition-cache=4096
table_cache=1024
open_files_limit=10000
key-buffer-size=256M
tmp_table_size=2560M
max_heap_table_size=2560M
max_allowed_packet=256M
#sort_buffer_size = 1M
sort_buffer_size =60M
#read_buffer_size = 1M
read_buffer_size=8M
read_rnd_buffer_size=60M
myisam_sort_buffer_size=64M
thread_cache_size=60
query_cache_size=3200M
#Try number of CPU's*2 for thread_concurrency
thread_concurrency=32
query_cache_type=1
query_cache_limit=3200M
join_buffer_size=3M
wait_timeout=30
interactive_timeout=30
connect_timeout=15
long_query_time=2
# Innodb Configs
innodb_use_native_aio=0
innodb_buffer_pool_size=10G
innodb_read_io_threads=16
innodb_write_io_threads=16
innodb_io_capacity=300
innodb_buffer_pool_instance=10
innodb_file_per_table
innodb_log_files_in_group=2
innodb_log_buffer_size=8M
innodb_flush_log_at_trx_commit=2
innodb_thread_concurrency=32
innodb_file_io_threads=4
innodb_additional_mem_pool_size=20M
innodb_flush_method = O_DIRECT
innodb_purge_threads=1
innodb_adaptive_flushing=1
innodb_doublewrite=1
server-id=1
[safe_mysqld]
err-log=/var/log/mysqld.log
[mysqldump]
quick
[mysql]
no-auto-rehash
#safe-updates
[isamchk]
sort_buffer=64M
read_buffer=16M
write_buffer=16M
[myisamchk]
key_buffer=64M
sort_buffer=64M
read_buffer=16M
write_buffer=16M
-
-
January 28th, 2016, 18:30
#5
عضو انجمن
پاسخ : سوال تخصصی در باره sql با پرداخت هزینه !!!!!!
Slow Queries لاگ رو فعال کنید ببینید کدوم یکی از درخواست ها زمان بیشتری رو صرف میکنه شاید اطلاعاتی بتونید کسب کنید
از این لینک استفاده کنید
http://www.ducea.com/2006/11/06/iden...-slow-queries/
-
-
January 28th, 2016, 21:26
#6
عضو دائم
پاسخ : سوال تخصصی در باره sql با پرداخت هزینه !!!!!!

نوشته اصلی توسط
Rezash
سلام
1. از افزونه های کش استفاده کنید تا قسمت های غیر ضروری هر بار از دیتابیس بارگذاری نشند.
2. افزونه ها رو یکی یکی غیر فعال کنید ، شاید مشکل از افزونه ها باشد. ( قبلا مشکل مشابهی رو با افزونه تاریخ شمسی داشتیم ( بخش آرشیو ) !)
3. فایل های پوسته یا مرتبط رو طوری تنظیم کنید که برای آی پی شما کل کویری های اجرا شده صفحه رو نمایش بده. از روی کویری ها میشه اطلاعات خوبی بدست آورد.
منظورم از مورد 3 این بود :
داخل wp-config این خط رو اضافه کنید ( موقت )
define('SAVEQUERIES', true)
و در فوتر سایت :
کد PHP:
<?php
if ( current_user_can( 'administrator' ) ) {
global $wpdb;
echo "<pre>";
print_r( $wpdb->queries );
echo "</pre>";
}
?>
اطلاعات بیشتر :
http://codex.wordpress.org/Editing_w...s_for_analysis
اگر مشکل از وردپرس باشه احتمال زیاد با این روش مشکل رو می تونید پیدا کنید.
-
-
January 28th, 2016, 21:39
#7
عضو دائم
پاسخ : سوال تخصصی در باره sql با پرداخت هزینه !!!!!!
با سوییچ به ماریا دی بی مشکل تا حد زیادی مرتفع خواهد شد.
-
-
January 30th, 2016, 12:23
#8
عضو دائم
پاسخ : سوال تخصصی در باره sql با پرداخت هزینه !!!!!!

نوشته اصلی توسط
cartman10mpi
تشکر این پلاگین را چند روزی است نصب کردم متاسفانه لاگ را مگه نمیدارد و ریل تایم باید مانیتور شود ولی خوب است
- - - Updated - - -

نوشته اصلی توسط
Rezash
منظورم از مورد 3 این بود :
داخل wp-config این خط رو اضافه کنید ( موقت )
و در فوتر سایت :
کد PHP:
<?php
if ( current_user_can( 'administrator' ) ) {
global $wpdb;
echo "<pre>";
print_r( $wpdb->queries );
echo "</pre>";
}
?>
اطلاعات بیشتر :
http://codex.wordpress.org/Editing_w...s_for_analysis
اگر مشکل از وردپرس باشه احتمال زیاد با این روش مشکل رو می تونید پیدا کنید.
تشکر از کش استفاده میشود و به نظر شما کدام افزرونه کش مناسب و حرفه ای تر است ؟
افزونه اضافه نصب نیست
- - - Updated - - -

نوشته اصلی توسط
arc1o0
با سوییچ به ماریا دی بی مشکل تا حد زیادی مرتفع خواهد شد.
تشکر inodb استفاده میشه و فکر میکنم از ماریا بهتره
- - - Updated - - -
دوستان در محتویات فایل my.cnf نقصی نمیبینید و پیشنهادی ندارید ؟
-
-
January 30th, 2016, 14:13
#9
پاسخ : سوال تخصصی در باره sql با پرداخت هزینه !!!!!!
درود بر شما؛
با توجه به اینکه فرمودید سایت فروشگاهی هست، احتمالا برای سفارشی سازی نمایش محتوا، در بخش های زیادی کوئری های وردپرس ویرایش شدند.
اگر این ویرایش کوئری ها توسط "کوئری پست" انجام شده، شک نداشته باشید 90درصد مشکل و فشار وارده به همین دلیل هست. اگر اطلاعات بیشتری در این مورد نیاز داشتید؛ کوئری پست وردپرس و مشکلات بهینه سازی سایت
همچنین، اگر سفارشی سازی کوئری ها توسط WP_Query انجام شده، برای کاهش فشار، در مکان هایی که نیاز به متاها و صفحه بندی ندارید، محاسبه شماره صفحات و فراخوانی متاهای اضافی مانند (دسته بندی، برچسب ها) رو در سفارشی سازی WP_Query غیر فعال کنید. لذا شما سه محاسبه پر فشار و فراخوانی محتوا رو از کوئری حذف کردید
پیروز باشید
-