王家林老師提供的課程mysql10,server性能優(yōu)化_第1頁
王家林老師提供的課程mysql10,server性能優(yōu)化_第2頁
王家林老師提供的課程mysql10,server性能優(yōu)化_第3頁
王家林老師提供的課程mysql10,server性能優(yōu)化_第4頁
王家林老師提供的課程mysql10,server性能優(yōu)化_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1選擇合適1. 版版(RPM 等包裝好的特定二進(jìn)制版本AB AB a) 安裝版本是經(jīng)過比較完善的功能和性能測(cè)試的編所使用的編譯參數(shù)更具通用性的,且d) 了的服務(wù),將能最大 第進(jìn)。還有些由各OS 廠商所提供版本,則可能是在有些代碼方面針對(duì)自己的OS 做了一些相應(yīng)的底OS 的析一1選擇合適1. 版版(RPM 等包裝好的特定二進(jìn)制版本AB AB a) 安裝版本是經(jīng)過比較完善的功能和性能測(cè)試的編所使用的編譯參數(shù)更具通用性的,且d) 了的服務(wù),將能最大 第進(jìn)。還有些由各OS 廠商所提供版本,則可能是在有些代碼方面針對(duì)自己的OS 做了一些相應(yīng)的底OS 的析一版本可能存在哪些問題其次,由版本者并一定都是一個(gè)

2、足夠讓人信任的公司(或者個(gè)人), 在其生出版本之前,是否有做過足夠全面的功能和性能不得而知使用的時(shí)候是否的了版本中并不存在的 的相關(guān)服務(wù),而又使用了最后,如的時(shí)候,恐的提供支持。的系統(tǒng)出現(xiàn)問題的支持工 師的支持工作會(huì)大打折扣,甚至可能如果大家可以完全拋開以上這些可能存在隱患的顧慮,完全可以嘗試使用進(jìn)制版本,而選用特性或者更高性版本了Percona Patch 當(dāng)然,Percona Patch Percona Patch Percona 對(duì)于二進(jìn)制分發(fā)版本的安裝,對(duì)于安裝本身來說基本上沒有太多可以優(yōu)化的地方,唯一可做的就是決定了選擇分發(fā)版本之后,可以根據(jù)自身環(huán)境和應(yīng)用特點(diǎn)來選擇適環(huán)境優(yōu)版本來安裝

3、。2. 源碼與二所做的調(diào)整版本相比,如選擇了通過源代碼進(jìn)行安裝,那么在安裝過 能夠更靈活一些。因?yàn)橥ㄟ^源代碼編可以針對(duì)自己的根據(jù)不同選用合2. 源碼與二所做的調(diào)整版本相比,如選擇了通過源代碼進(jìn)行安裝,那么在安裝過 能夠更靈活一些。因?yàn)橥ㄟ^源代碼編可以針對(duì)自己的根據(jù)不同選用合適的編譯器來優(yōu)化編譯后的二進(jìn)制環(huán)境調(diào)整相關(guān)的編譯參數(shù)針根特定應(yīng)用場(chǎng)景選擇需要什么組件不需要的所需的數(shù)據(jù)內(nèi)容選需要的字符集;e) ;f) 等等其他一些可以根據(jù)特定應(yīng)用場(chǎng)景所作的各種調(diào)整在源碼安裝帶來更大靈活性的同時(shí),同樣帶來了可能引入的隱患:a) 對(duì)編譯參數(shù)的不夠了解造成編譯參數(shù)使用不當(dāng)可能使編譯出來的二進(jìn)制代碼不夠穩(wěn)定;b)

4、 對(duì)自己的應(yīng)用環(huán)境而使用的優(yōu)化參數(shù)可能反而使系統(tǒng)性能更差;還有一個(gè)并不能稱之為隱患的小問題就是源碼編譯安裝將使安裝部署過 更為復(fù)雜,所花費(fèi)時(shí)間更長通過源碼安裝的最大特點(diǎn)就是可以自行調(diào)整編譯參數(shù),最大 度的定制安裝結(jié)果。下面我自己在通過源碼編譯安裝中的一些優(yōu)化心得做一個(gè)簡(jiǎn)單的介紹,希望能夠?qū)Υ蠹矣兴鶐椭?configureconfiguresthispackagetoadapttomanykindsof . -. Forbettercontrol,usetheoptionsFinetuningoftheinstallation-.Program-. prependPREFIXtoinstalle

