[ASK] MariaDB slow log di wordpress meningkat terus


Status
Not open for further replies.

slepetan

Beginner 2.0
Lam kenal member DWH semua.. :D

Thread pertama, mau konsultasi nih... :)
Saya punya unmanaged VPS di ramnode untuk situs wordpress kecil2an... speknya:
1GB RAM
vCPU 4core
SSD 28GB
OS debian 7
Virtualisasi KVM

Nah, saya penasaran dengan slow queries yang selalu muncul di log mysql. Oh ya, saya pake nginx, php5-fpm, dan mariaDB. Denger2 ketiga kombinasi itu membuat performa dan efisiensi VPS lebih baik.

Code:
# User@Host: root[root] @ localhost []
# Thread_id: 1951351  Schema: wpdata  QC_hit: No
# Query_time: 0.000623  Lock_time: 0.000115  Rows_sent: 5  Rows_examined: 20
# Full_scan: No  Full_join: Yes  Tmp_table: Yes  Tmp_table_on_disk: Yes
# Filesort: Yes  Filesort_on_disk: No  Merge_passes: 0  Priority_queue: No
SET timestamp=1431784365;
SELECT t.*, tt.*, tr.object_id FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON tt.term_id = t.term_id INNER JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN ('category', 'post_tag', 'post_format') AND tr.object_id IN (25342, 15059, 18538, 20958, 4575) ORDER BY t.name ASC;
# User@Host: root[root] @ localhost []
# Thread_id: 1951354  Schema: wpdata  QC_hit: No
# Query_time: 0.000701  Lock_time: 0.000110  Rows_sent: 5  Rows_examined: 20
# Full_scan: No  Full_join: Yes  Tmp_table: Yes  Tmp_table_on_disk: Yes
# Filesort: Yes  Filesort_on_disk: No  Merge_passes: 0  Priority_queue: No
SET timestamp=1431784365;
SELECT t.*, tt.*, tr.object_id FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON tt.term_id = t.term_id INNER JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN ('category', 'post_tag', 'post_format') AND tr.object_id IN (16003, 12431, 4728, 10836, 9384) ORDER BY t.name ASC;
# User@Host: root[root] @ localhost []
# Thread_id: 1951355  Schema: wpdata  QC_hit: No
# Query_time: 0.000602  Lock_time: 0.000097  Rows_sent: 5  Rows_examined: 20
# Full_scan: No  Full_join: Yes  Tmp_table: Yes  Tmp_table_on_disk: Yes
# Filesort: Yes  Filesort_on_disk: No  Merge_passes: 0  Priority_queue: No
SET timestamp=1431784365;
SELECT t.*, tt.*, tr.object_id FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON tt.term_id = t.term_id INNER JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN ('category', 'post_tag', 'post_format') AND tr.object_id IN (11852, 9171, 11031, 4416, 200) ORDER BY t.name ASC;

Saya cek menggunakan mysqltuner.pl, "Joins performed without indexes"-nya banyak.. dan query diatas ada "INNER JOIN"-nya jadi asumsi saya query diatas lambat jalannya karena gak ada index (maaf kalo salah).

Itu gimana cara ngatasinnya ya tuan-tuan?
Bagaimana cara membuat index agar query diatas tereksekusi dengan baik?
Apa yang dilakukan query diatas? ini juga bikin saya bingung.

Kalo bisa teratasi mungkin load average bakalan banyak berkurang nih... :21:

wordpress 4.1.1
nginx 1.2.1
 

slepetan

Beginner 2.0
masih cukup responsif situsnya... Saya juga pake cloudflare dan APC...
Saya coba dulu toolsnya tuan.. :D
 

slepetan

