Penunjuk prestasi MySQL analisis contoh ujian tekanan TPS+QPS+IOPS
1. Gambaran keseluruhan penunjuk prestasi
QPS (Queries Per Second) ialah bilangan pertanyaan sesaat Untuk pangkalan data, ini ialah bilangan SQL yang dilaksanakan oleh pangkalan data sesaat (termasuk masukkan, pilih, kemas kini, padam dsb.).
TPS (Transaksi Sesaat) ialah bilangan transaksi sesaat. Untuk pangkalan data, TPS ialah bilangan transaksi yang dilaksanakan oleh pangkalan data sesaat, berdasarkan bilangan komitmen yang berjaya.
IOPS Bilangan operasi I/O yang dilakukan oleh cakera sesaat
2. Kaedah pengiraan penunjuk
2.1 TPS
Berlaku untuk innodb Transactions Per Second (Bilangan transaksi yang diproses sesaat), iaitu bilangan transaksi yang diproses oleh pelayan sesaat
Secara amnya, prestasi sistem penilaian diukur dengan bilangan transaksi teknikal yang diselesaikan sesaat. Kapasiti pemprosesan keseluruhan sistem bergantung pada nilai TPS modul dengan kapasiti pemprosesan terendah
mysql> SHOW GLOBAL STATUS LIKE 'Com_commit'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | Com_commit | 22402 | +---------------+-------+ 1 row in set (0.00 sec) mysql> SHOW GLOBAL STATUS LIKE 'Com_rollback'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | Com_rollback | 0 | +---------------+-------+ 1 row in set (0.00 sec) mysql> SHOW GLOBAL STATUS LIKE 'Uptime' -> ; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | Uptime | 3319 | +---------------+-------+ 1 row in set (0.01 sec) TPS=(Com_commit + Com_rollback)/Uptime
2.2 QPS
Berkenaan dengan kedua-dua enjin InnoDB dan MyISAM Kadar pertanyaan sesaat (QPS) ialah ukuran jumlah trafik yang dikendalikan oleh pelayan pertanyaan tertentu dalam tempoh masa tertentu, sepadan dengan pengambilan/saat, iaitu bilangan permintaan respons sesaat, yang ialah kapasiti pemprosesan maksimum
2.3 IOPS
IOPS (Input/Output Per Second) ialah volum input dan output (atau bilangan baca dan tulis) sesaat, yang merupakan penunjuk utama untuk mengukur prestasi cakera satu. IOPS merujuk kepada bilangan permintaan I/O yang boleh dikendalikan oleh sistem setiap unit masa Ia biasanya diukur dalam bilangan permintaan I/O yang diproses setiap saat yang biasanya membaca atau menulis permintaan operasi data. Untuk aplikasi yang kerap membaca dan menulis rawak, seperti OLTP (Pemprosesan Transaksi Dalam Talian), IOPS ialah penunjuk ukuran utama. Satu lagi penunjuk penting ialah daya pemprosesan data (Throughput), yang merujuk kepada jumlah data yang boleh berjaya dihantar setiap unit masa. Untuk aplikasi dengan bilangan bacaan dan tulis berurutan yang banyak, seperti VOD (Video Atas Permintaan), lebih banyak perhatian diberikan kepada penunjuk daya pengeluaran. IOPS boleh dipecahkan kepada penunjuk berikut: Jumlah IOPS, cakera IOPS di bawah beban I/O rawak bercampur dan berurutan
Ini paling konsisten dengan situasi I/O sebenar dan kebanyakan aplikasi memfokuskan pada penunjuk ini .
IOPS Bacaan Rawak, IOPS di bawah 100% beban bacaan rawak.
IOPS Tulis Rawak, IOPS di bawah 100% beban tulis rawak.
IOPS Bacaan Berjujukan, IOPS di bawah 100% beban bacaan berurutan.
IOPS Tulis Berjujukan, IOPS di bawah 100% beban tulis berjujukan.
Alat penanda aras ujian IOPS utama termasuk Iometer, IoZone, FIO, dsb., yang boleh digunakan secara menyeluruh untuk menguji IOPS cakera dalam situasi berbeza. Untuk sistem aplikasi, perlu terlebih dahulu menentukan ciri beban data, kemudian pilih penunjuk IOPS yang munasabah untuk pengukuran dan analisis perbandingan, dan pilih media storan dan sistem perisian yang sesuai dengan sewajarnya.
理论上可以计算出磁盘的最大IOPS,即IOPS = 1000 ms/ (Tseek + Troatation),忽略数据传输时间。假设磁盘平均物理寻道时间为3ms, 磁盘转速为7200,10K,15K rpm,则磁盘IOPS理论最大值分别为, IOPS = 1000 / (3 + 60000/7200/2) = 140 IOPS = 1000 / (3 + 60000/10000/2) = 167 IOPS = 1000 / (3 + 60000/15000/2) = 200
3. mysqlslap
Ujian Tekanan 3.1
mysqlslap ialah alat yang disertakan dengan MySQL untuk ujian prestasi beban dan ujian tekanan. Ia boleh mensimulasikan berbilang pelanggan yang memberi tekanan pada pangkalan data dan menjana laporan untuk memahami prestasi pangkalan data.
Proses menjalankan mysqlslap terutamanya dibahagikan kepada tiga langkah:
① Cipta perpustakaan dan jadual, dan import data untuk ujian. Proses ini dilakukan oleh satu utas.
② Mulakan ujian tekanan. Langkah ini boleh dilakukan menggunakan berbilang benang.
③ Bersihkan data ujian. Proses ini dilakukan oleh satu utas.
[root@jeames ~]# mysqlslap --bantuan
3.2 Case
mysqlslap -uroot -proot -h292.168.1.54 -P3306 \ --create-schema=mysqlslap --auto-generate-sql \ --auto-generate-sql-load-type=mixed \ --concurrency=100,200 --number-of-queries=1000 \ --iterations=10 --number-int-cols=7 \ --number-char-cols=13 --auto-generate-sql-add-autoincrement Benchmark #运行所有语句的平均时间,单位秒 Average number of seconds to run all queries: 0.018 seconds #运行所有语句的最小秒数 Minimum number of seconds to run all queries: 0.018 seconds #运行所有语句的最大秒数 Maximum number of seconds to run all queries: 0.018 seconds #客户端数量 Number of clients running queries: 1 #每个客户端运行查询的平均数 Average number of queries per client: 0 该语句表示测试并发为 100 和 200 的情况,进行 1000 次访问(该值一般这样预估出来:并发客户数×每客户查询次数)。这样的测试方法迭代 10 次,最终显示最大、 最小、平均值 其中:--debug-info,代表要额外输出 CPU 以及内存的相关信息。如果报错 Option 'debug-info' used, but is disabled 请取消 debug-info 参数 -number-int-cols=7 表示生成的表中必须有 7 个 int 类型的列 -number-char-cols=13 表示生成的表中必须有 13 个 char 类型的列 -concurrency 代表并发数量,多个可以用逗号隔开,concurrency=10,50,100, 并发连接线程数分别是 10、50、100 个并发。 --engines 代表要测试的引擎,可以有多个,用分隔符隔开。 --iterations 代表要运行这些测试多少次。 --auto-generate-sql 代表用系统自己生成的 SQL 脚本来测试。 --auto-generate-sql-load-type 代表要测试的是读还是写还是两者混合的(read,write,update,mixed) --number-of-queries 代表总共要运行多少次查询。每个客户运行的查询数量可以用查询总数/并发数来计算。 --debug-info 代表要额外输出 CPU 以及内存的相关信息。 --number-int-cols :创建测试表的 int 型字段数量 --auto-generate-sql-add-autoincrement : 代表对生成的表自动添加 auto_increment 列,从 5.1.18 版本开始 --number-char-cols 创建测试表的 char 型字段数量。 --create-schema 测试的 schema,MySQL 中 schema 也就是 database。 --query 使用自定义脚本执行测试,例如可以调用自定义的一个存储过程或者 sql 语句来执行测试。 --only-print 查看语句做了什么。
Atas ialah kandungan terperinci Penunjuk prestasi MySQL analisis contoh ujian tekanan TPS+QPS+IOPS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Prosedur yang disimpan adalah penyataan SQL yang dipraktikkan dalam MySQL untuk meningkatkan prestasi dan memudahkan operasi kompleks. 1. Meningkatkan prestasi: Selepas penyusunan pertama, panggilan seterusnya tidak perlu dikompilasi. 2. Meningkatkan Keselamatan: Mengatasi akses jadual data melalui kawalan kebenaran. 3. Memudahkan operasi kompleks: Campurkan beberapa pernyataan SQL untuk memudahkan logik lapisan aplikasi.

