ubuntu 16.04上调整使用Innodb存储引擎的MySQL性能

最近 WordPress上使用的 WP Statistics打开的时候,整个网站都几乎处于卡顿的状态,无法正常访问。

使用 top命令发现主要是 mysqldCPU占用很高。于是使用 mytop分析当前执行的查询语句,发现主要是在查询 wp_statistics_visitor表导致的问题(我设置了不要删除浏览记录,因此会导致表内数据偏多)。

大致估计是由于分配给 MySQL的内存不足导致频繁的磁盘交换引起的性能问题。

解决方法比较简单,就是增大 MySQL可以使用的内存即可。

首先确认服务器上的 MySQL使用的存储引擎是否为 Innodb(缺省情况下已经是 Innodb了):

如果确定是 Innodb,则查询 Innodb被限制使用的内存大小,如下:

默认情况下是 128MB,鉴于内存已经不够了,我们扩大到 256MB,这部分内存原则上越大越好,越大与磁盘的交互越少,性能越高。

如下命令调整 Innodb的内存:

[mysqld]部分增加(如果存在则修改):

然后重启 MySQL服务:

上面的调整之后,性能提升还是比较明显的。

参考链接


使用chrome.runtime.sendMessage向内容脚本(ContentScript)发送消息无效

参考Chrome插件(Extensions)开发攻略调试 Chrome扩展的时候,发现从内容脚本( ContentScript)向后台脚本( BackgroundScript)使用 chrome.runtime.sendMessage发送消息的时候,后台脚本( BackgroundScript)可以接收到来自内容脚本( ContentScript)的消息。

但是从后台脚本( BackgroundScript)向内容脚本( ContentScript)发送消息的时候,内容脚本( ContentScript)无法接收到消息。

原来的发送命令函数如下:

根据 Google了解到,需要指定 tab发送,主要原因是当多个页面同时加载了内容脚本( ContentScript)的情况下,直接发送消息,会导致无法区分到底是发送给哪个页面的。
正确的发送消息函数如下:

参考链接


chrome.runtime.sendMessage not working in Chrome Extension