FastSocket优化操作系统网络协议栈

Fastsocket 是一个高扩展性的 Socket 以及 Linux 内核的底层网络实现。可以在多核机器上提供极好的性能,此外使用和维护还非常简单。目前该项目已经在新浪的生产环境中使用。该项目由清华大学和新浪网联合组成的 Fastos 团队开发,该团队的使命是提升 Linux 内核的效率。

Fastsocket 目前已经使用在新浪微博的生产环境上,主要用于提供负载均衡服务的 HAProxy,线上实际性能提升一倍,从2014年3月份稳定运行至今,预计2014年底完成负载均衡全部集群的 Fastsocket 升级。

Fastsocket 完全兼容 BSD Socket API,现有各类基于 Socket 的网络应用可以直接使用 Fastsockt。 目前经过兼容测试的常用服务软件有:HAProxy、Nginx、Lighttpd、Redis 和 Memcached。

项目地址:https://github.com/fastos/fastsocket

安装编译

[root@localhost ~]# git clone https://github.com/fastos/fastsocket.git
 
[root@localhost ~]# cd fastsocket/kernel
[root@localhost kernel]# make defconfig
[root@localhost kernel]# make
[root@localhost kernel]# make modules_install
[root@localhost kernel]# make install

Enter the library directory and make the library:

[root@localhost fastsocket]# cd library
[root@localhost library]# make

After that, libfsocket.so is created in the same directory.

使用方法:

使用fastsocket启动nginx

[root@localhost fastsocket]# cd library
[root@localhost library]# LD_PRELOAD=./libfsocket.so nginx

不使用fastsocket 启动nginx

[root@localhost ~]# nginx

      在fastsocket主要由一个内核模块和一个用户态动态链接库,通过LD_PRELOAD拦截系统调用,经过libfsocket.so处理后,采用ioctl的形式和fastsocket内核模块进行通信,内核模块进行实际的优化工作。

      fastsocket是一个fastos的一个网络方面的优化,由新浪开源。fastsocket主要优化内核中的accept因为锁而导致的串行,对于短连接会极大的提高其性能,cpu核越多性能提升越明显。基于内核模块和一个动态链接库,对于某些应用程序不需修改就可使用。但是并非所有应用都能通过fastsocket获得性能提升。

适用场景:

Ø  系统至少不少于8个cpu

Ø  系统的很大一部分开销用于处理网络软中断以及socket相关系统调用

Ø  tcp短连接很多

Ø  应用使用了epool处理网络io

Ø  应用使用了多进程接收连接

转载于:https://my.oschina.net/manmao/blog/735767

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值