Beginner 2.0
Thanks atas linknya tuan.. baru tau ada tools begini.. :D
Setelah saya tuning sesuai saran tools percona, slow lognya tetap muncul. baru 2 menit restart mysql, slow lognya udah 882 query.. :(
tetap query diatas yang 99% mendominasi..
 

palingwaras

Beginner 2.0
Sepertinya query berkaitan dengan pengambilan kategori/tag artikel. Kondisi kueri & table yg seperti itu (pakai banyak join, tanpa indexing) sudah bagian dari desain wordpress dari sananya. Kecuali sudah kepepet sangat lambat atau memang pengen ngoprek internal wordpress, menurut sy tidak perlu dimodifikasi.

Optimasi server mysql, ok. Tapi rasanya tetep akan muncul seperti itu karena "masalah" ada di wordpress, bukan server databasenya.

cmiiw.
 

Nina Prasetyo

Expert 2.0
Sepertinya query berkaitan dengan pengambilan kategori/tag artikel. Kondisi kueri & table yg seperti itu (pakai banyak join, tanpa indexing) sudah bagian dari desain wordpress dari sananya. Kecuali sudah kepepet sangat lambat atau memang pengen ngoprek internal wordpress, menurut sy tidak perlu dimodifikasi.

Optimasi server mysql, ok. Tapi rasanya tetep akan muncul seperti itu karena "masalah" ada di wordpress, bukan server databasenya.

cmiiw.

Betul.

Slow query pada taxonomy, ini memang masalah utama (common problem) buat para blogger yang ngejar SEO pakai ribuan/jutaan tagging pada blog-nya. Query tersebut sbnrnya simple, kalau jumlah taxonomynya sedikit. Tapi, bisa jadi bumerang kalau taxonomynya banyak.

Saya pribadi, biasa menggunakan DB query caching, bisa menggunakan cache internal pada MySQL/MariaDB nya sendiri ( https://mariadb.com/kb/en/mariadb/query-cache/ )

Atau juga bisa menggunakan external DB query caching, semisal memcache atau redis.
Khusus pada external DB query caching, Wordpress membutuhkan plugin yg bisa koneksi dengan memcache/redis. Silakan diujicobakan.

Semoga membantu.
 

CV YACANET

Poster 2.0
Kalau saya sih, tidak mempedulikannya bila masih responsif. baru kalau sdh terasa lambat webnya di tune up sana sini.
 

slepetan

Beginner 2.0
Betul.

Slow query pada taxonomy, ini memang masalah utama (common problem) buat para blogger yang ngejar SEO pakai ribuan/jutaan tagging pada blog-nya. Query tersebut sbnrnya simple, kalau jumlah taxonomynya sedikit. Tapi, bisa jadi bumerang kalau taxonomynya banyak.

Saya pribadi, biasa menggunakan DB query caching, bisa menggunakan cache internal pada MySQL/MariaDB nya sendiri ( https://mariadb.com/kb/en/mariadb/query-cache/ )

Atau juga bisa menggunakan external DB query caching, semisal memcache atau redis.
Khusus pada external DB query caching, Wordpress membutuhkan plugin yg bisa koneksi dengan memcache/redis. Silakan diujicobakan.

Semoga membantu.

Saya menggunakan SEO search terms tagging 2 sih... tapi penggunaannya gak over tune. Situs saya gak ada tag dan kategori pun cuma 1 yaitu uncategorized. Saya juga pake memcache, cuma entah membantu atau gak...
Oh.. berarti memcache itu gak cuma install, set and forget ya? perlu plugin untuk mengakomodasi kinerjanya?



Sepertinya query berkaitan dengan pengambilan kategori/tag artikel. Kondisi kueri & table yg seperti itu (pakai banyak join, tanpa indexing) sudah bagian dari desain wordpress dari sananya. Kecuali sudah kepepet sangat lambat atau memang pengen ngoprek internal wordpress, menurut sy tidak perlu dimodifikasi.

Optimasi server mysql, ok. Tapi rasanya tetep akan muncul seperti itu karena "masalah" ada di wordpress, bukan server databasenya.

cmiiw.

Oh gitu ya tuan... saya masih ogah oprek internal wordpress.. :21:
Apa ada cara untuk mendisablenya? mengingat saya gak pake tag dan kategori.
 

Nina Prasetyo

Expert 2.0
Saya menggunakan SEO search terms tagging 2 sih... tapi penggunaannya gak over tune. Situs saya gak ada tag dan kategori pun cuma 1 yaitu uncategorized. Saya juga pake memcache, cuma entah membantu atau gak...
Oh.. berarti memcache itu gak cuma install, set and forget ya? perlu plugin untuk mengakomodasi kinerjanya?

Betul boss.
Wordpress perlu plugin lagi untuk bisa pakai memcache-nya.
Kalau cuma pasang memcache aja ... ya idle aja.
 
Status
Not open for further replies.

Top