5、dprogram-. configureforbuildingonBUILD . -with-.-without-.DonotincludetheInnoDBtable Cd.CCASFLAGS assemblercompilerflags(defaultsto.上面的輸出內(nèi)容中很多都已經(jīng)省略了,大家完全可以通過自針對(duì)幾個(gè)比較重要的編譯參數(shù)做一個(gè)簡(jiǎn)單的介紹:“prefix”:設(shè)定安裝路徑,默認(rèn)為試得到更為豐富的內(nèi)容輸出。下-with-.-without-.DonotincludetheInnoDBtable Cd.CCASFLAGS assemblercompilerflags(default

6、sto.上面的輸出內(nèi)容中很多都已經(jīng)省略了,大家完全可以通過自針對(duì)幾個(gè)比較重要的編譯參數(shù)做一個(gè)簡(jiǎn)單的介紹:“prefix”:設(shè)定安裝路徑,默認(rèn)為試得到更為豐富的內(nèi)容輸出。下“with-charset”:設(shè)定系統(tǒng)的默認(rèn)字符集“with-collation”:系統(tǒng)默認(rèn)的校驗(yàn)規(guī)則“with-extra-charsets”:出了默認(rèn)字符集之外需要編譯安裝的字符集“ix-socket-path”socket “with-tcp-port”:指定特端口,默認(rèn)“d os ;“without-query-cache”QueryCache “-with-partition”5.1 partition “-enab

7、le-thread-safe-c nt”:以線 方式編譯客戶端“with-pthread”pthread 線 庫編譯;“with-named-thread-libs”:指定使用某個(gè)特定的線 “without-debug”debug “d link “with-c nt-ldflags”:c nt link 以上這些參數(shù)是在源碼安裝中比較常用的一些編譯參數(shù),其中前面幾個(gè)編譯參數(shù)主要是為了方便們?cè)诎惭b的時(shí)候可以定制自己的系統(tǒng),讓系統(tǒng)更適自己應(yīng)用環(huán)境的相關(guān)規(guī)范,做到環(huán),按照實(shí)際需求生成相應(yīng)的二進(jìn)制代碼。而后面的一些參數(shù)主要是用來優(yōu)化編譯結(jié)果的。符集帶來盡可能高的的系統(tǒng)能夠盡可能的簡(jiǎn)單,因?yàn)檫@也會(huì)此外

8、,對(duì)于一些特環(huán)境上,可能會(huì)有多種線 庫的選擇的,如果你對(duì)各個(gè)線 庫較為了化的一面使用最合適的線 在Debug Debug Debug 而“d-ldflags”和“with-c nt-ldflags”兩個(gè)編譯參數(shù)如果設(shè)“-s ic”的話,可以告訴編譯器以靜態(tài)方式編譯來使編譯Debug Debug Debug 而“d-ldflags”和“with-c nt-ldflags”兩個(gè)編譯參數(shù)如果設(shè)“-s ic”的話,可以告訴編譯器以靜態(tài)方式編譯來使編譯結(jié)果代碼得到最高的性能。使用靜態(tài)編譯和態(tài)方式編譯的代碼相比,性能差距可能會(huì)達(dá)到 5%到 10%就我個(gè)人來說最常使用的編譯配置參數(shù)如下,各位可以參照自行增刪

9、相關(guān)內(nèi)容 -enable-thread-safe-c nt -d-ldflags=-all-s ic -with-c nt-ldflags=-all-s ic -with-charset=latin1 -with-extra-charset=utf8,gbk -with-csv-storage-engine -with-federated-storage-engine -d-without-embedded-server -munity ix-socket-2但不管怎樣,盡可能充足的硬件資源的性總是有幫助的。在這一主要分析一下的日志(主Binlog)對(duì)系統(tǒng)性能的影響,并根據(jù)日志的相關(guān)特性得出相

