我最近获得了我的第一个 VPS 来为我的 Minecraft 服务器运行 mysql 服务器,我已经设置了 MariaDB,它目前使用默认设置。我昨晚用一个插件(GriefPrevention v7.8)测试了它,看看是否可以远程使用,它有效,但检查htop
现在有数十个 mysql 进程!我只是用这个VPS mysql服务器简单测试了插件,这些打开的连接是否没有关闭?
我尝试重新启动 mysql 但这并没有阻止他们。我还有一个在 VPS 盒子上运行的 Web 界面,可将信息提取到 Web UI 中,但我没有公布 VPS 的 URL,因此不应加载它。
- 我怎样才能看到是什么原因造成这些?
- 我想按照这个速度,他们都会建立并崩溃服务器?
- 我该如何限制这些,应该吗?
- 当我推送它们使用它时,我应该为每个插件创建一个新用户来远程访问数据库吗?
- 当插件未使用且我已重新启动 mysql 时,为什么这些“连接”仍然打开?
答案1
应该没问题。与该top
命令不同,htop
默认情况下会列出所有线程以及进程。因此,您看到的所有“mysqld”都不是进程,而是线程。
做这个:
获取您在输出中看到的一些 mysql 条目的 PID htop
,并在ps
.
例如:
ps -ef | grep 14082
在这里,grep 可能不会向您返回任何 mysql 进程。现在试试这个:
ps -eLf | grep 14082
现在你会看到 grep 返回一个 mysql 进程,它实际上不是一个进程,而是一个线程。
该L
选项还将要求ps
列出所有轻量级进程(线程)。因此 grep 找到了您拥有的 TID,因为它是一个轻量级进程或线程。检查top
输出,您可能只会看到一两个 MySQL 进程。
ps -ef
此外,从输出中获取 MySQL 进程的 PID ,并用于pstree
查看从该进程创建的所有线程。
pstree -p <PIDofMySQL>