Skip to content

Commit

Permalink
容器启动Mysql5.7占用太大内存的问题
Browse files Browse the repository at this point in the history
  • Loading branch information
javajianghu committed May 24, 2024
1 parent 2740434 commit c8d9684
Show file tree
Hide file tree
Showing 9 changed files with 107 additions and 4 deletions.
1 change: 1 addition & 0 deletions _footer.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[备案](https://beian.miit.gov.cn/#/Integrated/index) Copyright © 2024 Java江湖
1 change: 0 additions & 1 deletion _navbar.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
<!-- _navbar.md -->

* 友情链接
* [池建强的墨问主页](#小程序://墨问/WLG1IUwxbxxaJLq)
* [MacTalk-池建强的随想录](https://macshuo.com/)
* [构建我的被动收入](https://www.bmpi.dev)
1 change: 1 addition & 0 deletions _sidebar.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
- [第3期-你真的会问问题吗?](md/卖桃者说-极客时间/第3期-你真的会问问题吗.md)
- Mysql
- [Mysql使用docker-compose启动时my.cnf配置不生效的问题](/md/2024-01-03-docker-compose启动mysql时my.cnf配置不生效的问题.md)
- [Mysql容器启动内存异常占用的问题](/md/2024-05-24-Mysql容器启动内存异常占用的问题.md)
- Docker
- [Docker部署Nacos服务](/md/2022-11-17-Docker部署Nacos服务.md)
- ElasticSearch
Expand Down
4 changes: 4 additions & 0 deletions assets/js/docsify-footer.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 6 additions & 3 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@
<link rel="stylesheet" href="assets/css/vue.css">
</head>
<body>
<div id="app"></div>

<div id="app">加载中...</div>
<script>
window.$docsify = {
name: 'Java江湖侠客岛',
Expand All @@ -21,6 +20,7 @@
loadSidebar: true,//目录栏
maxLevel: 4,
subMaxLevel: 2,
loadFooter: '_footer.md',
// 全局搜索
search: {
paths: 'auto',
Expand Down Expand Up @@ -53,7 +53,7 @@
previousText: '上一页',
nextText: '下一页',
crossChapter: true,
crossChapterText: true
crossChapterText: false
},
toc: {
tocMaxLevel: 2,
Expand All @@ -79,5 +79,8 @@
<script src="assets/js/countable.js"></script>
<!-- 分页导航 -->
<script src="assets/js/docsify-pagination.min.js"></script>
<!-- 页脚 -->
<script src="assets/js/docsify-footer.min.js"></script>

</body>
</html>
95 changes: 95 additions & 0 deletions md/2024-05-24-Mysql容器启动内存异常占用的问题.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
# 问题回顾
使用一下docker-compose.yaml启动了mysql容器。

启动成功后,使用free -mh查看宿主机内存占用情况,并用docket stats 查看容器情况,mysql竟然占用了16个G

## docker-compose.yaml
```yaml
version: '3.9'
services:
mysql:
image: mysql:5.7.29
restart: on-failure
container_name: mysql
environment:
- TZ=Asia/Shanghai
- MYSQL_ROOT_PASSWORD=123456
volumes:
- /etc/localtime:/etc/localtime:ro
- ${PWD}/config/my.cnf:/etc/mysql/my.cnf
- ${PWD}/data:/var/lib/mysql
- ${PWD}/logs:/usr/local/mysql/log
ports:
- 3306:3306
```
## my.cnf 配置
```
[mysqld]
lower_case_table_names=1
port=3306
```

## docker stats Mysql占用了16G
![Mysql占用了16G](./assets/Snipaste_2024-05-24_10-29-45.png)

## 问题排查

进入到容器内部
```shell
docker exec -it mysql
```

使用top命令,提示命令不存在,那么执行下面命令,安装top命令
```shell
apt install procps
```

执行top,并按m键,发现只有mysqld这个进程占用内存。
![mysqld这个进程占用内存](./assets/Snipaste_2024-05-24_10-54-52.png)

这就很奇怪了。

在google下发现了这篇文章。

[**docker启动mysql时内存占用过多**](https://blog.chenwx.top/p/docker-mysql-event1.html)


# 原因分析:
文章指出
**这个问题的直接原因是文件描述符上限太大了;**

## 原文截图
![原文截图](./assets/Snipaste_2024-05-24_14-52-20.png)


于是我修改下docker-compose启动脚本
```yaml
version: '3.9'
services:
mysql:
image: mysql:5.7.29
restart: on-failure
container_name: mysql
environment:
- TZ=Asia/Shanghai
- MYSQL_ROOT_PASSWORD=123456
ulimits:
nproc: 65535
nofile:
soft: 26677
hard: 46677
volumes:
- /etc/localtime:/etc/localtime:ro
- ${PWD}/config/my.cnf:/etc/mysql/my.cnf
- ${PWD}/data:/var/lib/mysql
- ${PWD}/logs:/usr/local/mysql/log
ports:
- 3306:3306
```
重新run了容器,发现内存下来了。
```shell
root@betterme:/data/soft/mysql# free -mh
total used free shared buff/cache available
Mem: 27Gi 2.3Gi 19Gi 7.8Mi 5.2Gi 24Gi
Swap: 8.0Gi 0B 8.0Gi
```
Binary file added md/assets/Snipaste_2024-05-24_10-29-45.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added md/assets/Snipaste_2024-05-24_10-54-52.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added md/assets/Snipaste_2024-05-24_14-52-20.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit c8d9684

Please sign in to comment.