10、應(yīng)的優(yōu)化思路帶來的直接性能損耗就是數(shù)據(jù)庫系統(tǒng)中最為昂資源,所以對(duì)于日志 在默認(rèn)情況下,系統(tǒng)僅僅打開錯(cuò)誤日志,關(guān)閉了其他所有日志,以達(dá)到盡可能減損耗提高系統(tǒng)SQL 置)SQL Query IO 自己的日志)Binlog Binlog Binlog Binlog 也顯示出了innodb_locks_unsafe_for_binlog”這Binlog showvariableslike+|+| | | |SQL 置)SQL Query IO 自己的日志)Binlog Binlog Binlog Binlog 也顯示出了innodb_locks_unsafe_for_binlog”這Binlog sh

11、owvariableslike+|+| | | |1073741824|+“binlog_cache_sizeSQL 存,注意,是每個(gè)nt 都可以分配設(shè)置大小的binlogcache 空間。如果讀者朋友的系統(tǒng)中經(jīng)常會(huì)出多語句事務(wù)的華,可以嘗試增加該值的大小,以獲得更有的性能。當(dāng)可以通的以下 “max_binlog_cache_size”:和binlog_cache_size相對(duì)應(yīng),但是所代表的能夠使用最大cache 內(nèi)存大小。 Multi-s ementstorage”的錯(cuò)誤ionrequirednmax_binlog_cache_sizebytes“max_binlog_size”:Binl

12、og 512M 1G1GBinlog Binlog 統(tǒng)為了保證事務(wù)的完整性,不可能做切換日志的動(dòng)作,只能將該事務(wù)的所有SQL Oracle 對(duì) Oracle 來說并不關(guān)鍵。而Redo Oracle Redo Redo Undo Binlog DML Query 下Binlog 所fsync binlog_cache Filesystem cache sync_binlog=nn binlog_cache fsync 在Crashbinlog_cache binlog 信息都會(huì)被丟失。而當(dāng)設(shè)置為“1”的時(shí)候,是最安全但是性能損耗最大的設(shè)置。因?yàn)楫?dāng)設(shè)置為 1 的時(shí)候,即使系統(tǒng) Crash,也最多丟

13、失 binlog_cache 中未完成的一個(gè)事務(wù),對(duì)實(shí)際數(shù)據(jù)沒有任何實(shí)質(zhì)性影響。從以往經(jīng)驗(yàn)和相關(guān)測(cè)試來看,對(duì)于高并發(fā)事務(wù)的系統(tǒng)來說,“sync_binlog”0 1 5 。的(Replication),Master Binlog IO 到 SQL Binlog 下Binlog 所fsync binlog_cache Filesystem cache sync_binlog=nn binlog_cache fsync 在Crashbinlog_cache binlog 信息都會(huì)被丟失。而當(dāng)設(shè)置為“1”的時(shí)候,是最安全但是性能損耗最大的設(shè)置。因?yàn)楫?dāng)設(shè)置為 1 的時(shí)候,即使系統(tǒng) Crash,也最多丟

14、失 binlog_cache 中未完成的一個(gè)事務(wù),對(duì)實(shí)際數(shù)據(jù)沒有任何實(shí)質(zhì)性影響。從以往經(jīng)驗(yàn)和相關(guān)測(cè)試來看,對(duì)于高并發(fā)事務(wù)的系統(tǒng)來說,“sync_binlog”0 1 5 。的(Replication),Master Binlog IO 到 SQL Binlog 以,Binlog IO 線 以及 Msater Slave Binlog Query Query Binlog 8 個(gè)參數(shù)可以讓者 Table 的,分別為:Binlog_Do_DB:設(shè)定哪些數(shù)據(jù)庫(Schema)需Binlog_Ignore_DB:設(shè)定哪些數(shù)據(jù)庫(Schema)不DB Replicate_Do_DB:設(shè)定需的數(shù)據(jù)庫(Sc

15、hema)用逗號(hào)(“,”)分Replicate_Ignore_DB:設(shè)定可以忽略的數(shù)據(jù)庫Replicate_Do_Table:設(shè)定需的Replicate_Ignore_Table:設(shè)定可以忽略Replicate_Wild_Do_Table:功能Replicate_Do_Table,但可以帶通配符來進(jìn)行設(shè)置Replicate_Wild_Ignore_Table:功能Replicate_Ignore_Table,可帶通配Master Slave Master Slave IO SQL Slave IO SQL 線 Master Slave 的Master Master IO Master IO 線

