一个epoll惊群导致的性能问题
admin 8年前 (2017-05-10) 5048浏览 0评论
在我们内部的系统中,有一个tcp的代理服务,用户所有的网络相关的请求,比如访问外网,或者访问在内网的某些服务,都需要通过这个服务,一方面是实现对外网访问的计费,另外也通过白名单机制,对应用的内网访问进行相应的限制。 随着业务量的增加,发现提供服务的机...
admin 8年前 (2017-05-10) 5048浏览 0评论
在我们内部的系统中,有一个tcp的代理服务,用户所有的网络相关的请求,比如访问外网,或者访问在内网的某些服务,都需要通过这个服务,一方面是实现对外网访问的计费,另外也通过白名单机制,对应用的内网访问进行相应的限制。 随着业务量的增加,发现提供服务的机...
admin 9年前 (2015-08-22) 3493浏览 0评论
通常多数人不会注意Nginx的accept_mutex配置,不过实际上它对系统的吞吐量有一定的影响,今天生物钟紊乱睡不着觉,索性闲扯一下Nginx的accept_mutex配置。 让我们看看accept_mutex的意义:当一个新连接到达时,如果激活...
admin 9年前 (2015-08-22) 5317浏览 0评论
介绍 众所周知,NGINX 采用异步、事件驱动的方式处理连接。意味着无需对每个请求创建专门的进程或线程,它用一个工作进程(worker process)处理多个连接和请求。为了达到这个目的,NGINX采用非阻塞模式的 socket,并利用诸如 epo...
admin 9年前 (2015-07-19) 6029浏览 1评论
进程和线程究竟是什么东西?传统网络服务模型是如何工作的?协程和线程的关系和区别有哪些?IO过程在什么时间发生? 在刚刚结束的 PyCon2014 上海站,来自七牛云存储的 Python 高级工程师许智翔带来了关于 Python 的分享《Python中...
admin 10年前 (2015-07-08) 4108浏览 0评论
在redhat网站查到下面的信息,说是因为内存不够的原因。我觉得这个可以当作出现这个问题的解释,但是却解释得不够“完美”,我仍旧还在疑惑中:如果是是因为内存不够的原因,那么在每次测试之前,只要保证机器状态一样,那么TCP: time wait buc...
admin 10年前 (2015-05-30) 3552浏览 0评论
按照题主的意思 是根据内存去算一个最大并发的连接数. 那么首先要找出来单个连接消耗内存的地方. 第一个首先是socket buffer. read 和write 分别有一个, 默认大小在 /proc/sys/net/ipv4/tcp_rmem (fo...
admin 10年前 (2015-01-28) 4154浏览 0评论
问题描述: 前两天老大跟我讲了一个他们原来遇到的问题,php采用fastcgi的方式启动,并且打开slow log日志,当调用fsockopen读取一个连接,这个连接超过了slowlog设置的时间,fpm进程就会抛出一个warning,用来记录关于这...
admin 10年前 (2014-12-09) 4259浏览 0评论
在前面的示例libaio_test.c和native_aio_test.c中,可以看到对磁盘aio请求(本文的aio都指此类)的使用有阻塞等待,这明显之处为对io_getevents()函数(当然,其它函数,比如io_submit()也有一定程度的阻...
admin 10年前 (2014-12-09) 3719浏览 0评论
从前面文章 nginx对Linux native AIO机制的应用 一 已经了解到,在Linux系统上,要使用native AIO机制,可以利用libaio库,也可以手动利用syscall做一层自己的封装,而nginx采用就是后者,这样做的好处是既使...
admin 10年前 (2014-09-13) 3850浏览 0评论
为了提高性能,几乎所有互联网应用都有缓存机制,其中Memcache是使用非常广泛的一个分布式缓存系统。众所周知,LAMP是非常经典的Web架构方式,但是随着Nginx的成熟,越来越多的系统开始转型为LNMP(Linux+Nginx+MySQL+PHP...
admin 11年前 (2014-07-16) 3176浏览 0评论
随着 高性能 Web 服务器大量被使用,目前 最新稳定版为Nginx-1.4.7.tar.gz 张宴兄在实际应用中大量使用 ,并分享 高性能 Web 服务器知识,使得 在国内也是飞速的发展。 那今天咱们再来温习一下 Nginx 动静分离知识,这里仅供...
admin 11年前 (2014-05-09) 4592浏览 0评论
gunicorn是一个python web 服务部署工具,类似flup,完全用python开发,参考了ruby的部署工具: Unicorn project 官网:http://docs.gunicorn.org/en/18.0/ gunicorn主要...
admin 11年前 (2014-03-31) 3063浏览 0评论
根据操作的阻塞或非阻塞类型,以及IO的准备就绪、完成事件通知的同步和异步类型,一共有四种不同方式的IO。 同步阻塞IO 在许多web server上,典型的一个连接一个thread的基础,这种类型是IO操作阻塞着应用程序直到完成。 当阻塞式的read...
admin 11年前 (2014-03-25) 3045浏览 0评论
参考资料: http://blog.s135.com/nginx_php_v6/ http://blog.s135.com/post/375/ 背景介绍: 以前,因为AWS EC2的价格比较昂贵而租用了其它国外小厂商的VPS,在使用了3年多之后,发现...
admin 13年前 (2012-01-02) 3247浏览 0评论
几个月前朱照远同学向我提过一个epoll的疑似bug:1. 创建一个socket(sfd)并connect到某个server2. 创建 epoll_create(efd)3. 将socket的描述符sfd加入efd, 采用ET模式4. 调...