这次 @emfox 不在, 委托我帮忙记录一下情况, 于是乎我也流水账一下.
今天下雨, 场地也换到了大浪的新办公室, 只是那边还在整修, 所以楼梯没灯啦, 楼梯上临时停靠了个脚手架啦之类的场景让我犹豫了很久.
估计也是下雨的缘故, 人来的比较晚, 今天来的人有 葛豪武, 俞圣雨, Li Fanxi, 海洋之心, 周宁, sunfmin, mark, xufan6 和我, 一共 9 人.
这次辛苦海洋之心了, 讲了两个小时. 先从他的私人 wiki 知识库开始说起, 他选择的是dokuwiki, 一个用 php 实现的基于文件平文本存储的 wiki应用. 他已经用了 8 年了, 他说大概有 20 万字的内容, 是他自己宝贵的财富.
接着开始介绍运维的方方面面: IDC 的选择, 机房的选址和要求, 如何保护主服务器, 如何做 cdn, 为什么以及如何做监控, 如何做单机性能优化, 网络优化等等.
内容很多, 我也不能全部记下, 不过写一些关键信息提供给大家参考和搜索:
监 控方面, nagios 适合应用, 服务, 服务器状态监控以及报警. cacti 适合收集基础数据以及绘图. 而 zabbix 据说可以综合上面两点, 一次搞定. 而且在海洋之心的演示中还发现, 比起 snmp, zabbix 可以很方便的获取自定义的应用监控数据.
cdn 方面, squid 性能很强, 但是不具有多核处理的能力, 所以可能并不适合现在的服务器. varnish 功能强大, 但是在正则匹配上效率并不如意, 就是如果你希望能在 varnish 里面做一些”智能”, 会有点性能上的问题. apache traffic server, 也是个 cache proxy server, 但是好像是有啥缺点, 我给忘了. 另外 nginx 也可以做 proxy server, 加上 cache 模块之后也可以作为 cache proxy server用, 但是据海洋说在请求密集的时候也会发现正则匹配效率不高. 最后还有一个万能的 haproxy, 海洋表示不如用 haproxy 做正则匹配, 请求分发, 然后用 nginx 或者其他的 cache server 做 cache, 算是个比较灵活的方案.
性能优化方面, 比较依赖微调和经验. 海洋给看了很多符合他们需求的设定. 比如主服务器 web server 的 timeout 设定成 15s 就能避免大多数情况下的掉线(他们的业务是在线聊天…吧?). 做了 cdn 之后 15s 就变的容易掉线, 但是180s 又会占用太多资源, 导致服务器反应变慢. 最后经过不停的调整和测试发现 35s 是一个适合的值等等
等海洋全部扯完就快要10点了, 那么我的 git web hosting 的话题就等到没人讲的时候再上吧啊哈哈.
流水完毕~请期待下一次 Hacking Thursday 活动吧!
(本次活动由 @ruohanc 总结)