admin 的头像

让pre标签自动换行,兼容各主流浏览器

内容标签: 
pre{
	white-space: pre-wrap;       /* css-3 */
	white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */
	white-space: -pre-wrap;      /* Opera 4-6 */
	white-space: -o-pre-wrap;    /* Opera 7 */
	*word-break: break-all;      /* Internet Explorer 7.0+ */
	*word-wrap: break-word;      /* Internet Explorer 7.0+ */
	_word-break: break-all;      /* Internet Explorer 6.0- */
	_word-wrap: break-word;      /* Internet Explorer 6.0- */
}
admin 的头像

利用memcache缓存帖子浏览数

内容标签: 

流量较大的论坛,更新帖子浏览数是个头疼的问题,常见的方法是将浏览数写如文件,然后通过cron读取文件然后更新到数据库,也有将浏览数放到memcache里,这里介绍一种利用memcache实现浏览数的方法。

目标:

1、帖子浏览数实时更新

2、减少对数据库的压力

2、memcache挂掉或者其他原因造成帖子浏览数没有更新到数据库的损失减少到最小

原理:

根据tid做键存储帖子浏览数信息, key(tid) => array('浏览数', '最后一次更新到数据库的时间')

每次浏览帖子页时,从memcache里取出帖子对应的浏览数信息,判断最后一次更新数据库的时间是否超过1分钟(根据自己的情况可设置,越小,memcache挂掉带来的损失越小),如果超过则更新下数据库,同时更新这个帖子对应的浏览数最后一次更新数据库的时间。

如果memcache挂掉或者帖子之后都没人浏览,造成数据库未更新的损失最多只是1分钟内的浏览数

admin 的头像

缓存目录下文件过多导致WEB负载异常

内容标签: 

场景:

博客服务

博文等生成静态缓存,提升游客访问速度

缓存文件存在NAS上

缓存文件分布在100个目录里,访问博文才会生成缓存,由于没有过期机制,随着时间的推移,每个目录里的缓存文件会越来越多

web服务器有10多台,缓存目录挂载在NAS上

问题分析:

最近发现各个博客服务器的负载经常飙升到接近100,但是cpu负载,io负载均正常,nginx和php进程很多等待状态(D),说明php有堵塞,初步判断可能是连接memcache或者mysql过长,telnet 发现是正常的,于是怀疑读写缓存静态页过慢,打开缓存目录,发现每个目录下的缓存文件有3万多,这时的读写性能是很差(建议目录层数不要超过5级,叶子节点文件数不要超过1000),从而造成nginx和php读取缓存文件过慢,系统压力飙升,用户访问页面很慢。而且有的目录已经达到最高值,这样缓存文件都写不进去。

问题解决:

将缓存目录结构调整为4级,问题得以解决。

 

admin 的头像

linux下搭建邮件服务器(Postfix+Dovecot)

SMTP服务器的构建 ( Postfix )

yum -y install cyrus-sasl-plain 

yum -y install cyrus-sasl-sql

POP / IMAP 服务器的构建( Dovecot )

 

POSTFIX 负责发送邮件,DOVECOT负责接收邮件。 

一、Postfix的一些管理命令

页面

订阅一起猪跑 - 17drupal RSS