Sort_Buffer_Size 設定對伺服器效能的影響
https://www.cnblogs.com/wajika/p/6718552.html
Sort_Buffer_Size 設定對伺服器效能的影響
基礎知識:
1。 Sort_Buffer_Size 是一個connection級引數,在每個connection第一次需要使用這個buffer的時候,一次性分配設定的記憶體。
2。 Sort_Buffer_Size 並不是越大越好,由於是connection級的引數,過大的設定+高併發可能會耗盡系統記憶體資源。
3。 文件說“On Linux, there are thresholds of 256KB and 2MB where larger values may significantly slow down memory allocation”
本文主要針對第三點做測試:
據說Sort_Buffer_Size 超過2KB的時候,就會使用mmap() 而不是 malloc() 來進行記憶體分配,導致效率降低。
環境:
為了更大的體現效能差距,使用 1GB記憶體的Fedora 虛擬機器進行測試
測試表結構:
1w 行的表, 表結構
+-------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| k | int(10) unsigned | NO | MUL | 0 | |
| c | char(120) | NO | | | |
| pad | char(60) | NO | | | |
+-------+------------------+------+-----+---------+----------------+
測試語句:
分別設定Sort_Buffer_Size 為 250K ,512K, 3M ,然後執行以下語句,檢視執行時間。
1. sql_no_cache 防止query cache起效。
2. limit 1 為了減少排序佔執行時間的比重,更多的體現記憶體分配帶來的影響
3. 語句explain的結果是 filesort , 以確保使用sort_buffer
-
-
mysqlslap -uroot -h127.0.0.1 -q ' select sql_no_cache * from sbtest order by pad limit 1' -c 100 --create-schema=test -i 10
-
複製程式碼
測試結果:
執行時間
250K : 1.318s
512K : 1.944s
3M : 2.412s
250 K
[root@localhost tmp]# mysqlslap -uroot -h127.0.0.1 -q ' select sql_no_cache * from sbtest order by pad limit 1' -c 100 --create-schema=test -i 10
Benchmark
Average number of seconds to run all queries: 1.318 seconds
Minimum number of seconds to run all queries: 1.285 seconds
Maximum number of seconds to run all queries: 1.378 seconds
Number of clients running queries: 100
Average number of queries per client: 1
512 K
[root@localhost tmp]# mysqlslap -uroot -h127.0.0.1 -q ' select sql_no_cache * from sbtest order by pad limit 1' -c 100 --create-schema=test -i 10
Benchmark
Average number of seconds to run all queries: 1.944 seconds
Minimum number of seconds to run all queries: 1.362 seconds
Maximum number of seconds to run all queries: 4.406 seconds
Number of clients running queries: 100
Average number of queries per client: 1
3M
[root@localhost tmp]# mysqlslap -uroot -h127.0.0.1 -q ' select sql_no_cache * from sbtest order by pad limit 1' -c 100 --create-schema=test -i 10
Benchmark
Average number of seconds to run all queries: 2.412 seconds
Minimum number of seconds to run all queries: 2.376 seconds
Maximum number of seconds to run all queries: 2.527 seconds
Number of clients running queries: 100
Average number of queries per client: 1
結論:
確實如文件所說, 使用mmap 分配記憶體時,會帶來效能上的損耗,影響大約在 30% 左右
。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10973950/viewspace-2215232/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Arraysize的設定以及對查詢效能的影響
- 伺服器IO瓶頸對MySQL效能的影響伺服器MySql
- 無線安全設定對速度的影響
- GPFS Persistent Reserve 的設定對Oracle RAC 的影響Oracle
- 軟體的效能設計(一)介面設計對軟體效能的影響 (轉)
- JAVA 異常對於效能的影響Java
- 【知識分享】伺服器不穩定對網站的影響伺服器網站
- elasticsearch的Java Heap Size設定大於32G對效能的影響因素列舉ElasticsearchJava
- 海外伺服器對SEO影響?伺服器
- DB2 HADR對效能的影響DB2
- InnoDB 隔離模式對 MySQL 效能的影響模式MySql
- MySQL影響伺服器效能的幾個方面MySql伺服器
- 效能與穩定:SuperFetch對Win7老電腦的影響Win7
- 軟體的效能設計(二) 臨時物件對軟體效能的影響 (轉)物件
- 伺服器核心硬體的效能如何影響伺服器的整體效能?伺服器
- arraysize/TDU/SDU的設定對sql執行代價的影響SQL
- 軟體效能的設計(三)資料型別對軟體效能的影響 (轉)資料型別
- 分支對程式碼效能的影響和優化優化
- JavaScript 事件對記憶體和效能的影響JavaScript事件記憶體
- mysql刪除和更新操作對效能的影響MySql
- 磁碟排序對Oracle資料庫效能的影響排序Oracle資料庫
- 硬體環境對系統效能的影響
- try catch 對程式碼執行的效能影響
- 測試SQLPLUS的ARRAYSIZE對效能的影響SQL
- css屬性的選擇對動畫效能的影響CSS動畫
- 音樂對程式設計的影響程式設計
- 磁碟排序對Oracle資料庫效能的影響PT排序Oracle資料庫
- 容器化對資料庫的效能有影響嗎?資料庫
- table_open_cache引數對mysql效能的影響MySql
- Java中的Exception拋異常對效能的影響 - BaeldungJavaException
- MySQL運維實戰(5.6) 字符集設定對mysqldump的影響MySql運維
- 影響獨立伺服器穩定執行的因素伺服器
- 影響雲伺服器效能的主要因素有哪些?伺服器
- Oracle 物化檢視快速重新整理對效能的影響Oracle
- [zt] segment size(strip size)對磁碟陣列效能的影響陣列
- [zt] 影響SQL效能的原因SQL
- Oracle安裝過程對資料庫級語言設定的影響Oracle資料庫
- RAID的概念和RAID對於SQL效能的影響AISQL