#系统环境
> neofetch --off
OS: Arch Linux x86_64
Host: HP Laptop 14s-cr0xxx
Kernel: 5.16.10-arch1-1
Shell: zsh 5.8.1
DE: Plasma 5.24.1
WM: KWin
CPU: Intel i5-8250U (4) @ 3.400GHz
Memory: 3268MiB / 23925MiB
> docker version
Client:
Version: 20.10.12
API version: 1.41
Go version: go1.17.5
Git commit: e91ed5707e
Built: Mon Dec 13 22:31:40 2021
OS/Arch: linux/amd64
Context: default
Experimental: true
Server:
Engine:
Version: 20.10.12
API version: 1.41 (minimum version 1.12)
Go version: go1.17.5
Git commit: 459d0dfbbb
Built: Mon Dec 13 22:30:43 2021
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v1.6.0
GitCommit: 39259a8f35919a0d02c9ecc2871ddd6ccf6a7c6e.m
runc:
Version: 1.1.0
GitCommit: v1.1.0-0-g067aaf85
docker-init:
Version: 0.19.0
GitCommit: de40ad0
#复现步骤
docker run -d --rm --name mysql5.7 -e MYSQL_ROOT_PASSWORD=passwd mysql:5.7
# 这里mysql版本为5.7.37
docker run -d --rm --name mysql -e MYSQL_ROOT_PASSWORD=passwd mysql
# 这里 mysql版本为 8.0.27
docker stats
# 实时CPU、内存占用显示
我的情况是:
版本 5 情况下,内存占用高低变化,从 1G 到 16G(总内存 23G),1 分钟后稳定在 16G;CPU 占用一开始在 100%,甚至超过,1 分钟后也稳定下来,不到 0.5%。 BLOCK I/O
一直是 0B / 292MB
,这可能是一个关键点。
版本 8 情况下,内存占用很稳定,382M;CPU 占用不超过 0.5%。 BLOCK I/O
为 25.4MB / 258MB
。
I/O
表示输入与输出。
只出不入,容易壅塞。
一条相关 GitHub issue:https://github.com/docker-library/mysql/issues/579
之后的测试过程中得到一个短语:memory trap,相关 issue:https://github.com/docker-library/mysql/issues/361