自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MariaDB 5.5在Windows下的性能測(cè)試

數(shù)據(jù)庫(kù) 其他數(shù)據(jù)庫(kù) MariaDB
我們有很長(zhǎng)時(shí)間沒(méi)有發(fā)布過(guò)在Windows下的基準(zhǔn)測(cè)試文章了,而Windows下的MariaDB包含一些專(zhuān)門(mén)做的改進(jìn),這些改進(jìn)很多人并不知曉,因?yàn)槲覀冏约阂埠苌偬峒?。本文的目的是向你展示MariaDB在Windows下的性能表現(xiàn)。

進(jìn)行測(cè)試的機(jī)器包含2個(gè)CPU共8核的處理器(這是我手頭上能找到最好的機(jī)器了)、10K SAS 磁盤(pán)(RAID1),使用sysbench 0.4測(cè)試單表共100萬(wàn)行記錄。我通過(guò)網(wǎng)絡(luò)來(lái)運(yùn)行這個(gè)壓力測(cè)試,并發(fā)的客戶端從4到4096。

這里是 OLTP-只讀 吞吐量測(cè)試結(jié)果:

說(shuō)明:

絕大多數(shù)的測(cè)試結(jié)果表明,MariaDB 的吞吐量比 MySQL 高出 10% 左右

在 4096 并發(fā)客戶端時(shí),MariaDB 的吞吐量是 MySQL 5.5 的 四倍多 476% (2382 vs 413 TPS).

很多人理所當(dāng)然的認(rèn)為吞吐量并不能代表數(shù)據(jù)庫(kù)的整體性能表現(xiàn)。在OLTP的基準(zhǔn)測(cè)試中,響應(yīng)時(shí)間同樣很重要,實(shí)際上它比吞吐量更加重要,這點(diǎn)我同意,因此,下面是查詢(xún)的響應(yīng)時(shí)間,意味著 95% 的事務(wù)都在指定的時(shí)間內(nèi)處理完畢。

OLTP 只讀響應(yīng)時(shí)間

并發(fā)數(shù) 4 8 16 32 64 128 256 512 1024 2048 4096
MariaDB 4.87 6.81 8.83 12.35 22.12 43.56 90.35 180.57 619.05 1003.88 1965.77
MySQL 4.86 7.14 9.96 16.21 37.39 101.33 238.89 499.63 971.07 2241.83 25215.29

上表中顯示,MariaDB 5.5 不管是在吞吐量還是響應(yīng)時(shí)間方面都是優(yōu)于 MySQL 的。

但是,為什么MariaDB在Windows 下的只讀測(cè)試由于MySQL 5.5呢?二者基于同一個(gè)代碼,表現(xiàn)應(yīng)該也相同啊。這個(gè)問(wèn)題的答案并不是 MariaDB 做了什么優(yōu)化,也無(wú)關(guān) XtraDB 和 InnoDB 的優(yōu)劣。答案是 MariaDB threadpool. 這個(gè)線程池在 Windows 平臺(tái)是默認(rèn)啟用的。

可是,為什么使用線程池就可以有如此好的性能呢?答案是 MariaDB 承擔(dān)了通過(guò)調(diào)整線程池的大小并回調(diào)到對(duì)應(yīng)的 Windows 本身的線程池,這在操作系統(tǒng)這一級(jí)別上相當(dāng)于黑盒排序,因此能獲取良好的性能。Windows 內(nèi)置的線程池的核心,是自 NT 3.5 就有的技術(shù),這是 Windows 專(zhuān)有的特性,運(yùn)行在其上的服務(wù)器應(yīng)該使用這種技術(shù)。要讓這項(xiàng)技術(shù)運(yùn)行良好的招數(shù)是:

不要讓同一時(shí)間在同一個(gè)CPU上運(yùn)行太多的線程,這樣可減少上下文切換,這是提高吞吐量的最重要的因素

在完成的LIFO順序中激活線程等待,熱門(mén)的線程保持熱門(mén),可降低緩存失效

順序處理 IO 完成,這是響應(yīng)時(shí)間表現(xiàn)良好的因素

最后便是降低熱鎖的爭(zhēng)用

由此,線程池是只讀性能表現(xiàn)佳的主要因素。

