在一个朋友告诉我他的MySQL占用了太多内存后,我正试图帮助他的服务器.事实证明,它不仅使用了大量内存,而且运行的mysql进程太多了!
以下是ps auxww|grep mysql:http://pastebin.com/kYrHLXVW的结果
因此,基本上有13个MySQL进程,只有一个客户端根据mysqladmin连接。
过了一段时间,这些进程中的每一个消耗了多达50 it的内存,因此最终消耗了大量内存.
我使用my-medium.cnf配置模板直接来自/usr/share/mysql.我重新启动了mysql服务器,但一旦启动,13个进程就返回了.我不知道会有什么问题..。任何想法/建议都会非常感谢!
发布于 2010-08-15 04:31:17
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_buffersthread_stackthread_cache_sizemax_connectionsquery_cache_limitquery_cache_size但是,请注意,这些变量都是非常强大的可调变量,您可以很容易地将mysql性能设置得太低,或者将它们设置得太高而浪费在其他地方使用的内存。
要想找到优化mysql实例的最佳方法,一个简单的起点是运行您的应用程序,然后运行mysqltune脚本,它将分析您的性能计数器,然后对您应该在服务器配置中更改的内容提出建议。
发布于 2010-08-14 16:40:25
Linux将线程显示为单独的进程。MySQL每个连接启动一个线程。使用ps运行f。例如,ps auxfw将显示线程是如何关联的。
到MySQL有多少个连接?在show full processlist;客户机中运行MySQL。从你的表现来看,我甚至不确定有什么不对劲。
发布于 2010-08-16 11:40:19
您可能想尝试一下我发现非常有用的MySQLTuner,它会向您建议您应该尝试调整哪些配置变量。
https://serverfault.com/questions/170541
复制相似问题