科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道新软件:轻量级的开源反向代理服务器

新软件:轻量级的开源反向代理服务器

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

相对于squid这种重量级选手,smartc是一个轻量级的反向代理.smartc将专注于HTTP协议,致力于成为高性能、轻量级的支持反向代理cache服务器。

作者:华军资讯 来源:华军资讯 2008年5月16日

关键字: 网络服务器 服务器

  • 评论
  • 分享微博
  • 分享邮件

  相对于squid这种重量级选手,smartc是一个轻量级的反向代理.smartc将专注于HTTP协议,致力于成为高性能、轻量级的支持反向代理cache服务器.

  1)使用了很多新的系统特性,来解决用户态和内核态之间过多的内存拷贝问题,保证了内存的平稳性.

  2)最大限度的缩短数据到达网卡的距离,提升了cache响应.

  3)突破32bit系统对4G内存的限制,可以提升服务器的吞吐量和资源利用率.

  4)更多地去支持HTTP/1.1中新的特性,提升cache的性能.

  5)将使用面向结构的LUA语言来设计各类配置项,缩短用户的学习时间.

  Smartc的特性:

  1 支持异步io

  2 支持异步的sendfile系统调用

  3 支持文件映射mmap

  4 支持If-Modified-Since条件验证

  5 支持千万级别的document存储,专为大存储设计的Hash

  6 支持32位OS,超过4G内存限制

  7 支持epoll

  8 支持结构化的配置语言LUA,让系统管理人员获得更多的主动权.

  新闻扩展部分:

  现有特性:

  1 支持异步io

  2 支持异步的sendfile系统调用

  3 支持文件映射mmap

  4 支持If-Modified-Since条件验证

  5 支持千万级别的document存储,专为大存储设计的Hash

  6 支持32位OS,超过4G内存限制

  7 支持epoll

  8 支持结构化的配置语言LUA,让系统管理人员获得更多的主动权.

  存在的问题:

  1 不支持>2G文件

  2 不支持用户进程内存,和共享内存的cache置换算法

  3 不支持HTTP/1.1的keep-alive特性

  4 不支持HTTP/1.1的Vary特性

  5 不支持HTTP/1.1的ETag和If-None-Match条件验证

  运行环境:

  1 安装有LUA5.1版本以上

  2 RedHat 企业版4或以上版本,及其他Linux发行版.在RedHat 企业版4进行测试,可以顺利安装运行.

  发布时间:

  1 开发时间已经于2008.2.17基本结束.大概需要3个星期的时间来进行回归测试,并即时完成各种bugfix.

  2 初步定为2008.3月底发布

  一 现在的互联网

  在web刚兴起的时候,互联网估计主要是用来解决document共享的问题.从当时的HTTP/0.9版本上,可见一斑.到后来用户逐渐的增多,以及 apache的成功,和HTTP/1.0的推出,使得互联网的数据业务量出现极大的增长.HTTP/1.0已经提出了caching的概念,设计者估计也看到了网络拓扑结构的复杂性,不是单纯的web server就可以应对的.HTTP/1.1在1.0的基础,对caching又做了进一步的改进.

  现今,绝大多数的互联网数据业务都是基于HTTP/1.1开展的.由于数据量的激增,web caching在提升整个互联网的体验方向上,显出了极为重要的生态价值.web caching在减少带宽消耗,加快用户访问速度,应用层的负载均衡方面,发挥着很重要的作用.

  尤其web2.0的出现,互联网数据量相对web1.0又有了一次成倍的增长,像Youtube之类的视频网站,每日的访问量都是相当庞大的.

  二 为什么不用Squid

  Squid和apache几乎是属于同时代的产品,很好的应对了web1.0时代的互联网数据业务.Squid一个非常庞大的proxy,不仅支持 HTTP,而且支持FTP,并且支持很多种cache协议,如ICP等等.几乎proxy产品需要的功能,squid都具有.

  squid是基于单进程、单线程实现的,使用了最基本的read/write来处理读写问题,和用户级别的进程内存来缓存某些小的document.由于 read/write的系统调用,可能会导致用户态和内核态多次的内存拷贝,尤其是向网卡发送数据时,可能导致系统的内存抖动.在32bit的操作系统上,squid的内存使用始终无法超越3G.在处理小文件的cache问题时,squid的吞吐量非常低.squid的配置项,异常庞大,需要较长的学习周期,才能很好的掌握.

  开始新的体验吧

  smartc是本人从2007.6月份开始思考的一个产品,中间阅读了很多其他的优秀开源server,包括lighty,nginx,squid等.经历了多次框架的从新设计和比较,最终以单进程作为框架.经过08年春节期间,严肃的思考和代码修改,于2008.2.17日代码工作基本完成,代码辗转书写了1万行左右,历时5月之久.

  开始新的体验吧,不只是squid.

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章