MySQL并發(fā)和innodb_thread_concurrency參數(shù)理解

MySQL并發(fā)和innodb_thread_concurrency參數(shù)理解

測(cè)試環(huán)境:
CPU:2顆8核
內(nèi)存:16GB
OS:CentOS Linux release 7.5.1804 (Core)
磁盤:6塊300G SAS盤做的raid10,IO性能較差
innodb_buffer_pool_size = 2G

并發(fā)相關(guān)參數(shù):
相關(guān)參數(shù):
innodb_thread_concurrency=0(default)蔫敲,限制innodb內(nèi)部行的并發(fā)度,但是在提交階段(innodb的結(jié)構(gòu)和鎖爭用很嚴(yán)重的)盈匾,卻沒有得到很好的保護(hù),所以MySQL從5.0開始引進(jìn)innodb_commit_concurrency參數(shù)
innodb_commit_concurrency=0(default 不限制),從5.0就開始引進(jìn)
innodb_thread_sleep_delay=10000 μs(default)咬像,當(dāng)innodb_thread_concurrency=0時(shí)乖杠,該值不生效
innodb_adaptive_max_sleep_delay=150000 μs(default)
innodb_concurrency_tickets=5000(default)

機(jī)器邏輯CPU是8顆狭魂,設(shè)置innodb_thread_concurrency=6阅茶,觀察InnoDB 內(nèi)部并發(fā)和邏輯CPU的使用情況。

用sysbench --threads=100 壓測(cè)
1)InnoDB 內(nèi)部并發(fā)最高能到6queries坏晦,如下:


ROW OPERATIONS

6 queries inside InnoDB, 40 queries in queue
87 read views open inside InnoDB
Process ID=24450, Main thread ID=139692251248384, state: sleeping
Number of rows inserted 16121605, updated 682665, deleted 10473956, read 542121158
335.83 inserts/s, 618.69 updates/s, 309.35 deletes/s, 121723.64 reads/s

2)8顆邏輯CPU都能用上萝玷,因?yàn)镃PU時(shí)間片輪轉(zhuǎn)的時(shí)間很短,我是以1s為單位采集信息

top

top - 19:19:42 up 228 days, 37 min, 2 users, load average: 49.56, 15.24, 5.42
Tasks: 238 total, 1 running, 237 sleeping, 0 stopped, 0 zombie
%Cpu0 : 76.5 us, 19.4 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 4.1 si, 0.0 st
%Cpu1 : 74.3 us, 21.1 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 4.7 si, 0.0 st
%Cpu2 : 75.4 us, 18.7 sy, 0.0 ni, 0.6 id, 0.0 wa, 0.0 hi, 5.3 si, 0.0 st
%Cpu3 : 76.5 us, 19.4 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 4.1 si, 0.0 st
%Cpu4 : 76.5 us, 18.8 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 4.7 si, 0.0 st
%Cpu5 : 76.5 us, 17.6 sy, 0.0 ni, 0.6 id, 0.0 wa, 0.0 hi, 5.3 si, 0.0 st
%Cpu6 : 74.7 us, 19.4 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 5.9 si, 0.0 st
%Cpu7 : 74.4 us, 19.2 sy, 0.0 ni, 0.6 id, 0.6 wa, 0.0 hi, 5.2 si, 0.0 st
KiB Mem : 16262032 total, 170044 free, 5911864 used, 10180124 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 9059240 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
24450 mysql 20 0 7290636 1.6g 7044 S 480.7 10.2 3293:49 mysqld

3)設(shè)置innodb_thread_concurrency=0時(shí)昆婿,InnoDB內(nèi)部并發(fā)數(shù)可超過6 queries球碉。

