mysql 负载过重

mysql 负载过重

我有一台专用服务器,配置非常好,比如 16 GB 的 RAM 等,但我面临着来自 mysql 的沉重负载,我正在运行一个音乐网站,然而只有一个数据库在运行,只有 5-10 个页面在运行。当我点击 whm 显示进程列表时,它只显示 2-3 个进程

但是 whm load 总是小于 1,但是当我点击 whm load 时,它显示 mysql 占用了 20% 的 CPU,过了一段时间后,它开始说无法连接到 mysql。mysql 服务器已经消失了

  1691 (Trace) (Kill)    mysql   0     19.2     2.7    /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --log-   error=/var/lib/mysql/server.xyz.com.err --pid-file=/var/lib/mysql/server.xyz.com.pid 

我已经测试过静态页面,它们的速度非常快,但所有使用 mysql 的动态页面的速度都非常慢,需要几年才能打开。

my.conf 文件是

 [mysqld]
 key_buffer = 1536M
 max_allowed_packet = 1M
 max_connections = 250
 max_user_connections = 15
 wait_timeout=40
 connect_timeout=10
 table_cache = 512
 sort_buffer_size = 2M
 read_buffer_size = 2M
 read_rnd_buffer_size = 8M
 myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
server-id       = 14
old-passwords = 1

 [mysqldump]
 quick
 max_allowed_packet = 16M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer = 256M
 sort_buffer_size = 256M
 read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

我检查了日志错误文件,它什么都没说。我将最大连接数也增加到了 1000,但问题仍然存在。如果我断开那个数据库,只需更改数据库的名称,我就可以发现在半小时内服务器和 mysql 的负载就会下降到可以忽略不计。我已经测试了所有内容,如果有一些查询会导致服务器负载过重,您能否列出哪种类型的查询会导致服务器负载过重,那么对于 5-10 页来说,它永远不会造成那么重的负载。我见过有 500 个网站的服务器,但运行良好。

答案1

您的数据库有多大?您使用哪种存储引擎?主要有两种:myIsam(默认)和InnoDB。myIsam 不能很好地处理并发写入,并且在插入/更新行时可能会出现延迟。

如果您使用 myIsam,您也可以尝试 myisamchk,如下所述:http://dev.mysql.com/doc/refman/5.5/en/myisamchk.html

您可能希望在运行 OPTIMIZE 语句之前使用 -d 选项来收集有关表的信息。

数据库文件也可能托管在网络路径上,或托管在虚假驱动器上。如果是后一种情况,请检查系统日志中是否存在驱动器错误。

答案2

在这种情况下,如果对数据库有两个并发访问(选择和更新),则可能会出现死锁。

在这种情况下,我强烈建议使用 innoDB 引擎。您必须设置一个 innoDB 文件存储(在 my.cnf 中,参见“innodb_data_file_path”),然后使用

ALTER TABLE 'YOURTABLENAME' ENGINE=InnoDB;

请注意,innoDB 比 MyIsam 占用更多的空间。1GB 的表可能会占用 2GB 的 InnoDB 数据空间。

InnoDB 在读取请求时速度较慢,但​​它可以完美处理并发更新/选择。

编辑:如果您的 innoDB 中已经有“innodb_data_file_path”行,则更改它可能会破坏您的 innoDB 数据空间。如果您的任何表都没有使用该存储,则可以从头开始创建新文件,否则,您可能不需要更新此行,而依赖于自动扩展,或者您可以添加文件,如下所示:

innodb_data_file_path=ibdata1:10M;ibdata2:2000M:autoextend

这将添加一个初始文件大小为 2GB 的文件,该文件可能会增大)

相关内容