当前位置:网站首页>MySQL takes up too much memory solution
MySQL takes up too much memory solution
2022-07-06 12:13:00 【A pole】
List of articles
Preface
For some petty bourgeoisie players , The number of servers and memory are often very limited , My personal server configuration is 2 nucleus 4G5M.
4G Memory for Java Game player , It's really not big , Open several middleware + Their own micro services are really crowded , Then spread it MySQL This big enemy . I'm on this machine MySQL Only a few M Memory ( Although I don't use it very much , But this machine MySQL It's really on ):
And the server accounts for 400M, In fact, there is no throughput , Just play by yourself , This memory occupation is really a little unbearable ...
Solution
Learned that you can reduce by modifying the configuration MySQL Memory footprint , I tried , And recorded . Because I have two servers at the same time , One is equipped with windows service 2016, Another one is equipped with CentOS7, The situation of both sets is similar , So make two records at the same time , For your reference .
Find the configuration file
Windows Service 2016
The default location of the configuration file is C:\ProgramData\MySQL\MySQL Server 8.0\my.ini, If there is any modification , Find out according to your actual situation .
CentOS7
The default path of the configuration file is /etc/my.cnf, If there is any modification , Find out according to your actual situation .
Modify the configuration file
Windows It can be used Ctrl + F To search ,Linux It can be used ‘/key’ To search , If not, you can refer to Baidu .
There are three things we need to find and modify :
find
table_definition_cache
, Let's change it to 400The official explanation is : The number of table definitions that can be stored in the definition cache ( come from .frm file ). If you use a large number of tables , You can create a large table definition cache to speed up the opening of tables . Different from ordinary table caching , The table definition cache takes up less space , And do not use file descriptors . The minimum and default values are 400.
find
table_open_cache
, Let's change it to 256MySQL Every time I open a watch , Will read in some data to table_open_cache In cache , When MySQL When no corresponding information is found in this cache , Will go to the disk to read .
The official explanation is : Number of open tables for all threads . Increasing this value will increase mysqld Number of file descriptors required . therefore , You have to make sure that at [mysqld safe] Partial variables “open files limit” Set the number of files allowed to be opened to at least 4096.
find
performance_schema
, It is amended as follows offIf you can't find this , Directly add
performance_schema = off
that will do .Used to monitor MySQL server Resource consumption in a lower level of running process 、 Resource waiting, etc , You can save money after closing , Will not make server Your behavior changes .
Save and exit after modification .
restart MySQL
Windows Service 2016
Start the console as an administrator , Input net stop mysql, And then you type in net start mysql.
After restart, it still takes 62M.
CentOS7
Console input service mysqld restart You can restart .
If not , You can try /etc/init.d/mysqld restart
This instruction .
Occupied after restart 92M, Than Windows That one is more .
Postscript
In this way, it can really reduce mysql Memory footprint , But I'm just trading performance for memory , If the throughput requirements are relatively high , It certainly cannot be modified directly like this , It has to be adjusted according to the actual request .
边栏推荐
猜你喜欢
机器学习--决策树(sklearn)
RT-Thread的main线程“卡死”的一种可能原因及解决方案
Analysis of charging architecture of glory magic 3pro
Fashion Gen: the general fashion dataset and challenge paper interpretation & dataset introduction
PyTorch四种常用优化器测试
机器学习--线性回归(sklearn)
共用体(union)详解【C语言】
JS变量类型以及常用类型转换
Time slice polling scheduling of RT thread threads
Cannot change version of project facet Dynamic Web Module to 2.3.
随机推荐
列表的使用
嵌入式启动流程
arduino获取随机数
機器學習--線性回歸(sklearn)
【ESP32学习-2】esp32地址映射
[esp32 learning-1] construction of Arduino esp32 development environment
机器学习--线性回归(sklearn)
map文件粗略分析
The first simple case of GNN: Cora classification
Vscode basic configuration
Arduino uno R3 register writing method (1) -- pin level state change
Raspberry pie tap switch button to use
ES6语法总结--上篇(基础篇)
js题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
ESP8266通过Arduino IDE连接Onenet云平台(MQTT)
JS regular expression basic knowledge learning
Selective sorting and bubble sorting [C language]
Variable star user module
ESP learning problem record
电商数据分析--薪资预测(线性回归)