科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道重负载Telnet BBS系统优化和维护(3)

重负载Telnet BBS系统优化和维护(3)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

我们在维护大型bbs 站点的过程中,积累了一些优化和维护如BBS 这样高并发进程服务器的经验,考虑到1:1 进程模型服务仍然有很广泛的应用,在这里写出和读者共享。

作者:论坛整理 来源: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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章