Prinsip kerja cache pertanyaan MySQL adalah untuk menyimpan hasil pertanyaan pilih, dan apabila pertanyaan yang sama dilaksanakan sekali lagi, hasil cache dikembalikan secara langsung. 1) Cache pertanyaan meningkatkan prestasi bacaan pangkalan data dan mendapati hasil cache melalui nilai hash. 2) Konfigurasi mudah, set query_cache_type dan query_cache_size dalam fail konfigurasi MySQL. 3) Gunakan kata kunci sql_no_cache untuk melumpuhkan cache pertanyaan khusus. 4) Dalam persekitaran kemas kini frekuensi tinggi, cache pertanyaan boleh menyebabkan kesesakan prestasi dan perlu dioptimumkan untuk digunakan melalui pemantauan dan pelarasan parameter.

Sebab mengapa MySQL digunakan secara meluas dalam pelbagai projek termasuk: 1. Prestasi tinggi dan skalabilitas, menyokong pelbagai enjin penyimpanan; 2. Mudah untuk digunakan dan mengekalkan, konfigurasi mudah dan alat yang kaya; 3. Ekosistem yang kaya, menarik sejumlah besar sokongan alat komuniti dan pihak ketiga; 4. Sokongan silang platform, sesuai untuk pelbagai sistem operasi.

