摘要:linux常用查看tcp状态工具netstat和ss,这两个工具查看时都有1个Recv-Q和Send-Q解释如下:对应处于Listen状态的套接字:Recv-Q表示已建立连接队列中连接个数(等待accept), Send-Q标识backlog大小(ubuntu12.04上测试时发现Recv-Q一般最... 阅读全文
posted @ 2014-10-11 14:05 good90 阅读 (93) 评论 (0) 编辑
摘要:shutdown 和 close关闭tcp连接的介绍网上有很多,主要区别如下:1、调用close后,将中止通信、删除套接字、丢弃数据。但是,注意喽,但是,如果有多个进程共享一个套接字,close每被调用一次,计数减1,直到计数为0时,也就是所用进程都调用了close,套接字将被释放2、close 关... 阅读全文
posted @ 2014-10-09 08:54 good90 阅读 (156) 评论 (0) 编辑
摘要:最近讨论到net.ipv4.tcp_timestamps这个系统配置是否能够开启,RFC文档上说道该值必须为单调递增,否则接受到的包可能会被丢掉于是查看下tcp协议栈中是根据什么来生成这个timestamps的,是否会受时间改变而改变?tcp协议栈代码如下:static unsigned tcp_s... 阅读全文
posted @ 2014-08-13 20:29 good90 阅读 (4809) 评论 (0) 编辑
摘要:以下来结论自tcpcopy & gryphon讨论群经过试验测试得出,不保证肯定正确。net.ipv4.tcp_tw_recyclenet.ipv4.tcp_tw_reusenet.ipv4.tcp_timestamps1) recycle和reuse参数必须在客户端和服务端都开启timestamp... 阅读全文
posted @ 2014-08-11 18:51 good90 阅读 (183) 评论 (0) 编辑
摘要:两台机器:172.16.91.101 172.16.91.107在91.101上增加虚拟ip,92网段的ifconfig eth0:1 172.16.92.2 netmask 255.255.255.0 up由于不再同一个网段需要添加路由(与vip交互的机器上):增加路由:route add -ne... 阅读全文
posted @ 2014-06-27 09:55 good90 阅读 (116) 评论 (0) 编辑
摘要:客户端(>5w)异步connect连接到server端,server端listen backlog设置为1024,发现存在部分客户端建立连接后,收到服务端的rst包。先看下tcp监听套接字维护的两个队列(来自Unix网络编程)测试模拟抓包如下:解释:异步connect过快,导致server端list... 阅读全文
posted @ 2014-06-25 18:58 good90 阅读 (251) 评论 (0) 编辑
摘要:之前一直对tcp keepalive选项理解有误,以为通过setsockopt函数设置SO_KEEPALIVE和相关参数后该socket则使用设置的keepalive相关参数否则使用系统默认的:keepalive配置(如下)root@xxx-KVM:/# sysctl -a | grep keepn... 阅读全文
posted @ 2014-06-24 20:28 good90 阅读 (1095) 评论 (0) 编辑
摘要:正则匹配:grep -E "[a-z]+"只输出匹配到的文本:echo this is a line. | grep -o -E "[a-z]+\."统计匹配到的行数:grep -c匹配之外的行:grep -v多级目录中递归搜索:grep "text" . -R -n忽略大小写:grep -i匹配多个样式:grep -e "this" -e "line"grep中包括货排除文件:grep "main()" . -r --include *.{c,cpp}grep " 阅读全文
posted @ 2014-03-09 10:40 good90 阅读 (504) 评论 (0) 编辑
摘要:1 介绍Protocol buffers are a flexible, efficient, automated mechanism for serializing structured data – think XML, but smaller, faster, and simpler.2 Example:2.1 定义proto文件addrbook.protomessage Person { required string name = 1; required int32 id = 2; optional string email = 3; enum PhoneType { MOBILE 阅读全文
posted @ 2014-02-27 19:21 good90 阅读 (559) 评论 (0) 编辑
摘要:启动时:(redis为空) 插入数据量都为100W(100W个key或者list中100W个值,或者1000个key,每个key中1000个值) String Key value # Memory used_memory:121763808 used_memory_human:116.12M used_memory_rss:124956672 used_memory_peak:121762584 used_memory_peak_human:116.12M used_memory_lua:31744 mem_fragmentation_ratio:1.03 mem_allocator:jema 阅读全文
posted @ 2013-12-22 23:24 good90 阅读 (27725) 评论 (0) 编辑