这是交易,我运行一个可观的网站,每天晚上做每日备份。 自从我搬到我的新服务器后,我注意到做完备份后,我的平均负载跳跃到24+(我有24个核心),而通常是5-6。 看来MySQL可能正在努力工作,并发生表损坏(总碎片表:26)。 另外,我相信这是导致内存转储,因为(26099120k使用,6856320k免费),最多40%已被分配与TOP中列出的运行进程。
我相信有几个表被损坏,并导致过载和内存泄漏。 数据库大约有4GB(MyISAM和InnoDB),我使用mysqldump来转储数据库。 我应该在备份时修复表并closuresWeb服务器吗?
操作系统:Centos Mysql版本:5.0.77(我需要升级它)
碎片不是腐败。
通过一切手段,修复碎片( optimize table table_name; – 被警告,这将在操作过程中locking表) – 这可能是在备份没有运行时以及在备份期间加载的主要原因。
我会认真地推荐在你的Web服务器上的一个单独的系统上运行数据库,而不是只是逐步获得运行整个堆栈的更大规模的服务器。 应该更容易找出应用程序中存在瓶颈的位置,并允许您更具体地分配资源(而不是强制MySQL和Web服务器争用相同的RAM)。