16、 Binlog Slave IO 線 IOSlave IO IO SQL 線 的工作量,從而最大幅度的優(yōu)化Master Event Event Query DBQuery SchemaDB 行“USEDATABASE”DBDB DB 線 Slave IO DB DB DB Table Event Slave Slave Master 果在默認(rèn)Schema 下更改了不需的Schema 中的數(shù)據(jù),則會(huì)Slave Slave Schema Slave Master Event IO Slave IO Slave IO 線 增加了 RelayLog SQL Slave DBQuery SchemaDB

17、 行“USEDATABASE”DBDB DB 線 Slave IO DB DB DB Table Event Slave Slave Master 果在默認(rèn)Schema 下更改了不需的Schema 中的數(shù)據(jù),則會(huì)Slave Slave Schema Slave Master Event IO Slave IO Slave IO 線 增加了 RelayLog SQL Slave Slave 。Slave Master SlowQueryLog SlowQueryLog 的相關(guān)參數(shù)配置。有些時(shí)候,語句,則需要打開慢查詢?nèi)罩?,也就?Slow Query Log。showvariableslike+

18、|Value+|+|log_slow_queries|+1rowinset(0.00showvariableslike+|Value+|+|long_query_time|+1rowinset(0.01“l(fā)og_slow_queries ” SlowQueryLog 的SlowQueryLog 1 Percona SQLSlowQuery mslpatch 給介 紹 (installation-walk-/2008/04/20/updated-msl-打開 SlowQueryLog Binlog 那么大,畢竟 Slow QueryLog 的數(shù)據(jù)IO Query CPU CPU CPU 可以在大

19、部分時(shí)候關(guān)閉該功能,而只需要間斷性的打Slow Query 功能來定位可能存在的慢查打開 SlowQueryLog Binlog 那么大,畢竟 Slow QueryLog 的數(shù)據(jù)IO Query CPU CPU CPU 可以在大部分時(shí)候關(guān)閉該功能,而只需要間斷性的打Slow Query 功能來定位可能存在的慢查詢。 3優(yōu)QueryCache QueryCache 真的是“尚方寶劍”的 Query Cache 實(shí)現(xiàn)原理實(shí)際上并不是特別的復(fù)雜,簡(jiǎn)單的來說就是將客戶端請(qǐng)求的 Query 語句(SELECT Query)hash hash 值,存放在一個(gè) hash 桶中。同時(shí)將該 Query 的結(jié)果集

20、(Result Set)也存放在一個(gè)內(nèi)存 Cache 中的。存放 Query hash 值的鏈表中的每一個(gè) hash 值所在的節(jié)點(diǎn)中同時(shí)還存放了該 Query 所對(duì)應(yīng)的 Result Set 的 Cache 所在的內(nèi)存地址,以及該 Query 所涉及到的所有 Table 的標(biāo)識(shí)等其他一些相關(guān)信息。系統(tǒng)接受到任何一個(gè)SELECT Query hash hash QueryCache 中去匹配,如果找到了完全相同的 Query,則直接將之前所 Cache 的 Result Set 返回給客戶端而完全不需要進(jìn)行后面CacheTable Query Cache Query QueryCache a)

21、Query 語句的hash 運(yùn)算以及hash 查找資源消耗。使用QueryCache 之后,每條Query hash Query Cachehash 運(yùn)算的算法可能已經(jīng)非常高效了,hash 查找的過 也已經(jīng)足夠的優(yōu)化Query Query CPU b) QueryCache QueryCache 高。這里的表變更不僅僅指表中數(shù)據(jù)的變更,還包括結(jié)構(gòu)或者索引等的任何變更。也就是說QueryCache Cache 數(shù)據(jù)可能在剛存入后很快就會(huì)因?yàn)楸碇械臄?shù)據(jù)被改變而被清除,然后新的相同 Query 進(jìn)來之后無法使用到之前的 Cache。c) QueryCache ResultSet Cache Cach