下一個(gè)有趣的問(wèn)題是在寫(xiě)操作上MariaDB表現(xiàn)是否一致。因此我們使用寫(xiě)模式來(lái)運(yùn)行 sysbench 工具,也就是 update_non_index (每個(gè)查詢(xún)對(duì)一個(gè)非索引的整數(shù)字段進(jìn)行加值處理)。為了最大化寫(xiě)的吞吐量,我們?cè)O(shè)置了參數(shù) innodb_flush_log_at_trx_commit 值為 0,每次日志的寫(xiě)入是每秒一次,而不是每次事務(wù)提交一次。

測(cè)試結(jié)果如下:

OLTP write-only (update_non_index/flush_log=0) 吞吐量:

這個(gè)結(jié)果看起來(lái)很棒,差別來(lái)源于多個(gè)因素,包括 XtraDB 的寫(xiě)性能、分組提交、線程池等都對(duì)這個(gè)結(jié)果會(huì)有影響。但我想Windows平臺(tái)下的 MariaDB 的 asynchronous IO optimization (異步 IO 優(yōu)化) 是最主要的因素。

在上述測(cè)試中,所有 IO 相關(guān)的參數(shù)和 InnoDB 參數(shù)都使用的是默認(rèn)值,結(jié)果看起來(lái)太好了以至于讓我們懷疑這是真的。我真的想通過(guò)調(diào)整為 innodb_io_capacity and/or innodb_write_io_threads 參數(shù)為 MySQL 帶來(lái)更加的性能,有人知道該如何調(diào)整嗎?

OLTP writeonly (update_non_index/flush_log=0) 響應(yīng)時(shí)間, 95 percentile

并發(fā)數(shù) 4 8 16 32 64 128 256 512 1024 2048
MariaDB 0.33 0.63 0.75 1.06 1.94 3.85 8.25 21.38 129.79 274.40
MySQL 0.32 0.61 0.73 1.61 7.62 26.82 96.45 219.29 661.19 2723.36

下面是對(duì)數(shù)據(jù)庫(kù)的參數(shù)調(diào)整:

[mysqld]
sql-mode="NO_ENGINE_SUBSTITUTION"
back_log=500
user=root
port=3306
max_connections=4096
max_connect_errors=5000
max_prepared_stmt_count=50000
table_cache=2048
transaction_isolation=REPEATABLE-READ
loose-skip-external-locking
innodb_status_file=0
innodb_data_file_path=ibdata1:200M:autoextend
innodb_buffer_pool_size=1G
innodb_additional_mem_pool_size=20M
innodb_log_file_size=650M
innodb_log_buffer_size=100M
innodb_support_xa=0
innodb_doublewrite=0
innodb_flush_log_at_trx_commit=0
query-cache-size=0
query-cache-type=0
symbolic-links=0

skip-grant-tables

【編輯推薦】

  1. MariaDB 5.3將支持ALTER TABLE的進(jìn)度提示
  2. MySQL創(chuàng)始人打造MariaDB 全面兼容MySQL 5.1
  3. MariaDB 2周年了
  4. 教你五步優(yōu)化你的MongoDB
  5. MariaDB 5.3.4性能測(cè)試

 

 

責(zé)任編輯:彭凡 來(lái)源: oschina
相關(guān)推薦

2013-05-07 09:57:23

MariaDB

2013-04-03 10:04:36

MySQL 5.6

2023-07-07 15:34:27

負(fù)載測(cè)試性能測(cè)試

2009-03-13 19:21:21

Windows 7性能測(cè)試

2021-09-13 09:32:47

UbuntuWindows 11微軟

2017-08-24 18:22:25

公有云私有云混合云

2011-01-05 09:40:33

windowslinux

2011-04-02 14:21:45

MRTGWINDOWS安裝

2012-11-23 10:00:55

SQL性能測(cè)試

2011-11-08 21:54:05

Windows 監(jiān)控

2009-08-05 08:46:04

Windows 7性能測(cè)試

2009-08-07 08:33:33

Windows 7最終版

2013-12-30 13:34:18

VMwarevSphere 5.5

2010-05-21 13:57:39

SVN在Windows

2012-03-13 16:55:46

Windows 8預(yù)覽Windows 7

2011-03-11 12:57:34

2011-03-11 10:39:09

CentOS 5.5安裝LAMP

2011-07-06 14:18:40

Percona SerMySQL

2021-10-26 11:21:50

WindowsCeph性能

2013-05-20 10:39:55

MariaDB
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)