Mysql 5.7 进程显示运行时间长,内存交换量大
Posted
技术标签:
【中文标题】Mysql 5.7 进程显示运行时间长,内存交换量大【英文标题】:Mysql 5.7 process shows a long time running, high memory swap 【发布时间】:2021-02-21 03:39:48 【问题描述】:在某些时候我不得不重新启动服务器,因为交换内存显示它空间不足,我一直在使用 htop 查看活动,这表明在 mysql 中启动了一些进程并且它们持续了几个小时资源,就好像它们将保持开始,永远不会结束。
如果你能帮助我或告诉我我应该做些什么来改进这个过程,我将不胜感激。
目前我有一台安装了 mysql 5.7.1、apache 2.4.29 和 php7.3 的 ubuntu 服务器 18.04 的机器。
【问题讨论】:
附加信息请求。 RAM 大小、# 核心、MySQL 主机服务器上的任何 SSD 或 NVME 设备?在 pastebin.com 上发布并分享链接。从您的 SSH 登录根目录中,文本结果为:B) SHOW GLOBAL STATUS;正常运行时间最少 24 小时后 C) 显示全局变量; D) 显示完整的处理程序; F) 完整的 MySQLTuner 报告和可选的非常有用的信息,如果可用包括 - htop 或 top 用于大多数活动应用程序,ulimit -a 用于 Linux/Unix 限制列表,iostat -xm 5 3 用于按设备和核心/cpu 计数的 IOPS,为服务器工作负载调优分析提供建议。 请发布 SHOW GLOBAL STATUS LIKE '%thread%' 的 TEXT 结果;进行分析。 您好,根据建议,我在 7 天后得到以下建议:Delayed_insert_threads 0、Performance_schema_thread_classes_lost 0、Performance_schema_thread_instances_lost 0、Slow_launch_threads 0、Threads_cached 6、Threads_connected 2、Threads_connected 291、Threads_running 2。 Threads_connected 在 291 表示当用户完成他们的活动时连接没有被关闭。请通过连接结束发布用于“连接”、请求数据的 PHP 代码。在此 url 中查找 CLOSE,例如使用 mysqli 关闭。 ***.com/questions/51513822/… 查看配置文件、网络配置文件以获取联系信息和免费下载的实用程序脚本以帮助进行性能调整。 你好,$link = mysqli_connect("localhost", "root", "", "mybd"); ........ mysqli_close($link);.但是,在执行连接之前,我重新启动了mysql服务,保留了以下值:Threads_cached:1,Threads_connected:1,Threads_created:2,Threads_running 1;执行连接后显示这个Threads_cached 2, Threads_connected: 1, Threads_created: 3, Threads_running: 1. 其中Threads_cached 增加2 Threads_created 到3....断开连接后,不应该保持不变吗? 【参考方案1】:mysqld 是一个长时间运行的进程,所以 9h 是可以的。它在 htop 中显示的线程具有更有限的生命周期。
总的来说mysql的内存使用量看起来很低(数量是主进程的,所有线程都使用主进程的量)。
虽然这里使用了一些交换空间,但它并不过分。只有在内存用完后才会用完交换空间。在这里的 htop 输出中仍有大量可用内存。棕色是页面缓存,是操作系统的磁盘缓存,是未使用的内存。当内存仍然可用时交换空间使用是可以的,如果需要,操作系统会交换它。
简而言之,我在这里看不出任何问题。根据所提供的信息,这一切看起来都很正常,没有内存或 CPU 不足的直接危险。
【讨论】:
以上是关于Mysql 5.7 进程显示运行时间长,内存交换量大的主要内容,如果未能解决你的问题,请参考以下文章