- 博客(7)
- 资源 (21)
- 收藏
- 关注
原创 tcp_tw_recycle检查tcp_timestamps的内核代码
注意:本文档中的内核代码的版本:linux-4.0.5两者的关系net.ipv4.tcp_tw_recycle是与net.ipv4.tcp_timestamps是密切相关的,而net.ipv4.tcp_timestamps默认是开启的,当tcp_tw_recycle和tcp_timestamps同时打开时会激活TCP的一种隐藏属性:缓存连接的时间戳。60秒内,同一源IP的后续请求的时间戳小于缓存中的
2015-07-15 02:08:58 2048
原创 GNU Linux高并发性能优化方案
GNU Linux高并发性能优化方案在GNU Linux系统中,影响连接个数的因素主是由于单个进程能够打开的最大文件数、端口数量决定的;而一个基于tcp的服务器的并发,除了上文说过的两个因素外,还有因为主要的tcp连接的很多属性,而问题最大的则是连接断开后的连接会在TIME_WAIT状态一直存在60秒,这就造成了在大量高并发的情况下当连接为此TIME_WAIT状态时没有可用连接。1、修改端口号范围:
2015-07-15 01:58:34 2225
原创 关于Reactor和Proactor的区别
系统I/O 可分为阻塞型, 非阻塞同步型以及非阻塞异步型。 阻塞型I/O意味着控制权只到调用操作结束了才会回到调用者手里。非阻塞同步是会立即返回控制权给调用者的。调用者不需要等等,它从调用的函数获取两种结果:要么此次调用成功进行了;要么系统返回错误标识告诉调用者当前资源不可用,你再等等或者再试度看吧。比如read()操作, 如果当前socket无数据可读,则立即返回EWOULBLO
2015-07-12 21:20:49 3639
原创 GNU Linux中的SO_RCVLOWAT和SO_SNDLOWAT说明
SO_RCVLOWAT SO_SNDLOWAT每个套接口都有一个接收低潮限度和一个发送低潮限度。接收低潮限度:对于TCP套接口而言,接收缓冲区中的数据必须达到规定数量,内核才通知进程“可读”。比如触发select或者epoll,返回“套接口可读”。发送低潮限度:对于TCP套接口而言,和接收低潮限度一个道理。 理解接收低潮限度:如果应用程序没有调用recv()去读取socke
2015-07-12 20:43:07 7004 2
原创 Nginx事件处理中的connection和read、write事件的关联
Nginx事件处理中的connection和read、write事件的关联:在Nginx代码中经常看到rev = c->read;ngx_handle_read_event(rev, 0);这样的操作,那么rev是什么呢?在ngx_epoll_add_event中的ngx_connection_t *c = ev->data;中的ev->data又是什么内容呢?其实这一
2015-07-08 19:37:55 2925
原创 vim如何跳转到函数定义处及找到在何处被调用-cscope使用
在vim的世界中,当查看源代码的时候,使用ctags工具可以实现函数方法的跳转,若要在源码中找到对应方法在哪些地方进行了调用或在哪儿定义的,只有使用grep命令进行查找得到,这样需要另起一个终端或在同一个终端中使用:!grep fucname ./* -rn | grep tags, 这样的切换对于ssh到远程操作的并不那么方便,那有没有更好的插件工具能够直接完成以上的这个功能需求呢? 那么就使用
2015-07-03 01:47:28 46877 1
UNIX网络编程第二卷-进程间通信-源代码
2012-04-12
手机基本原理(介绍各个部件的功能等)
2008-12-25
makefile(Gnumake)
2008-10-18
LINUX系统中动态链接库的创建与使用
2008-10-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人