我是Linux的初学者。服务器计算机的内存为2GB。
我刚刚在docker中安装了一个MySQL服务器:最新版本,并在一个容器中运行它。
现在MySQL没有任何数据库表,只有一个全新的MySQL。
然而,在我安装CentOS8之后,它经常挂起。
我像这样检查了内存成本:
[root@test ~]# ps -aux | sort -k4nr | head -10
mysql 19410 1.1 20.9 1854552 391940 ? Ssl 20:34 0:01 mysqld
root 1452 0.4 12.0 3151680 225168 ? Sl 18:49 0:30 /usr/bin/gnome-shell
root 19101 3.6 7.9 1276148 149300 pts/1 SLl+ 20:33 0:07 /usr/libexec/mysql-workbench/mysql-workbench-bin
root 2088 0.1 2.4 1143892 45092 ? Ssl 18:50 0:06 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
root 1351 0.0 2.0 569096 37964 tty1 S<l 18:49 0:05 /usr/libexec/Xorg :0 vt1 -keeptty -auth /root/.serverauth.1328
root 1800 0.0 1.9 1401944 37036 ? Sl 18:49 0:01 /usr/bin/gnome-software --gapplication-service
root 2464 0.0 1.5 12032812 28968 ? SLsl 18:51 0:06 dotnet test.dll
root 1922 0.0 1.4 368984 27032 ? S 18:49 0:00 /usr/libexec/platform-python /usr/libexec/rhsmd
root 2087 0.3 1.4 1133376 26504 ? Ssl 18:50 0:20 /usr/bin/containerd
root 2740 0.2 1.2 204224 22576 ? Ss 18:59 0:16 /usr/libexec/sssd/sssd_kcm --uid 0 --gid 0 --logger=files正如您所看到的,mysqld的成本最高。
在我杀了mysqld之后,一切都运行得很好。系统将不再挂起,而我也无法访问数据库。
我从未见过这种情况,甚至在2016年windows服务器上使用同一台计算机运行MySQL之前也是如此。
我怎么才能解决这个问题?你能帮帮我吗?谢谢。
发布于 2020-01-29 04:25:25
找到配置文件。降低此设置:
innodb_buffer_pool_size = 300M它可能比这更大,因此耗尽了一堆内存。
发布于 2020-01-26 14:07:49
2GB内存并不多,特别是对于服务器来说。(我的2+手机的内存比你的服务器多2倍)
2 CPU核心& 2GB是支持MySQL配置所需的最低限度。数据库系统是内存密集型的,因为它们被设计用来处理大量数据。RDBMS希望将数据保存在内存中,以避免执行物理IO操作。
可以安全地假设操作系统和MySQL的这个2GB的最低帐户,而服务器上没有其他的运行帐户。
我从ps命令的输出中注意到,您还在运行MySQL工作台、Docker、Python和其他一些位。单独而言,这些都不是资源密集型的,但它们都有自己的内存& CPU需求,它们都在争夺非常小的内存。
最终,你只需要更多的马力,特别是在性能很重要的情况下。您可以尝试将除MySQL之外的所有内容转移到不同的服务器上,并尽可能地探索尽可能简约的发行版,但这条路径的成功并不一定。只需添加更多内存(可能还有vCPUs)..。考虑到内存占用量很小,我认为CPU数量非常少)是一件“确定的事情”。
https://dba.stackexchange.com/questions/258208
复制相似问题