扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:论坛整理 来源:ZDNet网络安全 2007年12月19日
关键字: telnet命令 opentelnet linux telnet telnet入侵 telnet telnet端口
下面介绍的优化思路虽然应用于BBS,但是也适用于其他应用系统。
1: 磁盘IO 优化磁盘IO 优化可以说是服务器优化中最重要的一环,除了极少数的纯计算性应用,几乎所有的重载服务器最后都是卡在磁盘IO 瓶颈上面。
a) 尽量使用shm 等IPC 手段而不是文件多进程和多线程相比,最大的麻烦是不同执行环境交换信息不方便,因此很多程序员选择了使用文件交换信息,例如最早的BBS 设计中,用户的帐户信息是存在于文件中的,进程从文件中读出内容,有修改后就写入文件。改进后的设计是将账号信息文件完整读入共享内存,所有修改都写入共享内存,然后由外部进程定时往磁盘上面同步。甚至flock 这样看起来不会造成太多IO 的同步操作都应该尽量避免,原因是flock 需要先open 文件,而open 文件需要找到i 节点,因此会占用文件系统的inode 缓存空间,可能造成其他IO 操作的性能降低。在很多情况下面需要的只是一个跨进程的mutex,可以使用0/1 信号灯来实现。
b) 使用应用层缓存。很显然,操作系统的缓存会受到很多因素的干扰,对于一些确定会经常访问的内容,例如版面的最新几片文章和最新列表,如果放入shm 中缓冲,性能会有大幅度提升。
c) 尽量减少关键IO 数据结构的大小 Bbs 文章列表的索引文件是由定长数据结构构成的,在这个数据结构中为了将来扩展方便,留下了很多保留域,造成了很多不必要的IO,删除不必要的域之后,数据结构变小了一半,减少了很多IO。很多时候,扩展性和性能其实是对立的,如果很需要性能,那么损失一定的扩展性也是不错的选择。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。