高性能服务器程序框架,Seastar 高性能服务器端应用程序框架

Seastar

625332134c6f4d4600884b99daebf603.png625332134c6f4d4600884b99daebf603.png625332134c6f4d4600884b99daebf603.png625332134c6f4d4600884b99daebf603.png

Introduction

SeaStar is an event-driven framework allowing you to write non-blocking, asynchronous code in a relatively straightforward manner (once understood). It is based on futures.

Building Seastar

See instructions for Fedora, CentOS and Ubuntu.

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

Use of the DPDK is optional.

Using C++17

Seastar can be built with the C++17 dialect by supporting compilers, conditional on the --c++-dialect option being set to gnu++17.

However, by default Seastar uses C++14-compatible types such as std::experimental::optional<> or boost::variant, both internally and in its public API, thus forcing them on C++17 projects. To fix this, Seastar provides the --use-std-optional-variant-stringview 0|1 option, which changes those types to their stdlib incarnation, and allows seemless use of C++17. Usage of this option requires an updated compiler, such as GCC 8.1.1-5 on Fedora.

Getting started

The documentation is available on the web.

Resources

Ask questions and post patches on the development mailing list. Subscription information and archives are available here, or just send an email to seastar-dev@googlegroups.com.

Information can be found on the main project website.

File bug reports on the project issue tracker.

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 too 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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值