現(xiàn)象:在mysql運(yùn)行一天之后,發(fā)現(xiàn)內(nèi)存占用量達(dá)到總內(nèi)存的百分之77,且swap被占用百分之50
問(wèn)題檢查如下:
第一步:開(kāi)啟內(nèi)存使用的監(jiān)控服務(wù)
mysql> UPDATE performance_schema.setup_instruments SET ENABLED = 'YES' WHERE NAME LIKE 'memory/%';
禁用方法:
mysql> UPDATE performance_schema.setup_instruments SET ENABLED = 'NO' WHERE NAME LIKE 'memory/%';
查看方法:
mysql> select * from performance_schema.setup_instruments where NAME like 'memory%' and NAME not like 'memory/performance_schema%';
mysql> select * from performance_schema.setup_instruments where NAME like 'memory%';
第二步: 查看正常實(shí)例的使用情況
mysql> select USER,HOST,EVENT_NAME,COUNT_ALLOC,COUNT_FREE,CURRENT_COUNT_USED,SUM_NUMBER_OF_BYTES_ALLOC,SUM_NUMBER_OF_BYTES_FREE,CURRENT_NUMBER_OF_BYTES_USED from performance_schema.memory_summary_by_account_by_event_name order by CURRENT_NUMBER_OF_BYTES_USED desc limit 10;
COUNT_ALLOC:內(nèi)存分配次數(shù)
COUNT_FREE:內(nèi)存回收次數(shù)
SUM_NUMBER_OF_BYTES_ALLOC:內(nèi)存分配大小
SUM_NUMBER_OF_BYTES_FREE:內(nèi)存回收大小
CURRENT_COUNT_USED:當(dāng)前分配的內(nèi)存,通過(guò)COUNT_ALLOC-COUNT_FREE計(jì)算得到
CURRENT_NUMBER_OF_BYTES_USED:當(dāng)前分配的內(nèi)存大小,通過(guò)SUM_NUMBER_OF_BYTES_ALLOC-SUM_NUMBER_OF_BYTES_FREE計(jì)算得到
LOW_COUNT_USED:CURRENT_COUNT_USED的最小值
HIGH_COUNT_USED:CURRENT_COUNT_USED的最大值
LOW_NUMBER_OF_BYTES_USED:CURRENT_NUMBER_OF_BYTES_USED的最小值
HIGH_NUMBER_OF_BYTES_USED:CURRENT_NUMBER_OF_BYTES_USED的最大值
第三步: 查看內(nèi)存監(jiān)控表數(shù)據(jù)
select event_name, current_alloc, high_alloc from sys.memory_global_by_current_bytes where current_count > 0;
第三步: 查看事件類(lèi)型下的內(nèi)存量
mysql> select substring_index(
-> substring_index(event_name, '/', 2),
-> '/',
-> -1
-> ) as event_type,
-> round(sum(CURRENT_NUMBER_OF_BYTES_USED)/1024/1024, 2) as MB_CURRENTLY_USED
-> from performance_schema.memory_summary_global_by_event_name
-> group by event_type
問(wèn)題解決:
? ? ? ? 當(dāng)事件的內(nèi)存占用是performance_schema過(guò)高的話(huà),可以考慮關(guān)閉或者減少該事件使用內(nèi)存的量,操作如下文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-512671.html
降低performance_schema的內(nèi)存使用率:
performance_schema_max_table_instances=400
table_definition_cache=400
table_open_cache=256
關(guān)閉performance_schema:
performance_schema=off
相關(guān)幫助鏈接:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-512671.html
- MySQL最佳實(shí)踐:內(nèi)存管理分析
- mysql開(kāi)啟緩存、設(shè)置緩存大小、緩存過(guò)期機(jī)制
- 記一次mysql內(nèi)存占用過(guò)大-不釋放問(wèn)題排查
- 排除故障指南:MySQL運(yùn)行內(nèi)存不足時(shí)應(yīng)采取的措施?
到了這里,關(guān)于mysql內(nèi)存占用過(guò)高的問(wèn)題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!