优化 my.cnf 100+ wp 数据库和低 RAM 使用率



我有VDS:6个核心和10GB RAM和150 + WordPress网站。 所有这些都基于CentOS 7,ISPManager Web Panel和Docker容器中的MariaDB 10.3。 站点负载不高,但每周 3 次容器关闭 becose RAM 很低。(OOM杀手杀死它( 您可以推荐哪些 .my.cnf 参数来实现最佳和低 RAM 使用率? 我怎样才能阻止OOM Killer制造的这种周期性的容器死亡? 也许 CentOS7 的一些系统调整? Tnx,对不起,错误。

可以减少许多设置以提供帮助。innodb_buffer_pool_size通常是最大的,因此首先要调整。

10GB 内存 -- 里面有什么? 一个 MariaDB 实例(具有 150+ 个数据库(? 加上WP应用程序代码?

稍微降低table_open_cache

请提供此处讨论的GLOBAL STATUSVARIABLEs:http://mysql.rjweb.org/doc.php/mysql_analysis#tuning

swappiness = 1可能会有所帮助。

(来自评论(

MySQL/MariaDB可能永远不需要100个内核;3个内核可能没问题。

100 个连接可能永远不会同时处于活动状态;max_connections是可配置的限制,151 是默认值(在某些版本中(。

WordPress在其表上有一些低效的索引;这些额外的CPU和/或I/O时间花费。 这可以通过此插件进行改进:WP索引改进

我认为您已经找到了唯一在速度和数据丢失之间进行权衡的可调(innodb_flush_log_at_trx_commit(。 即使在那里,损失的可能性也只是在崩溃期间。

你对swappiness的设置是什么? 如果它是"0",或者如果没有分配交换空间,则系统配置为在 RAM 过度提交时终止进程而不是崩溃。 值"1"表示延迟交换,直到您真正必须这样做。 我认为当数据库是系统上的主要进程之一时,"1"是最佳的。

如果现在没有交换空间,请分配一些交换空间。 使用tophtop监视 RAM、CPU、I/O 和交换使用情况。 我发现"正常"使用的 RAM 和交换比我无法解释的要多。

如果 CPU 使用率(或"平均负载"(很高,我建议捕获慢日志。 让我们看一下,看看哪些查询消耗的时间最多。

常见的 CPU 浪费者(和/或 I/O 浪费者(是对查询将返回的"总行数"的无端计算。 慢日志会指出哪些表很大,并在此类计算上浪费时间。 然后考虑你是否可以没有价值。 (请注意,搜索引擎不会说"...在[确切地]987,654,321场比赛中"。 这是有性能原因的!

最新更新