Langkah -langkah untuk menaik taraf pangkalan data MySQL termasuk: 1. Sandarkan pangkalan data, 2. Hentikan perkhidmatan MySQL semasa, 3. Pasang versi baru MySQL, 4. Mulakan versi baru MySQL Service, 5 pulih pangkalan data. Isu keserasian diperlukan semasa proses peningkatan, dan alat lanjutan seperti Perconatoolkit boleh digunakan untuk ujian dan pengoptimuman.

Dasar sandaran MySQL termasuk sandaran logik, sandaran fizikal, sandaran tambahan, sandaran berasaskan replikasi, dan sandaran awan. 1. Backup Logical menggunakan MySqldump untuk mengeksport struktur dan data pangkalan data, yang sesuai untuk pangkalan data kecil dan migrasi versi. 2. Sandaran fizikal adalah cepat dan komprehensif dengan menyalin fail data, tetapi memerlukan konsistensi pangkalan data. 3. Backup tambahan menggunakan pembalakan binari untuk merekodkan perubahan, yang sesuai untuk pangkalan data yang besar. 4. Sandaran berasaskan replikasi mengurangkan kesan ke atas sistem pengeluaran dengan menyokong dari pelayan. 5. Backup awan seperti Amazonrds menyediakan penyelesaian automasi, tetapi kos dan kawalan perlu dipertimbangkan. Apabila memilih dasar, saiz pangkalan data, toleransi downtime, masa pemulihan, dan matlamat titik pemulihan perlu dipertimbangkan.

Mysqlclusteringenhancesdatabaserobustnessandsandscalabilitybydistributingdataacrossmultiplenodes.itusesthendbenginefordatareplicationandfaulttolerance, ugeinghighavailability.setupinvolvesconfiguringmanagement, Data, dansqlnodes

Mengoptimumkan reka bentuk skema pangkalan data di MySQL dapat meningkatkan prestasi melalui langkah -langkah berikut: 1. Pengoptimuman indeks: Buat indeks pada lajur pertanyaan biasa, mengimbangi overhead pertanyaan dan memasukkan kemas kini. 2. Pengoptimuman Struktur Jadual: Mengurangkan kelebihan data melalui normalisasi atau anti-normalisasi dan meningkatkan kecekapan akses. 3. Pemilihan Jenis Data: Gunakan jenis data yang sesuai, seperti INT dan bukannya VARCHAR, untuk mengurangkan ruang penyimpanan. 4. Pembahagian dan Sub-meja: Untuk jumlah data yang besar, gunakan pembahagian dan sub-meja untuk menyebarkan data untuk meningkatkan kecekapan pertanyaan dan penyelenggaraan.

TooptimizeMySQLperformance,followthesesteps:1)Implementproperindexingtospeedupqueries,2)UseEXPLAINtoanalyzeandoptimizequeryperformance,3)Adjustserverconfigurationsettingslikeinnodb_buffer_pool_sizeandmax_connections,4)Usepartitioningforlargetablestoi


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa
