首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >太多的MySQL过程

太多的MySQL过程
EN

Server Fault用户
提问于 2010-08-14 16:23:33
回答 3查看 46.9K关注 0票数 15

在一个朋友告诉我他的MySQL占用了太多内存后,我正试图帮助他的服务器.事实证明,它不仅使用了大量内存,而且运行的mysql进程太多了!

以下是ps auxww|grep mysqlhttp://pastebin.com/kYrHLXVW的结果

因此,基本上有13个MySQL进程,只有一个客户端根据mysqladmin连接。

过了一段时间,这些进程中的每一个消耗了多达50 it的内存,因此最终消耗了大量内存.

我使用my-medium.cnf配置模板直接来自/usr/share/mysql.我重新启动了mysql服务器,但一旦启动,13个进程就返回了.我不知道会有什么问题..。任何想法/建议都会非常感谢!

EN

回答 3

Server Fault用户

回答已采纳

发布于 2010-08-15 04:31:17

代码语言:javascript
复制
mysql     9804  0.0  0.6 58556 22960 pts/0   S    12:43   0:00  \_ /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/myhostname.pid --skip-external-locking --port=3306 --socket=/var/lib/mysql/mysql.sock
mysql     9807  0.0  0.6 58556 22960 pts/0   S    12:43   0:00      \_ /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/myhostname.pid --skip-external-locking --port=3306 --socket=/var/lib/mysql/mysql.sock
mysql     9808  0.0  0.6 58556 22960 pts/0   S    12:43   0:00          \_ /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/myhostname.pid --skip-external-locking --port=3306 --socket=/var/lib/mysql/mysql.sock
mysql     9809  0.0  0.6 58556 22960 pts/0   S    12:43   0:00          \_ /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/myhostname.pid --skip-external-locking --port=3306 --socket=/var/lib/mysql/mysql.sock
mysql     9810  0.0  0.6 58556 22960 pts/0   S    12:43   0:00          \_ /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/myhostname.pid --skip-external-locking --port=3306 --socket=/var/lib/mysql/mysql.sock
[ ... repeated output truncated ... ]

他们没有使用13 *50 13的内存--他们大概使用的是大约70 13的内存。请记住,linux将在进程之间共享未经修改的内存页,因此如果您的服务器刚刚启动,那么大部分内存都将被共享。事实上,由于mysql是线程的,因此每个线程分配的内存可能会更少。如果您关心每个mysql进程的内存使用情况,请查看/etc/mysql/my.cnf,并查看mysqld部分中的变量:

  • key_buffers
  • thread_stack
  • thread_cache_size
  • max_connections
  • query_cache_limit
  • query_cache_size

但是,请注意,这些变量都是非常强大的可调变量,您可以很容易地将mysql性能设置得太低,或者将它们设置得太高而浪费在其他地方使用的内存。

要想找到优化mysql实例的最佳方法,一个简单的起点是运行您的应用程序,然后运行mysqltune脚本,它将分析您的性能计数器,然后对您应该在服务器配置中更改的内容提出建议。

票数 20
EN

Server Fault用户

发布于 2010-08-14 16:40:25

Linux将线程显示为单独的进程。MySQL每个连接启动一个线程。使用ps运行f。例如,ps auxfw将显示线程是如何关联的。

到MySQL有多少个连接?在show full processlist;客户机中运行MySQL。从你的表现来看,我甚至不确定有什么不对劲。

票数 3
EN

Server Fault用户

发布于 2010-08-16 11:40:19

您可能想尝试一下我发现非常有用的MySQLTuner,它会向您建议您应该尝试调整哪些配置变量。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/170541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档