Bugün, esas olarak mysql ve sysbench araçlarının bazı kıyaslama testlerini tanıtıyorum ve ardından üretim ortamı için bir sysbench vakası yapacağım.
1. Ölçüt nedir
Veritabanı karşılaştırma testi, veritabanının performans göstergelerinin nicel, tekrarlanabilir ve karşılaştırılabilir bir testidir.
Kıyaslama ve stres testi
Kıyaslama testi, sistem için bir stres testi olarak anlaşılabilir. Ancak karşılaştırma testleri iş mantığını önemsemez ve daha basit, daha doğrudan ve test etmesi daha kolaydır.Veriler araçlar tarafından üretilebilir ve gerçeği gerektirmez; stres testleri genellikle iş mantığını (alışveriş sepeti işi gibi) dikkate alır ve gerçek verileri gerektirir.
2. Kıyaslamanın rolü
Çoğu web uygulaması için, tüm sistemin darboğazı veritabanında yatmaktadır; nedeni basittir: ağ uygulamasındaki diğer faktörler, örneğin ağ bant genişliği, yük dengeleme düğümleri, uygulama sunucuları (CPU, bellek, sabit disk ışıkları, bağlantı sayısı vb. Dahil), önbellek vb. Yatay genişletme yoluyla (genellikle makine ekleme olarak bilinir) performans artışı elde etmek kolaydır. MySQL için, veri tutarlılığı gereksinimleri nedeniyle, makinenin veri tabanına veri yazma baskısını arttırması imkansızdır; ancak önbelleğe alma (Redis, vb.), Okuma ve yazmaların ayrılması, veri tabanı ve tablo bölme ile baskı azaltılabilir, ancak Sistemin diğer bileşenlerinin yatay genişlemesiyle karşılaştırıldığında, çok fazla kısıtlama var.
Veritabanı karşılaştırma testinin rolü, MySQL'in performans eşiğini bulmak ve yapılandırmayı gerçek sistem gereksinimlerine göre ayarlamak için mevcut yapılandırma (donanım yapılandırması, işletim sistemi, veritabanı ayarları vb. Dahil) altında veritabanının performansını analiz etmektir.
3. Kıyaslama göstergeleri
Ortak veritabanı göstergeleri şunları içerir:
4. Kıyaslama testlerinin sınıflandırılması
MySQL'i kıyaslamak için iki fikir vardır:
(1) Tüm sistem için kıyaslama testi: tarayıcılar, APP'ler veya postacı gibi test araçları gibi http istekleri aracılığıyla test etme. Bu şemanın avantajı, tüm sistemi daha iyi hedefleyebilmesi ve test sonuçlarının daha doğru olmasıdır; dezavantajı, tasarımın karmaşık ve uygulanmasının zor olmasıdır.
(2) Yalnızca MySQL için kıyaslama testi: Avantajlar ve dezavantajlar, tüm sistem için testin tam tersidir.
MySQL ile kıyaslama yaparken, genellikle mysqlslap, sysbench vb. Gibi özel araçlar kullanılır. Bunlar arasında sysbench, mysqlslap'tan daha çok yönlü ve güçlüdür ve Innodb için daha uygundur (çünkü birçok Innodb IO özelliğini simüle eder), aşağıda sysbench kullanarak kıyaslama yöntemi açıklanmaktadır.
1. sysbench'e giriş
sysbench, çoklu iş parçacığı ve çoklu veritabanlarını destekleyen bir çapraz platform karşılaştırmalı test aracıdır; esas olarak aşağıdaki testleri içerir:
2. sysbench sözdizimi
Sysbench -help komutunu çalıştırın, sysbench'in ayrıntılı kullanımını görebilirsiniz.
Sysbench'in temel sözdizimi aşağıdaki gibidir:
sysbench ...Aşağıda, gerçek kullanımda yaygın olarak kullanılan parametreler ve komutlar açıklanmaktadır.
(1) komut
Komut, hazırlama, çalıştırma ve temizleme dahil olmak üzere sysbench tarafından yürütülecek komuttur.Adından da anlaşılacağı gibi, hazırla, verileri test için önceden hazırlamak, çalıştırmak resmi test yapmaktır ve temizleme, test tamamlandıktan sonra veritabanını temizlemektir.
(2) test adı
Test adı, gerçekleştirilecek testi belirtir.Sysbench'in eski sürümünde, test betiği --test parametresi aracılığıyla belirtilebilir; yeni sürümde --test parametresi eski olarak bildirildi, bu nedenle --test kullanamazsınız, ancak Komut dosyasını doğrudan belirtin.
Örneğin, aşağıdaki iki yöntem aynı etkiye sahiptir:
sysbench --test =. / test / include / oltp_legacy / oltp.lua sysbench ./tests/include/oltp_legacy/oltp.luaTestte kullanılan betik bir lua betiğidir, sysbench'in kendi betiğini kullanabilir veya kendiniz geliştirebilirsiniz. Çoğu uygulama için sysbench ile birlikte gelen komut dosyası yeterlidir. Sysbench'in farklı sürümlerinde, lua betiğinin konumu farklı olabilir, find komutunu sysbench yolunda oltp.lua'yı aramak için kullanabilirsiniz. Not: Çoğu veri hizmeti oltp türündedir. Oltp'nin ne olduğunu bilmiyorsanız, veri hizmetinizin oltp türü olma olasılığı yüksektir.
(3) seçenekler
Birçok sysbench parametresi vardır ve daha sık kullanılanlar şunları içerir:
MySQL bağlantı bilgisi parametreleri
MySQL yürütme parametreleri
3. sysbench'te dikkat edilecek noktalar
Sysbench'i çalıştırırken şunlara dikkat etmelisiniz:
(1) MySQL sunucusunun çalıştığı makinede test etmemeye çalışın.Bir yandan, ağın etkisini (hatta yerel alan ağını) yansıtmayabilir. Öte yandan, sysbench'in çalışması (özellikle eşzamanlı ayarların sayısı yüksek olduğunda) MySQL'i etkileyecektir. Sunucu performansı.
(2) İstemcideki eşzamanlı bağlantıların sayısını kademeli olarak artırabilir (--thread parametresi) ve MySQL sunucusunun performansını farklı bağlantılar altında gözlemleyebilirsiniz; örneğin, 10, 20, 50, 100 vb. Olarak ayarlayın.
(3) Genel yürütme modu karmaşık olabilir.Sunucunun salt okunur performansını veya işlem kullanılmadığında performansını test etmeniz gerekirse, basit modu veya nontrx modunu seçebilirsiniz.
(4) Arka arkaya birden fazla test gerçekleştirirseniz, önceki test verilerinin temizlendiğinden emin olun.
Daha sonra daha fazla devop ve DBA içeriği paylaşacağım ve ilgilenen arkadaşlar buna dikkat edebilir ~