为Ubuntu Linux创建Swap分区

前不久在Amazon购买了一台EC2服务器运行WordPress,配置为双核CPU,内存1G。运行了一段时间后,发现mysql经常崩溃。检查mysql的error.log发现,崩溃前最后一条日志是:

160328 16:50:26 InnoDB: Completed initialization of buffer pool
160328 16:50:26 InnoDB: Fatal error: cannot allocate memory for the buffer pool
160328 16:50:26 [ERROR] Plugin 'InnoDB' init function returned error.
160328 16:50:26 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
160328 16:50:26 [ERROR] Unknown/unsupported storage engine: InnoDB
160328 16:50:26 [ERROR] Aborting

因为网站访问量比较大,推测可能是系统内存不足导致的。使用下面的命令查看了一下,发现apache已经使用了60%多的内存(总内存为1G)。

$ ps -ylC apache2 | awk '{x += $8;y += 1} END {print "Total (MB): "x/1024; print "Average (MB): "x/((y-1)*1024)}'

Total (MB): 622.996
Average (MB): 14.8332

apache、mysql都是吃内存的大户,1G屋里内存显然不够用了。使用swapon查看交换文件状态:

$ sudo swapon -s

Filename                Type        Size    Used    Priority

OMG,竟然没有。。。那就创建一个。

先创建一个4G的文件:

$ sudo dd if=/dev/zero of=/swapfile bs=1M count=4000
4000+0 records in
4000+0 records out
4194304000 bytes (4.2 GB) copied, 5.12 s, 1203 MB/s

然后把它转变为swap文件: 继续阅读为Ubuntu Linux创建Swap分区

阻止WordPress自动替换文章中的中划线(连字符)、引号

使用WordPress时,经常会发现文章发布后某些字符会被自动替换,比如输入英文引号””被替换为中文引号“”,两个中划线–被替换为一个-。通常这不会有问题,但是编写技术文档时,很容易引起错误。比如,我写的是:

grep --color -r -i -H "apache2" /etc

发布后被自动替换为:

grep -color -r -i -H “apache2” /etc

这显然会导致命令执行出错。

这里有一篇文章,提到了如何通过修改WordPress文件来避免这种自动修改:https://markjaquith.wordpress.com/2012/06/25/how-wordpress-handles-dashes-and-hyphens/

这个方法应该可以行,但是每次升级WordPress后可能都要改一次,很麻烦。

继续阅读阻止WordPress自动替换文章中的中划线(连字符)、引号

不修改代码解决WordPress建立的网站在浏览器中加载慢的问题

使用WordPress建好网站后,在浏览器中测试时发现访问速度很慢,尤其是手机浏览器,经常等待几十秒钟后才开始显示页面内容,等待期间页面一片空白。研究后发现是因为WordPress生成的页面默认会引用来自fonts.googleapis.com的一个stylesheet文件,如图所示。 继续阅读…