22、e QueryCache 的大小,但是這樣,QueryCache 容易造成因?yàn)閮?nèi)而被換出,造QueryCache QueryCache QueryQuery Cache Query Cache Query Cache QueryCache QueryCache 發(fā)發(fā)揮其優(yōu)勢(shì),并有效的避開其劣勢(shì)QueryCache Query Cache Query QueryCache QueryCache QueryQuery Cache Query Cache Query Cache QueryCache QueryCache 發(fā)發(fā)揮其優(yōu)勢(shì),并有效的避開其劣勢(shì)QueryCache Query Cache

23、Query Table Query Result Set QueryCache Table Query Table Query QueryCache 用的SQL (提示):SQL_NO_CACHE 和SQL_CACHE,分別代表強(qiáng)制不使用Query Cache 和強(qiáng)制使Query Cache完全可以利用這兩個(gè)SQL SQL Query Cache SQL Table Query QueryCache QueryCache 可以添加SQL_CACHE 的SQLQueryCacheSQL ResultSet QueryCache Cache Cache SQL_NO_CACHE 強(qiáng)QueryCac

24、he “query_cache_limit”參數(shù)值來控制 Query Cache 中所 Cache 的最大 Result (1048576)Query ResultSet 大于“query_cache_limit”Cache Cache Query QueryCache 的系統(tǒng)變量,可以通過執(zhí)行如下命令獲得showvariableslikeQueryCache +|+|268435456| |+Query“query_cache_limit”:QueryCache Query ResultSet “query_cache_min_res_unit”:QueryCache ResultSet :

25、針對(duì)于 OCK Table Cache FALSE(QueryCache 中取得結(jié)果)以上參數(shù)的設(shè)置 |+Query“query_cache_limit”:QueryCache Query ResultSet “query_cache_min_res_unit”:QueryCache ResultSet :針對(duì)于 OCK Table Cache FALSE(QueryCache 中取得結(jié)果)以上參數(shù)的設(shè)置主要是“query_cache_limit”和“query_cache_min_res_unit”兩個(gè)參數(shù)的Cache ResultSet 一般都很?。?k)query_cache_min_r

26、es_unit ” 需要Cache 的Result Set 大部分都大于4k 的話,則最好將“query_cache_min_res_unit”調(diào)整到和 Result Set 大小差不多,“query_cache_limit”的ResultSet ResultSet ResultSet Result 差不多大,是每個(gè)結(jié)果集的一半或者四分之一大小都可以,要想非常完美的完全內(nèi)存確實(shí)也是不可能做到如要了解QueryCache 的使用情況,則可以通過QueryCache 相關(guān)的狀態(tài)變量來獲取,如通showuslike+|+|190662000|1888430018|1014096388|1060718

