在数据库/服务器pipe理方面的newb总数,但目前正在运行一个大型数据库:
服务器经常给出mysql-慢速错误,变得无法响应或使用> 200%的服务器资源。 (主要是CPU,似乎源于MySQLd进程)。
我正在Linode机器LAMP堆栈上运行:
4 GB RAM 4 CPU Cores 96 GB SSD Storage 19.72 GB swap
不知道从哪里开始了解这些types的问题。 如果有人能把我推向正确的方向来学习大型数据库的常见问题,甚至了解MySQLd如何使用CPU内存,以及如何更好地优化这些内容,那么这将是非常好的 – 正如我认为这样低的stream量,它必须是一个configuration问题或坏脚本。
我不希望任何人解决这个问题,我甚至不知道从哪里开始。
我首先看看你的应用程序代码和你正在生成的查询。 使用“SHOW PROCESSLIST”将显示你的mysql进程和状态。 如果您看到使用全表扫描,文件sorting或copy-to-tmp的查询,则需要使用“EXPLAIN [sql语句] ..”并查看可以优化的位置。
由于您提供的信息有限,您只能猜测是由于未索引的查询导致的I / O瓶颈,或者查询太大以至于超出了分配的内存量。 你不应该使用交换的MySQL,至less你应该有尽可能多的内存作为你的分贝需要留在内存中尽可能多。
对于mysql调优你可以从http://mysqltuner.com/开始(你可以在这里发布输出)。
对于wordpress,我build议使用像W3总caching一样的caching插件与memcached后端,并启用所有的caching,你可以。 对象caching应该有助于mysql负载。
用mysql删除很多数据运行mysqlcheck -Ao也可能有所帮助。 另外,如果mysql查询遇到locking问题,将一些表移动到InnoDB可能会有所帮助,但在你的情况下似乎没有这种方式。