当前位置:网站首页>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 = offthat 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 .
边栏推荐
- Arduino gets the length of the array
- Variable parameter principle of C language function: VA_ start、va_ Arg and VA_ end
- Pat 1097 duplication on a linked list (25 points)
- Kaggle competition two Sigma connect: rental listing inquiries
- JS数组常用方法的分类、理解和运用
- Basic operations of databases and tables ----- view data tables
- Symbolic representation of functions in deep learning papers
- Cannot change version of project facet Dynamic Web Module to 2.3.
- Basic knowledge of lithium battery
- Mp3mini playback module Arduino < dfrobotdfplayermini H> function explanation
猜你喜欢

Reno7 60W super flash charging architecture

Kaggle competition two Sigma connect: rental listing inquiries (xgboost)

Basic operations of databases and tables ----- view data tables

ES6 grammar summary -- Part I (basic)

机器学习--决策树(sklearn)

uCOS-III 的特点、任务状态、启动

js 变量作用域和函数的学习笔记

Gallery's image browsing and component learning

RT-Thread的main线程“卡死”的一种可能原因及解决方案

Understanding of AMBA, AHB, APB and Axi
随机推荐
The dolphin scheduler remotely executes shell scripts through the expect command
C语言,log打印文件名、函数名、行号、日期时间
物联网系统框架学习
Arduino uno R3 register writing method (1) -- pin level state change
RT thread API reference manual
ESP8266使用arduino连接阿里云物联网
AMBA、AHB、APB、AXI的理解
STM32 how to locate the code segment that causes hard fault
Imgcat usage experience
The first simple case of GNN: Cora classification
Characteristics, task status and startup of UCOS III
[esp32 learning-1] construction of Arduino esp32 development environment
Kconfig Kbuild
关键字 inline (内联函数)用法解析【C语言】
FreeRTOS 任务函数里面的死循环
MP3mini播放模块arduino<DFRobotDFPlayerMini.h>函数详解
电商数据分析--用户行为分析
[Red Treasure Book Notes simplified version] Chapter 12 BOM
JS数组常用方法的分类、理解和运用
Pat 1097 duplication on a linked list (25 points)