日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
MariaDB5.5在Windows下的性能測試

進行測試的機器包含2個CPU共8核的處理器(這是我手頭上能找到最好的機器了)、10K SAS 磁盤(RAID1),使用sysbench 0.4測試單表共100萬行記錄。我通過網絡來運行這個壓力測試,并發(fā)的客戶端從4到4096。

成都創(chuàng)新互聯(lián)是一家網站設計公司,集創(chuàng)意、互聯(lián)網應用、軟件技術為一體的創(chuàng)意網站建設服務商,主營產品:響應式網站設計高端網站設計、全網營銷推廣。我們專注企業(yè)品牌在網站中的整體樹立,網絡互動的體驗,以及在手機等移動端的優(yōu)質呈現。成都做網站、網站制作、移動互聯(lián)產品、網絡運營、VI設計、云產品.運維為核心業(yè)務。為用戶提供一站式解決方案,我們深知市場的競爭激烈,認真對待每位客戶,為客戶提供賞析悅目的作品,網站的價值服務。

這里是 OLTP-只讀 吞吐量測試結果:

說明:

絕大多數的測試結果表明,MariaDB 的吞吐量比 MySQL 高出 10% 左右

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

很多人理所當然的認為吞吐量并不能代表數據庫的整體性能表現。在OLTP的基準測試中,響應時間同樣很重要,實際上它比吞吐量更加重要,這點我同意,因此,下面是查詢的響應時間,意味著 95% 的事務都在指定的時間內處理完畢。

OLTP 只讀響應時間

并發(fā)數 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ōu)于 MySQL 的。

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

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

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

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

順序處理 IO 完成,這是響應時間表現良好的因素

最后便是降低熱鎖的爭用

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

下一個有趣的問題是在寫操作上MariaDB表現是否一致。因此我們使用寫模式來運行 sysbench 工具,也就是 update_non_index (每個查詢對一個非索引的整數字段進行加值處理)。為了最大化寫的吞吐量,我們設置了參數 innodb_flush_log_at_trx_commit 值為 0,每次日志的寫入是每秒一次,而不是每次事務提交一次。

測試結果如下:

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

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

在上述測試中,所有 IO 相關的參數和 InnoDB 參數都使用的是默認值,結果看起來太好了以至于讓我們懷疑這是真的。我真的想通過調整為 innodb_io_capacity and/or innodb_write_io_threads 參數為 MySQL 帶來更加的性能,有人知道該如何調整嗎?

OLTP writeonly (update_non_index/flush_log=0) 響應時間, 95 percentile

并發(fā)數 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

下面是對數據庫的參數調整:

[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


分享文章:MariaDB5.5在Windows下的性能測試
鏈接URL:http://www.5511xx.com/article/coghdos.html