27、85|7951123988|+| |+“Qcache_free_blocks”:Query Cache 中目前還有多少剩blocks。如果該值則說明 Query 中的內(nèi)存碎片較多了,可能需要尋找合適的機(jī)會(huì)進(jìn)行整理() QueryCache QueryCache “Qcache_inserts”:多少次未命中然。通過“Qcache_hits”和“Qcache_inserts”就可以算出 Query 個(gè)參中率了Query=Qcache_hits/(Qcache_hits+Qcache_inserts“Qcache_lowmem_prunes”Query QueryCache“a_ompne”和“c

28、_mo”相互結(jié)合,能夠更清楚的了解到統(tǒng)中Query=Qcache_hits/(Qcache_hits+Qcache_inserts“Qcache_lowmem_prunes”Query QueryCache“a_ompne”和“c_mo”相互結(jié)合,能夠更清楚的了解到統(tǒng)中ueryace出系Query “Qcache_not_cached”query_cache_type cache Query “Qcache_queries_in_cache”QueryCache cache Query “Qcache_total_blocks”QueryCache block QueryCache 5.1.1

29、7 Cache Query5.1.17 版本開始,QueryCache 已經(jīng)開始支持幫定變量的 Query 了;SQL Procedure,F(xiàn)unction Trigger Query Query CacheQueryCache 的過 中,建議通過精確設(shè)置的方式來使用,僅僅讓合適的表的數(shù)據(jù)可以進(jìn)入 Query Cache,僅僅讓某些 Query 的查詢結(jié)果被 Cache。4除了安裝,日志,Query Cache 之外,可能影 絡(luò)連接,線 管理管理等。這一性能的其他可優(yōu)化分析除了前面幾節(jié)內(nèi)容之外的可能影網(wǎng)絡(luò)連接與連接max_conecctions 500 800 max_user_connect

30、ions:每個(gè)用戶允許的最大max_user_connections 數(shù)一樣。這個(gè)參數(shù)的設(shè)置完全依賴于應(yīng)用 序的連接用戶數(shù),對(duì)于普通的應(yīng)用來說,完全沒有做太多的限制,可以盡量放開一些。 8KBmax_allowed_packet:在網(wǎng)絡(luò)傳輸中,一次傳消息輸量的net_buffer_length netbuffer net_buffer_length netbuffer max_allowed_packet 1MB1GB1024 數(shù)為字節(jié)back_log:的連接請(qǐng)求等待隊(duì)列中允許存放的最大連接主線說,完全沒有做太多的限制,可以盡量放開一些。 8KBmax_allowed_packet:在網(wǎng)絡(luò)傳輸

31、中,一次傳消息輸量的net_buffer_length netbuffer net_buffer_length netbuffer max_allowed_packet 1MB1GB1024 數(shù)為字節(jié)back_log:的連接請(qǐng)求等待隊(duì)列中允許存放的最大連接主線 辦法及時(shí)給每一個(gè)新的連接請(qǐng)求分配(或者創(chuàng)建)連接線 的時(shí)候,還沒有分配到連接線 的back_log 5065535ack_log 的設(shè)置的時(shí)候,同時(shí)還需要主義OS 級(jí)別對(duì)網(wǎng)OS 置是沒有意義的back_log 加上面介紹了網(wǎng)絡(luò)連接交互相關(guān)的主要優(yōu)化設(shè)置再來看看與每一個(gè)客戶端連接想對(duì)應(yīng)的連接在ThreadCache 檢查ThreadCac

32、he 池中是否存在空閑連接在thread_cache_size:Thread 池中應(yīng)該存放的連接線 當(dāng)系統(tǒng)最初啟動(dòng)的時(shí)候,并不會(huì)馬上就創(chuàng)所設(shè)置數(shù)目的連接線 存放ThreadCache 存放的連接線 達(dá)到 thread_cache_size 就不會(huì)再續(xù)保存用完的連接線 了。的應(yīng)用 序使用的短連接,ThreadCache ThreadCache 數(shù)的值應(yīng)該設(shè)置的相對(duì)大一些,不應(yīng)該小于應(yīng)用系統(tǒng)對(duì)數(shù)據(jù)庫的實(shí)際并發(fā)請(qǐng)而如使用的是長連接的時(shí)候,Thread Cache 的功效可能并沒有使用短連接那樣的大,也并不是完全沒有價(jià)值。因?yàn)閼?yīng)用 序即使是使用了長連接,也很難保證他們所管理的所有連接都能處于很穩(wěn)定的狀

33、態(tài),仍然會(huì)有不少連接關(guān)閉和新建的操作出現(xiàn)。在有些并發(fā)量較高,應(yīng)用服務(wù)器數(shù)量較大的系統(tǒng)中,每分鐘十來次的連接創(chuàng)建與關(guān)閉的操作是很常見的。而且如果應(yīng)用服務(wù)器的連接池管理不是太好,容易產(chǎn)生連接池抖動(dòng)的話,所產(chǎn)生的連接創(chuàng)建和銷毀操作會(huì)。所以即使是在使用長連接的應(yīng)用環(huán)境中,Thread Cache 機(jī)制的利用仍然是對(duì)性能大幫助的。只而如使用的是長連接的時(shí)候,Thread Cache 的功效可能并沒有使用短連接那樣的大,也并不是完全沒有價(jià)值。因?yàn)閼?yīng)用 序即使是使用了長連接,也很難保證他們所管理的所有連接都能處于很穩(wěn)定的狀態(tài),仍然會(huì)有不少連接關(guān)閉和新建的操作出現(xiàn)。在有些并發(fā)量較高,應(yīng)用服務(wù)器數(shù)量較大的系統(tǒng)中

