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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 伺服器IO瓶頸對MySQL效能的影響伺服器MySql
- DB2 HADR對效能的影響DB2
- elasticsearch的Java Heap Size設定大於32G對效能的影響因素列舉ElasticsearchJava
- 【知識分享】伺服器不穩定對網站的影響伺服器網站
- MySQL影響伺服器效能的幾個方面MySql伺服器
- 海外伺服器對SEO影響?伺服器
- 伺服器核心硬體的效能如何影響伺服器的整體效能?伺服器
- 怎麼減少行鎖對效能的影響?
- 分支對程式碼效能的影響和優化優化
- 容器化對資料庫的效能有影響嗎?資料庫
- 磁碟排序對Oracle資料庫效能的影響PT排序Oracle資料庫
- MySQL運維實戰(5.6) 字符集設定對mysqldump的影響MySql運維
- Java中的Exception拋異常對效能的影響 - BaeldungJavaException
- IAB:covid對廣告定價的影響報告
- 影響獨立伺服器穩定執行的因素伺服器
- .net core 拋異常對效能影響的求證之路
- 影響雲伺服器效能的主要因素有哪些?伺服器
- 大型網站的HTTPS實踐(三)——HTTPS對效能的影響網站HTTP
- 【效能】Oracle表並行對邏輯遷移後查詢效能的影響Oracle並行
- 關於資料庫開啟大頁對效能的影響資料庫
- 伺服器不穩定直接影響網站SEO?伺服器網站
- 哪些方面會影響伺服器資料庫效能伺服器資料庫
- Java UUID生成的效能影響 – fastthreadJavaUIASTthread
- 影響mysql效能的因素都有哪些MySql
- 影響MySQL效能的硬體因素MySql
- 影響MySQL效能的硬體因MySql
- 影響HTTP效能的常見因素HTTP
- SEO最佳化對伺服器有影響嘛伺服器
- 重啟對海外伺服器會有影響嗎?伺服器
- 色彩心理學對網頁設計的影響力網頁
- 伺服器的容錯性對伺服器執行有什麼影響伺服器
- 當機對獨立伺服器會有啥影響?伺服器
- session效能的影響,後臺 flush dirtySession
- 第49問:如何快速判斷 IO 延遲對 MySQL 效能的影響MySql
- Oracle優化案例-select中to_clob對效能的影響(二十一)Oracle優化
- 技術人員評估英特爾CPU新漏洞對效能的影響
- MySQL中join語句的基本使用教程及其欄位對效能的影響MySql
- PHP中什麼是垃圾回收?對效能有什麼影響PHP