結(jié)合官方文檔得到以下結(jié)論:

  1. server層:sql開始執(zhí)行時(shí)。 MySQL在5.6后仓蛆,在server層引入了thread pool進(jìn)行并發(fā)控制睁冬。
  2. Innodb層:記錄查找和記錄更新時(shí)。Innodb存儲(chǔ)引擎多律,使用innodb_thread_concurrency參數(shù)進(jìn)行并發(fā)控制
    相關(guān)的參數(shù)還有innodb_thread_sleep_delay和innodb_concurrency_tickets痴突。
    1)當(dāng)innodb_thread_concurrency=0時(shí)搂蜓,innodb_thread_sleep_delay參數(shù)不起作用狼荞,引擎層不控制并發(fā)數(shù)辽装,這時(shí)由參數(shù)innodb_concurrency_tickets=5000(default)來限制query的并發(fā)數(shù),直到tickets用完相味,線程進(jìn)入等待或清理不活躍的線程拾积。
    2)當(dāng)innodb_thread_concurrency>0時(shí),超過了innodb_thread_concurrency的值,首先要等innodb_thread_sleep_delay ms后嘗試再次進(jìn)入工作線程丰涉,如果失敗拓巧,則會(huì)進(jìn)入到FIFO隊(duì)列等待喚醒。如果一個(gè)線程能夠進(jìn)到innodb層一死,則會(huì)發(fā)放一個(gè)innodb_concurrency_tickets票(默認(rèn)5000)肛度,下次的時(shí)候如果在有效期內(nèi),則不會(huì)檢查tickets投慈。
    也就是說innodb_concurrency_tickets才是真正控制并發(fā)承耿,innodb_thread_concurrency只是延緩取票速度。

innodb_thread_concurrency>0時(shí)伪煤,可通過show engine innodb status\G;的ROW OPERATIONS段來觀察query隊(duì)列(M queries inside InnoDB, N queries in queue)加袋。
innodb_thread_concurrency=0時(shí),innodb status不再采集并發(fā)信息抱既,ROW OPERATIONS 狀態(tài)輸出為:0 queries inside InnoDB, 0 queries in queue职烧。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市防泵,隨后出現(xiàn)的幾起案子蚀之,更是在濱河造成了極大的恐慌,老刑警劉巖捷泞,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件足删,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡肚邢,警方通過查閱死者的電腦和手機(jī)壹堰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來骡湖,“玉大人贱纠,你說我怎么就攤上這事∠煸蹋” “怎么了谆焊?”我有些...
    開封第一講書人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長浦夷。 經(jīng)常有香客問我辖试,道長辜王,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任罐孝,我火速辦了婚禮呐馆,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘莲兢。我一直安慰自己汹来,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開白布改艇。 她就那樣靜靜地躺著收班,像睡著了一般。 火紅的嫁衣襯著肌膚如雪谒兄。 梳的紋絲不亂的頭發(fā)上摔桦,一...
    開封第一講書人閱讀 50,050評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音承疲,去河邊找鬼邻耕。 笑死,一個(gè)胖子當(dāng)著我的面吹牛纪隙,可吹牛的內(nèi)容都是我干的赊豌。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼绵咱,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼碘饼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起悲伶,我...
    開封第一講書人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤艾恼,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后麸锉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體钠绍,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年花沉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了柳爽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡碱屁,死狀恐怖磷脯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情娩脾,我是刑警寧澤赵誓,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響俩功,放射性物質(zhì)發(fā)生泄漏幻枉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一诡蜓、第九天 我趴在偏房一處隱蔽的房頂上張望熬甫。 院中可真熱鬧,春花似錦万牺、人聲如沸罗珍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蘸朋,卻和暖如春核无,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背藕坯。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來泰國打工团南, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人炼彪。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓吐根,卻偏偏與公主長得像,于是被迫代替她去往敵國和親辐马。 傳聞我的和親對(duì)象是個(gè)殘疾皇子拷橘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容

  • https://blog.csdn.net/steven_liwen/article/details/531884...
    SkTj閱讀 2,361評(píng)論 0 16
  • 主要來自 《高性能MySQL(第3版)》 《MySQL管理之道:性能調(diào)優(yōu)、高可用與監(jiān)控(第2版)》 《MyS...
    FengXQ閱讀 550評(píng)論 0 0
  • 今天看到一位朋友寫的mysql筆記總結(jié)喜爷,覺得寫的很詳細(xì)很用心冗疮,這里轉(zhuǎn)載一下,供大家參考下檩帐,也希望大家能關(guān)注他原文地...
    信仰與初衷閱讀 4,726評(píng)論 0 30
  • 系統(tǒng)層面(基本不用動(dòng)术幔,看了下,買的云服務(wù)器基本都已經(jīng)優(yōu)化過了) 內(nèi)核相關(guān)參數(shù)(/etc/sysctl.conf) ...
    神奇大葉子閱讀 1,997評(píng)論 0 4
  • 空蕩的教室里 無聲的告白 曾走過的花季 回眸的你 我把過去日記 可是親愛的 下一個(gè)明年 你我將在哪里 從未相依 怎...
    駿偲cai___閱讀 329評(píng)論 0 0