修改网卡缓冲以提高吞吐量

在单机并发上万的时候,发现 sendto 函数比较容易出现返回错误 EAGAIN,对应的错误消息为 Resource temporarily unavailable,这种情况下认为是应用层写入过快,导致网卡缓冲满了 使用这个命令来查看缓冲区现有大小 # ethtool -g eth1 Ring parameters for eth1: Pre-set maximums: RX: 4096 RX Mini: 0 RX Jumb……

阅读全文

手工编译 apache 的一些琐碎

压测的时候用到 apache ab,但是 ab 本身支持的并发最大 1000,过了报错,修改源码 support/ab.c 把这行注释掉 apr_err("apr_socket_recv", status); 但是编译的时候各种依赖,手工解决好烦,首先出来 undefined reference to apr 系列的函数,查到这里,http://hi.baidu.com/yang171892…,说了 col……

阅读全文

分支预测以及 gcc 的 __builtin_expect

在阅读代码的时候,发现有类似这种写法: bvl = bvec_alloc(gfp_mask, nr_iovecs, &idx); if (unlikely(!bvl)) { mempool_free(bio, bio_pool); bio = NULL; goto out; } 注意到第二行,if 的判断中,加入了一个 unlikely,这个东西是一个 CPU 指令的优化,用于分支预判,关于分支预判,可以看这个 s……

阅读全文

骥随春来

又到了一年更替,冬去春来,辞旧迎新的时分。岁月不息,草木枯荣,看着那些花儿仿佛和小时候没什么不同,桃花依旧笑着春风,只是人的心态,却早已不复以往了。 我此刻坐在键盘前,想着整理整理今年走过的路。从信工楼做着毕设的实验室出来,去到大梅沙,参加公司的毕业生封闭培训,短短一周的时间下来,晨练,上课,午休……

阅读全文