当前位置:网站首页>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 .
边栏推荐
- Who says that PT online schema change does not lock the table, or deadlock
- Kaggle competition two Sigma connect: rental listing inquiries (xgboost)
- Time slice polling scheduling of RT thread threads
- JS数组常用方法的分类、理解和运用
- Feature of sklearn_ extraction. text. CountVectorizer / TfidVectorizer
- VSCode基础配置
- 機器學習--線性回歸(sklearn)
- Symbolic representation of functions in deep learning papers
- RT-Thread 线程的时间片轮询调度
- Analysis of charging architecture of glory magic 3pro
猜你喜欢
IOT system framework learning
基于Redis的分布式ID生成器
Several declarations about pointers [C language]
Kaggle竞赛-Two Sigma Connect: Rental Listing Inquiries(XGBoost)
数据分析之缺失值填充(重点讲解多重插值法Miceforest)
JS object and event learning notes
Custom view puzzle getcolor r.color The color obtained by colorprimary is incorrect
機器學習--線性回歸(sklearn)
ToggleButton实现一个开关灯的效果
Basic use of pytest
随机推荐
Priority inversion and deadlock
RT thread API reference manual
Kconfig Kbuild
JS变量类型以及常用类型转换
ES6语法总结--下篇(进阶篇 ES6~ES11)
[golang] leetcode intermediate - fill in the next right node pointer of each node & the k-smallest element in the binary search tree
[esp32 learning-2] esp32 address mapping
Fashion Gen: the general fashion dataset and challenge paper interpretation & dataset introduction
Kconfig Kbuild
A possible cause and solution of "stuck" main thread of RT thread
GNN的第一个简单案例:Cora分类
I2C bus timing explanation
C language, log print file name, function name, line number, date and time
Keyword inline (inline function) usage analysis [C language]
arduino获取随机数
优先级反转与死锁
Types de variables JS et transformations de type communes
小天才电话手表 Z3工作原理
ARM PC=PC+8 最便于理解的阐述
MySQL realizes read-write separation