C++高性能异步事件驱动的框架:seastar

jopen 9年前

Seastar

Introduction

SeaStar是一个事件驱动的框架,能够让你编写非阻塞,异步代码。以一种相对简单的方式。它基于 futures 实现。

Building Seastar

See instructions for Fedora and Ubuntu.

There are also instructions for building on any host that supports Docker.

Use of the DPDK is optional.

Getting started

There is a mini tutorial and a more comprehensive one.

The Native TCP/IP Stack

Seastar comes with its own userspace TCP/IP stack for better performance.

Recommended hardware configuration for SeaStar

  • CPUs - As much as you need. SeaStar is highly friendly for multi-core and NUMA
  • NICs - As fast as possible, we recommend 10G or 40G cards. It's possible to use 1G to but you may be limited by their capacity. In addition, the more hardware queue per cpu the better for SeaStar. Otherwise we have to emulate that in software.
  • Disks - Fast SSDs with high number of IOPS.
  • Client machines - Usually a single client machine can't load our servers. Both memaslap (memcached) and WRK (httpd) cannot over load their matching server counter parts. We recommend running the client on different machine than the servers and use several of them.

项目地址: https://github.com/scylladb/seastar