Mysql Errcode: 24 - Too many open files
?? ?Out of resources when opening file '**.MYD' (Errcode: 24 - Too many open files)
今天測(cè)試數(shù)據(jù)庫(kù)出現(xiàn)鏈接一打開(kāi)表就報(bào)上面這個(gè)錯(cuò)?
首先給出解決方案:
?flush tables;//命令將會(huì)清空當(dāng)前所有緩存的表。
set global table_open_cache=214;//釋放緩存的文件數(shù)。
比較適合的值:
Open_tables / Opened_tables >= 0.85
Open_tables / table_open_cache <= 0.95
show global status like 'open_%';//這個(gè)是查看全局被打開(kāi)的狀態(tài),下面那條就是查看表的
SHOW GLOBAL STATUS LIKE 'open%tables';//查看被打開(kāi)表數(shù)及被打開(kāi)過(guò)的表數(shù)。
其中open_tables表示當(dāng)前打開(kāi)的table總和,即所有connection打開(kāi)的table總數(shù)。
opened_tables表示打開(kāi)過(guò)的表的數(shù)量總和,只有show global status才能看到它的值。這是個(gè)計(jì)數(shù)器,Opened_tables/Uptime的值過(guò)大說(shuō)明table_open_cache過(guò)小,導(dǎo)致一些table對(duì)象(即下文說(shuō)的table對(duì)象)經(jīng)常會(huì)刷出server層,需要的時(shí)候再創(chuàng)建,最終導(dǎo)致此計(jì)數(shù)過(guò)大。
?? ?show variables like 'table%‘;?//展示參數(shù)設(shè)置表高速緩存的數(shù)目。
每個(gè)連接進(jìn)來(lái),都會(huì)至少打開(kāi)一個(gè)表緩存,如果在表緩沖區(qū)中還有空間,該表就被打開(kāi)并放入其中,這樣可以更快地訪問(wèn)表內(nèi)容。因此, table_open_cache的大小應(yīng)與 max_connections 的設(shè)置有關(guān)。
? ? ? ? ?例如,對(duì)于 200 個(gè)并行運(yùn)行的連接,應(yīng)該讓表的緩存至少有 200 × N ,這里 N 是應(yīng)用可以執(zhí)行的查詢的一個(gè)聯(lián)接中表的最大數(shù)量。此外,還需要為臨時(shí)表和文件保留一些額外的文件描述符。
show global variables like 'max_connections';//這是是查詢數(shù)據(jù)庫(kù)當(dāng)前設(shè)置的最大連接數(shù)
?? ??? ??? ??? ?
總結(jié)
以上是生活随笔為你收集整理的Mysql Errcode: 24 - Too many open files的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 前端数据可视化可绘制地图等插件:High
- 下一篇: 清空数据库部分表的数据 Oracle