Yapay olarak nasıl mysql yavaş bir sorgu oluşturabilirsiniz?


16

Birkaç hafta içinde sunum için el ele veriyorum. Bu demonun bir kısmı yavaş sorgu günlüğü kullanımı da dahil olmak üzere temel mysql sorun giderme içindir. Ben bir veritabanı oluşturduk ve bizim app yükledim ama onun temiz bir veritabanı ve bu nedenle yeterli sorunları oluşturmak zor.

Yavaş sorgu günlüğünde sorgu almak için aşağıdakileri denedim:

Yavaş sorgu süresini 1 saniyeye ayarlayın.

Birden çok dizin silindi.

Sistemi vurguladı:

stress --cpu 100 --io 100 --vm 2 --vm-bytes 128M --timeout 1m

Bazı temel web sayfası çağrılarını wget kullanarak betikledi.

Bunların hiçbiri yavaş sorgu üretmedi. Sorunları üretmek için veritabanını yapay olarak vurgulamanın başka bir yolu var mı? Karmaşık bir Jmeter veya başka bir yük jeneratörü yazmak için yeterli yeteneğim yok. Belki de mysql veya stresin ötesinde başka bir linux hilesi içine inşa edilmiş bir şey umuyorum.


1
+1 Yavaş kurnazlar istemek için. Gerçek durumlarda sadece bu şekilde olsaydı: D
kırmızı

Yanıtlar:


5

Ödeme mysqlslap . Web uygulamanızın sorgularından birini --query ile iletebilir ve --concurrency ile eşzamanlı istemcileri belirtebilirsiniz.


Bu en iyi şekilde çalıştı ... bunu ve veritabanı de-tuning'in bir kombinasyonunu kullanarak.
Gri Yarış

35

Tamamen yapay ama sleep()fonksiyonu kullanabilirsiniz :

select sleep(10);

Günlükte:

Time                 Id Command    Argument
# Time: 110629 16:19:13
# User@Host: mysql[mysql] @ localhost []
# Query_time: 10.000218  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0
SET timestamp=1309389553;
select sleep(10);

Öneri için teşekkürler ... Günlüğü büyümek alır, ama ben uygulama için yasal sorgular olmasını istiyorum. Bu şekilde ben açıklamak ve diğer teşhis araçları demo.
Gray Race

:) Hmm ... belki stratejik bir LOCK TABLESişe yarayacaktır. Bu da çok zor olabilir.
Mark Wagner

1
Genellikle * 'den ((veritabanından * seçin) x) seçimini yapın ve her zamankinden daha fazla recrusive almaya devam etmek benim için hile yapar.
alexyorke

Kullanım DO SLEEP(10);Sorgunuzda sen UYKU sonucunu istemiyorsanız.
Rasmus Friis Kjeldsen

1

Belki de veritabanının ayarının kaldırılması yardımcı olabilir? Örneğin key_buffers boyutunu küçültmek?

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.