减小Mysql在Linux的内存占用(仅供参考)

Posted Tisfy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了减小Mysql在Linux的内存占用(仅供参考)相关的知识,希望对你有一定的参考价值。

减小mysql在Linux的内存占用

前言

之前在阿里云租的服务器上跑有一些东西,之前在上面通过FFmpeg进行OpenCV合成的视频的推流时,可能会由于内存占满而照成服务器无响应。

分析了内存占用后,决定减小Mysql的内存占用(因为我服务器上的Mysql使用量不大,小站没有那么多的数据)

Linux查看系统占用前10

PS:下面指令可以查看Linux的内存占用前10:

ps aux|head -1;ps aux|sort -rn -k4|head -10

下面指令可以查看Linux的CPU占用前10

ps aux|head -1;ps aux|sort -rn -k3|head -10

解释:

ps aux|head -1;ps aux|sort -rn -k3|head -10相当于ps aux|head -1ps aux|sort -rn -k3|head -10分别执行

ps

其中ps的参数a代表“所有进程(all with tty, including other users)”,u代表“user(user-oriented format)”,x代表“显示所有进程(processes without controlling ttys)”

那么ps aux就显示了所有进程的资源占用信息:

[Tisfy@LetMeFly ~]# ps aux
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.0  0.3 250788  6128 ?        Ss    2022  10:08 /usr/lib/systemd/systemd --switched-root --system --d
root           2  0.0  0.0      0     0 ?        S     2022   0:02 [kthreadd]
root           3  0.0  0.0      0     0 ?        I<    2022   0:00 [rcu_gp]
root           4  0.0  0.0      0     0 ?        I<    2022   0:00 [rcu_par_gp]
root           6  0.0  0.0      0     0 ?        I<    2022   0:00 [kworker/0:0H-kblockd]
(以下省略)

head

head命令用于显示前几行。head -1就是显示第一行的内容,也就是

USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

同理,head -10就是显示前10行

sort

sort命令用于排序,-r是“从大到小排序(reverse the result of comparisons)”默认从小到大,-n是“根据数值排序(compare according to string numerical value)”,-k是“以第几列为依据进行排序(sort via a key; KEYDEF gives location and type)”(下标从1开始,没有-k0)

How to do

我修改了Mysql的配置文件(文件路径:/etc/my.conf

可以修改或在下方添加这些参数。参数的具体意义可以在网上搜索

#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

[mysqld]
key_buffer_size = 8M
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 240K
table_definition_cache = 400

PS,今日添加了table_definition_cache,内存占用大概降低了5%(2G × 5% ≈ 100M)

若Mysql增删改查频率较高则不建议随意修改。

原创不易,转载请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/129120029

以上是关于减小Mysql在Linux的内存占用(仅供参考)的主要内容,如果未能解决你的问题,请参考以下文章

Mysql 5.7服务开启之后,占内存过多,怎么减小?

linux 下怎么优化mysql占用内存?

Linux中查看进程占用内存的情况

linux 下怎么优化mysql占用内存?

linux 内存释放 清理命令 --- 关闭MySQL后依然占用着大量内存

MySQL占用内存过大的问题解决