优化Mysql配置调整内存
1、查看Mysql版本
# mysql -V
示例:
[root@root /]# mysql -V
mysql Ver 14.14 Distrib 5.7.44, for Linux (x86_64) using EditLine wrapper
各个参数含义:
- mysql:表示这是一个MySQL命令。
- Ver 14.14:表示MySQL的版本号是14.14。
- Distrib 5.7.44:表示MySQL的发行版本是5.7.44。
- for Linux (x86_64):表示这个MySQL版本是为Linux操作系统(64位)设计的。
- using EditLine wrapper:表示MySQL使用EditLine作为命令行界面。
结论:当前Mysql版本是5.7.44
2、查看MySQL安装路径
# whereis mysql
示例:
[root@root /]# whereis mysql
mysql: /usr/bin/mysql /usr/lib64/mysql /usr/include/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz
各个参数含义:
- mysql::表示接下来的内容是关于mysql的路径信息。
- /usr/bin/mysql:表示mysql命令行工具的安装路径是/usr/bin/mysql。
- /usr/lib64/mysql:表示mysql库文件的路径是/usr/lib64/mysql。
- /usr/include/mysql:表示mysql头文件的路径是/usr/include/mysql。
- /usr/share/mysql:表示mysql的配置文件的路径是/usr/share/mysql。
- /usr/share/man/man1/mysql.1.gz:表示mysql命令行工具的手册页的路径是/usr/share/man/man1/mysql.1.gz。
结论:MySQL的安装路径是/usr/lib64/mysql
3、修改配置优化内存
3.1、优化前
当前一台2核2G的服务器,mysql占用内存情况如下:
top - 13:44:55 up 5 days, 20:22, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 113 total, 1 running, 112 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.3 us, 0.2 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.2 si, 0.0 st
KiB Mem : 1798504 total, 164088 free, 723960 used, 910456 buff/cache
KiB Swap: 1049596 total, 1049596 free, 0 used. 876948 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
31243 mysql 20 0 1464.1m 198.8m 10.8m S 0.0 11.3 2:08.21 mysqld
可以看到当前Mysql占用的内存大小是198.8M。
3.2、优化配置
3.2.1 、查询配置文件的位置
通过执行mysqld --verbose --help | grep -A 1 "Default options",可以找到MySQL服务器启动时读取的配置文件路径
示例:
[root@root /]# mysql --verbose --help | grep -A 1 "Default options"
Default options are read from the following files in the given order:
/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf
各个参数含义:
- /etc/mysql/my.cnf:这是MySQL的默认配置文件路径,通常包含全局配置选项。
- /etc/my.cnf:这是另一个常见的配置文件路径,用于存储全局配置选项。
- ~/.my.cnf:这是用户级别的配置文件路径,可以用于覆盖全局配置选项。
MySQL会按照上述顺序依次读取这些配置文件,并将它们合并为一个最终的配置。
如果多个文件中存在相同的配置选项,则后面的文件中的值将覆盖前面的文件中的值。
结论:这里选择修改/etc/my.cnf文件,因为该文件通常用于存储全局配置选项。
3.2.2、修改配置文件
1、修改innodb_buffer_pool_size参数
这是InnoDB存储引擎的缓冲池大小,它决定了多少数据和索引被缓存在内存中,适当调整这个值可以减少内存使用。
查看当前的innodb_buffer_pool_size大小:
mysql> SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
+-------------------------+-----------+
| Variable_name | Value |
+-------------------------+-----------+
| innodb_buffer_pool_size | 134217728 |
+-------------------------+-----------+
1 row in set (0.00 sec)
当前的大小是约128M。
一般是占用总内存的50-70%,但我目前没什么数据量,所以砍一半,调成64M。
修改:
[root@root /]# vim /etc/my.cnf
[mysqld]
innodb_buffer_pool_size = 64M
innodb_log_file_size = 32M
innodb_log_buffer_size = 8M
将这三个值的大小都调低了一半。
2、修改key_buffer_size参数
key_buffer_size是MySQL中用于缓存MyISAM表索引的参数,我这里基本不用MyISAM,所以这个参数可以调小一点。
原来默认的是32M,我调整成8M。
key_buffer_size = 8M
重启Mysql,让修改生效
[root@root /]# systemctl restart mysqld
再次查看当前的innodb_buffer_pool_size大小:
mysql> SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
+-------------------------+----------+
| Variable_name | Value |
+-------------------------+----------+
| innodb_buffer_pool_size | 67108864 |
+-------------------------+----------+
1 row in set (0.00 sec)
可以看到当前的大小已经调整为64M了。
3.2、优化后效果
查看当前mysql的内存占用情况:
top - 14:53:31 up 5 days, 21:31, 1 user, load average: 0.02, 0.04, 0.05
Tasks: 112 total, 1 running, 111 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.7 us, 0.3 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1798504 total, 157688 free, 630204 used, 1010612 buff/cache
KiB Swap: 1049596 total, 1049596 free, 0 used. 970700 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
24890 mysql 20 0 931.5m 124.8m 9.2m S 0.0 7.1 0:00.37 mysqld
通过top命令可以看到当前mysql的内存占用情况,已经从之前的198M降低到了128M左右。
内存占比也从之前的11.3%降到了7.1%。
总结:通过降低innodb_buffer_pool_size和key_buffer_size的值,成功降低了Mysql的内存占用情况,优化成功!!!
mysql刚安装没多久,配置都是默认的,目前只知道修改innodb_buffer_pool_size和key_buffer_size的值,不知道还有其他参数可以调整。
等以后知道了,在继续补充完善。
优化Mysql配置调整内存的更多相关文章
- 如何优化tomcat配置(从内存、并发、缓存4个方面)优化
Tomcat有很多方面,我从内存.并发.缓存四个方面介绍优化方法. ** 一.Tomcat内存优化 ** Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚 ...
- 优化tomcat配置(从内存、并发、缓存3个方面)优化
Tomcat有很多方面,我从内存.并发.缓存三个方面介绍优化方法. 一.Tomcat内存优化 Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catal ...
- 【Tomcat】如何优化tomcat配置(从内存、并发、缓存4个方面)优化
一.Tomcat内存优化 ** Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置 java_OPTS 参数. JAVA_O ...
- 优化tomcat配置(从内存、并发、缓存)优化
一.Tomcat内存优化 ** Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置 java_OPTS 参数. JAVA_O ...
- TCMalloc优化MySQL、Nginx内存管理
TCMalloc的全称为Thread-Caching Malloc,是谷歌开发的开源工具google-perftools中的一个成员. 与标准的glibc库的Malloc相比,TCMalloc库在内存 ...
- jemalloc优化MySQL、Nginx内存管理
上一篇文章<TCMalloc优化MySQL.Nginx.Redis内存管理>,下面来看下jemalloc jemalloc源于Jason Evans 2006年在BSDcan confer ...
- 优化tomcat配置(从内存、并发、缓存4个方面)优化
Tomcat内存优化 Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置 java_OPTS 参数. JAVA_OPTS参数 ...
- 优化MySQL开启skip-name-resolve参数时显示“ignored in --skip-name-resolve mode.”Warning解决方法
转自:http://blog.csdn.net/yiluoak_47/article/details/53381282 参数用途: skip-name-resolve #禁止MySQL对外部连接进行D ...
- Java面试题系列(六)优化tomcat配置
序言 资料 如何优化tomcat配置(从内存.并发.缓存3个方面)优化
- 新安装的mysql必须调整的10项配置
还在为新安装的mysql服务,不知道修改哪些默认配置而发愁吗?mysql可调整参数有100多个,到底要立即!马上!调整哪些最重要的参数? 网络神贴答复你: 这篇文章主要介绍了MySQL优化必须调整的1 ...
随机推荐
- patch命令
patch命令 patch指令让用户利用设置修补文件的方式.修改.更新原始文件,倘若一次仅修改一个文件,可直接在指令列中下达指令依序执行,如果配合修补文件的方式则能一次修补大批文件,这也是Linux系 ...
- Java中各种比较对象方式对比
1.介绍 比较对象是面向对象编程语言的一个基本特征.在本教程中,我们将介绍Java语言的一些特性,这些特性允许我们比较对象.此外,我们还将研究外部库中的这些特性. 2.==和!=操作符 让我们从==和 ...
- linux如何发送电子邮件
使用linux时,有时我们想发邮件给朋友或同事,可不可以通过命令行直接发呢? 想通过linux监控网站或者系统状况并自动报警,如何使用脚本发出邮件给外部邮箱呢? 不 ...
- Vue+SpringBoot+ElementUI实战学生管理系统-7.专业管理模块
1.章节介绍 前一篇介绍了院系管理模块,这一篇编写专业管理模块,需要的朋友可以拿去自己定制.:) 2.获取源码 源码是捐赠方式获取,详细请QQ联系我 :)! 3.实现效果 专业列表 修改专业 4.模块 ...
- win32 - 使用GDI+从资源中获取图像并加载
很多时候我们习惯使用GDI+中Image类来加载本地文件,但是有时候我们需要资源中从加载png格式的图片时,却无法使用该类. 我们可以使用FindResource,LoadResource和LockR ...
- MySQL单表能存储多少条数据?
MySQL是中小型网站普遍使用的数据库之一,然而,很多人并不清楚MySQL到底能支持多大的数据量,甚至对它产生误解.MySQL单表的上限,主要与操作系统支持的最大文件大小有关.事实上MySQL能承受的 ...
- go最新版本1.15安装配置及编辑器2020.2版本goland
下载 https://golang.google.cn/dl/ 配置 go env #查看是否安装成功 # 终端输入修改镜像地址 $ go env -w GO111MODULE=on $ go env ...
- Jetpack Compose(2) —— 入门实践
一.项目中使用 Jetpack Compose 从此节开始,为方便起见,如无特殊说明,Compose 均指代 Jetpack Compose. 开发工具: Android Studio 1.1 创建支 ...
- 【webserver 前置知识 01】Linux系统编程入门
题外话,PA里面也有很不错的Linux基础基础 传送门:https://nju-projectn.github.io/ics-pa-gitbook/ics2019/linux.html 静态库与动态库 ...
- 01、NATS基础介绍
01.NATS基础介绍 项目中使用到了 NATS,但是之前并没有接触过,所以特意去学习了下,网上找了些资料,相对来说,都不是很全的介绍,所以特意记录下笔记,方便自己掌握,也希望可以帮助到其他小伙伴. ...