34、,每分鐘十來次的連接創(chuàng)建與關(guān)閉的操作是很常見的。而且如果應(yīng)用服務(wù)器的連接池管理不是太好,容易產(chǎn)生連接池抖動(dòng)的話,所產(chǎn)生的連接創(chuàng)建和銷毀操作會(huì)。所以即使是在使用長連接的應(yīng)用環(huán)境中,Thread Cache 機(jī)制的利用仍然是對(duì)性能大幫助的。只不過在長連接的環(huán)境50 100 不需要將 thread_cache_size 參數(shù)設(shè)置太大,一般來thread_stack:每個(gè)連接線 被創(chuàng)建的時(shí)候給他分配的內(nèi)當(dāng)創(chuàng)建一個(gè)新的連接線 的時(shí)候,是需要給他分配一定大小的內(nèi)存堆??臻g,以便存放 可以所有的普通應(yīng)用環(huán)境。如果該值設(shè)置太小,會(huì)影連接線 能夠處理Query Procedures Functions 上面介紹

35、的這些都可以怎樣配置網(wǎng)絡(luò)連接交互以及連接的性能相關(guān)參數(shù),下再看該怎樣檢驗(yàn)上面所做的設(shè)置是否合理,是否有需要調(diào)整的地方個(gè)命令來獲得相關(guān)的狀態(tài)信息來幫助大家檢驗(yàn)設(shè)置的合理性:可以通過在系統(tǒng)中執(zhí)行如下的現(xiàn)看看連接線 相關(guān)的系showvariableslike+|Value|+|thread_cache_size|196608+再來看一下系統(tǒng)被連接的次數(shù)以及當(dāng)前系統(tǒng)中連shows uslike的狀態(tài)值+|Variable_name|Value+|+|+showuslike+|Value+ |+可以看出,系統(tǒng)設(shè)置了ThreadCache 池最多將緩存32 個(gè)連接線 創(chuàng)建之初,系統(tǒng)分配 192KB 127

36、 11 7 個(gè)連接線 7 個(gè)連接狀態(tài)的線 active ThreadCache Cache 4 |+可以看出,系統(tǒng)設(shè)置了ThreadCache 池最多將緩存32 個(gè)連接線 創(chuàng)建之初,系統(tǒng)分配 192KB 127 11 7 個(gè)連接線 7 個(gè)連接狀態(tài)的線 active ThreadCache Cache 4 thread_cache_size 8 16Connections Threads_created 下ThreadCache =(127-12)/127 *100%=ThreadThreadCache TableCache Innodb 么于表數(shù)據(jù)的數(shù)據(jù)文件較多,則同樣會(huì)打開很多的表文件描述符

37、。除了數(shù)據(jù)庫的實(shí)際表或者索引打開以外,臨時(shí)文件同樣也需要使用文件描述符,同樣會(huì)占用系統(tǒng)的設(shè)置限TableCache ,ThreadCache Cache 打開的所有表文件的描述符,當(dāng)有新的請(qǐng)求的時(shí) 在中table_cache(5.1.3 table_open_cache)Cache table_cache table_cache=max_connections*N Query Table 準(zhǔn)確,分析如下首先,max_connections 是系統(tǒng)同時(shí)可以接受的最大連接數(shù),但是這些連接并不一定都是 active 狀Sleep Sleep 狀態(tài)的連接是不可能打開任何 Table 的。N Query Table Query Table 為Query N table_cache table_cache Cache table_cache=max_connections*N Query Table 準(zhǔn)確,分析如下首先

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論