服务器架构
uusharehust
这个作者很懒,什么都没留下…
展开
-
TCP_NODELAY 和 TCP_CORK
TCP_NODELAY 和 TCP_CORK,这两个选项都对网络连接的行为具有重要的作用。许多UNIX系统都实现了TCP_NODELAY选项,但是,TCP_CORK则是Linux系统所独有的 而且相对较新;它首先在内核版本2.4上得以实现。此外,其他UNIX系统版本也有功能类似的选项,值得注意的是,在某种由BSD派生的系统上的 TCP_NOPUSH选项其实就是TCP_CORK的一部分具体实现。...原创 2011-04-28 18:25:11 · 91 阅读 · 0 评论 -
FreeBSD下利用网卡的polling模式减少高数据量下的系统负载办法
FreeBSD在做IPsec-Gateway或作路由的情况下,当处理的数据包到达一定数量级(>15000包/每秒)时,系统的负载会很高,表现是输入任何命令响应很慢。用TOP显示CPU的状态时,大量时间被中断(interrupt),如下:CPU states: 0.0% user, 0.0% nice, 1.0% system, 98.8% interrupt, 0.2% idle...原创 2011-06-12 15:40:39 · 436 阅读 · 0 评论 -
sh pipeline
sh的保留字如下: ! { } case do done elif else esac fi for if then until while原来{ 和 }都是保留字,这样我真正明白它们前后必须有空...原创 2011-06-12 15:43:44 · 151 阅读 · 0 评论 -
服务器开发
* 任何情况下不能吞异常,一般使用logger,哪怕只能用e.print... 也是有补救措施的,而吞掉便无从知晓。 * 配置多资源时,各种公用的内容没有提取,导致修改时非常麻烦,推荐使用include方式 * 子资源要能使用父资源的指标值,也就是父子要有继承关系 * 国际化时不应该再另起一个模型,这样会使同一修改改动很多文件 * 任何会导致特殊字符危险的方案不能用,比如 - ...原创 2011-03-03 09:21:58 · 68 阅读 · 0 评论 -
leader-follower模型
解决的方案是使用Leader-Follower线程模型,它的基本思想是所有的线程被分配成两种角色: Leader和Follower,一般同时只有一个Leader线程,所有的Follower线程排队等待成为Leader线程,线程池启动时自动产生一个Leader负责等待网络IO事件,当有一个事件产生时,Leader线程首先通知一个Follower线程,并将其提拔为新的Leader,然后自己去处理这...原创 2011-03-04 08:53:33 · 1058 阅读 · 0 评论 -
阅读HAProxy代码学习linux下的splice函数用法
自从linux 2.6.9后linux提供了驱动级的系统函数splice。它的作用是在文件描述符直接转发数据,直接对内核内存块做引用标记而不需要借用用户内存复制数据。这样就大大节省了分配内存,再read和write的性能消耗。 自己用了一下这个函数发现总是返回EINVAL,于是去阅读HAProxy的源代码,总算弄明白了一些使用条件,理解了这个函数的设计思路。 可以说sp...原创 2011-03-08 09:13:50 · 144 阅读 · 0 评论 -
Linux下提高性能的系统调用sendfile,splice和tee
熟悉Linux内核2.4版本的也许知道:在2.4版的内核中内嵌了一个叫做khttpd的静态网页服务器。当时,可能是效率的因素致使她被添加了进来,至于为什么最新的2.6版内核去掉了这个服务器,我考虑可能是因为Linux内核“只提供机制,熟悉Linux内核2.4版本的也许知道:在2.4版的内核中内嵌了一个叫做khttpd的静态网页服务器。当时,可能是效率的因素致使她被添加了进来,至于为什么最新的2...原创 2011-03-08 09:19:47 · 200 阅读 · 0 评论 -
套接字选项列表(一个查询的代码和解释列表)
getsockopt和setsockopt #include int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen); int setsockopt(int sockfd, int level, int optname, void *optval, socklen_t *o...原创 2011-03-23 15:44:21 · 77 阅读 · 0 评论 -
tfs源码分析(1)
TFS(Taobao FileSystem)是一个高可扩展、高可用、高性能、面向互联网服务的分布式文件系统,主要针对海量的非结构化数据,它构筑在普通的Linux机器集群上,可为外部提供高可靠和高并发的存储访问。TFS为淘宝提供海量小文件存储,通常文件大小不超过1M,满足了淘宝对小文件存储的需求,被广泛地应用在淘宝各项应用中。它采用了HA架构和平滑扩容,保证了整个文件系统的可用性和扩展性。同...原创 2011-04-01 20:52:16 · 162 阅读 · 0 评论