MySQL karşılaştırma testi ve sysbench aracına ayrıntılı giriş

Genel Bakış

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. Kıyaslamaya giriş

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:

  • TPS / QPS: üretimi ölçün.
  • Yanıt süresi: Ortalama yanıt süresi, minimum yanıt süresi, maksimum yanıt süresi, süre yüzdesi vb. Dahil olmak üzere, isteklerin ilk% 95'inin maksimum yanıt süresi gibi zaman yüzdesi daha büyük önem taşır. .
  • Eşzamanlılık: Aynı anda işlenen sorgu isteklerinin sayısı.

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.

İki, sysbench

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:

  • cpu performansı
  • Disk io performansı
  • Zamanlayıcı performansı
  • Bellek ayırma ve iletim hızı
  • POSIX iş parçacığı performansı
  • Veritabanı performansı (OLTP karşılaştırma testi)

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.lua

Testte 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-host: MySQL sunucu ana bilgisayar adı, varsayılan yerel ana bilgisayardır; bu makinede localhost kullanıyorsanız, MySQL sunucusuna bağlanamamanız istenir, sadece yerel makinenin IP adresini değiştirin.
  • --mysql-port: MySQL sunucu bağlantı noktası, varsayılan 3306
  • --mysql-user: kullanıcı adı
  • --mysql-password: şifre

MySQL yürütme parametreleri

  • --oltp-test modu: Basit, nontrx ve karmaşık dahil olmak üzere yürütme modu, varsayılan olarak karmaşıktır. Basit modda, yalnızca basit sorgular test edilir; nontrx yalnızca sorguları test etmekle kalmaz, aynı zamanda ekleme güncellemeleri vb. De test eder, ancak işlemleri kullanmaz; karmaşık modda, test, eklemeleri, silmeleri ve değişiklikleri test eden ve işlemleri kullanan en kapsamlı olanıdır. Test modunu ihtiyaçlarınıza göre seçebilirsiniz.
  • --oltp-tables-count: test edilen tablo sayısı, fiili duruma göre seçin
  • --oltp-table-size: test edilen tablonun boyutu, gerçek duruma göre seçin
  • --threads: istemcideki eşzamanlı bağlantıların sayısı
  • - time: test yürütme süresi, birim ikinci, değer çok kısa olmamalı, 120'yi seçebilirsiniz
  • --report-interval: 10 gibi saniye cinsinden raporlar oluşturmak için zaman aralığı

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 ~

Zhejiang Finans ve Ekonomi Üniversitesi'nin harçlarının keskin bir şekilde arttığı ve okulun sabah erken yanıt verdiği bildirildi: hesaplama yanlış
önceki
Bangladeş'te dang humması salgını, hastaneler aşırı kalabalık
Sonraki
Milli futbol takımı manevi desteğini kaybetmiş ve vatandaşlığa kabul edildikten sonra Dünya Kupası'na henüz girmemişse ne yapmalı?
Yabancı yardım politikalarını uygun şekilde açın, böylece yerli oyuncular kılık değiştirerek yurtdışında kalmaya eşdeğerdir
Birleştirme ve yeniden bağlama işlevlerinin ve işyerinde git'in farklılıklarının ayrıntılı açıklaması
Ulusal futbolcular arasında Ai Shen'in arabasının seviyesi nedir?
Antrenörde Wu Lei kullanım talimatları var mı? Avrupa Ligi'nin ilk turunda sol orta saha oyuncusu topa sadece 13 kez temas etti.
Ulusal çiçek oylamasının sonucu çıktı Kim kazanır? hiç şüphe olmadan
Çok sıcak! Bu yaz Süper Lig'e geleceği söylenen ancak gelmeyen 7 yabancı yıldız
Mikrosaniye kontrolü: Büyük savaşmak için "küçük", "ellerde" kavrayın
Evrensel İHA + endüstri uygulamaları, çeşitlendirilmiş hizmetleri genişleterek derinlemesine geliştirildi
Göreve hayatla gitmek, sadakatle sadık bir ruh atmak "Halkın memnun memuru" Liu Yaqing'i hatırlayın
Yurt içinde üretilen lüks orta ve büyük SUV'lerin bir başyapıtı, 400.000 yuan'dan fazla Hongqi HS7, netizenler: Popüler olmayacaklarından korkuyorum
Minimum gereksinim 170,000 yuan Netizen: Bu kadar kendinden emin bir VV7, ortak girişime meydan okuyacak kadar güçlü mü?
To Top