Jean - 记录成长历程

  • 关于
  • Language
  • RSS Feed
  • 微博
  • 豆瓣
31
Jan

关于在线代理的思考及优化思路

By admin|Linux系统|Be the first to comment!

凸墙自从上线就没怎么管过,后续的seo都是GF在处理。最近发现网页时有打不开的现象,因为购置的VPS并非独立服务器所以我确实仔细分析了内核参数,nginx配置,fastcgi并没有发现异常,但是可以断定问题肯定是出在fastcgi处理连接上,因为每次重启fastcgi后页面又会恢复往常的访问速度了。

晚上向超群大牛请教了下这个问题,他看过代码后曰:

fastcgi是进程阻塞的模型,而在线的访问(web proxy)非常消耗进程。

那么当我用在线代理去请求一个页面,fastcgi将会一直阻塞直到一个页面读完,这个等待时间在网络I/O中所占时间太长。有意思的是Nginx 的核心是网络 I/O 非阻塞。所以从nginx的角度来看fastcgi 永远是阻塞的,从fastcgi的角度看,fastcgi 的另一边永远是阻塞。那么纵然我nginx能接受再多的连接,但最后还要卡在fastcgi上。

在google里找了一圈发现的都是在nginx或者apache与fastcgi的超时时间,却没发现fastcgi自身的设置能够解决模型本身弊端(或许说不上)的方法。

在nginx中

以下两个选项用于防止网络阻塞

tcp_nopush on;

tcp_nodelay on;

在apache中

appConnTimeoutn(0 秒)
等待到 FastCGI 应用程序的连接完成的秒数,0 表明使用阻塞 connect()。如果超时到期,则产生 SERVER_ERROR。对于非零值,这表示 select() 中用于写入由非阻塞 connect() 返回的文件描述符的时间量。在许多平台上,非阻塞 connect() 很容易产生问题。另见 -idle-timeout 选项;此选项将产生类似的结果,但其方式更为简便。

无觅相关文章插件,快速提升流量

Tagged as: fastcgi, nginx, php, 调优
Add your comment →

0 Comments

Leave your comment below! Cancel Reply

点击取消回复

View More Posts:
  • ←
  • →

分类

  • Linux系统 (61)
  • Linux集群 (4)
  • Web服务器 (26)
  • 创业相关 (6)
  • 工作笔记 (33)
  • 我爱折腾 (16)
  • 日记 (46)
  • 网络 (3)
  • 脚本编程 (49)

最新日志

  • 从零开始,我的创业感悟
  • 为大众创造更美好的日常生活
  • 我的站立式工作平台
  • 阿里云计算使用简评
  • 死了把软件外包这条心吧

最新评论

  • admin on 从零开始,我的创业感悟
  • Kovlala on 从零开始,我的创业感悟
  • jean on 从零开始,我的创业感悟
  • Kovlala on 从零开始,我的创业感悟
  • ElmaByrd35 on 解决Fedora 11中文字体难看问题

博客互联

  • HackLog
  • leapsoul
  • Myredhat
  • Ninth element
  • Ti’blog
  • William Hua
  • young001
  • 懒人运维
  • 曙光博客
  • 月夜
  • 月影
  • 杂货店一号铺
  • 王先进’s blog
  • 疯中舞步
  • 菜鸟的技术站
  • 运维进行时

技术

  • DBA BLOG
  • 回忆未来[张宴]
  • 扶凯
  • 王炜's Blog
  • 百变贝贝

Powered by the inLine Minimal WordPress Theme