Seastar
High performance C++ framework for concurrent servers
|
Configuration for the multicore aspect of seastar.
#include <seastar/core/smp_options.hh>
Public Types | |
using | value_list_type = boost::intrusive::list< basic_value, boost::intrusive::base_hook< list_base_hook >, boost::intrusive::constant_time_size< false > > |
using | option_group_list_type = boost::intrusive::list< option_group, boost::intrusive::base_hook< list_base_hook >, boost::intrusive::constant_time_size< false > > |
Public Member Functions | |
smp_options (program_options::option_group *parent_group) | |
operator bool () const | |
Does the option group has any values contained in it? | |
bool | used () const |
const std::string & | name () const |
const value_list_type & | values () const |
value_list_type & | values () |
void | describe (options_descriptor &descriptor) const |
void | mutate (options_mutator &mutator) |
Public Attributes | |
program_options::value< unsigned > | smp |
Number of threads (default: one per CPU). | |
program_options::value< resource::cpuset > | cpuset |
CPUs to use (in cpuset(7) format; default: all)). | |
program_options::value< std::string > | memory |
Memory to use, in bytes (ex: 4G) (default: all). | |
program_options::value< std::string > | reserve_memory |
Memory reserved to OS (if memory not specified). | |
program_options::value< std::string > | hugepages |
Path to accessible hugetlbfs mount (typically /dev/hugepages/something). | |
program_options::value< bool > | lock_memory |
Lock all memory (prevents swapping). | |
program_options::value< bool > | thread_affinity |
program_options::value< unsigned > | num_io_groups |
Number of IO groups. More... | |
program_options::value< std::string > | io_properties_file |
Path to a YAML file describing the characteristics of the I/O Subsystem. | |
program_options::value< std::string > | io_properties |
A YAML string describing the characteristics of the I/O Subsystem. | |
program_options::value< bool > | mbind |
program_options::value< bool > | enable_glibc_exception_scaling_workaround |
program_options::value< bool > | allow_cpus_in_remote_numa_nodes |
seastar::memory_allocator | memory_allocator = memory_allocator::seastar |
|
inherited |
Describe the content of this option group to the visitor.
The content is visited in a depth-first manner:
false
the entire content of the group, including all its subgroups and values are skipped and options_descriptor::visit_group_end() is called immediately. Otherwise visiting the content of the group proceeds.false
the value is skipped, otherwise visiting the value proceeds.
|
inherited |
Mutate the content of this option group by the visitor.
The visiting algorithm is identical to that of describe(), with the following differences:
true
if it did so and false
otherwise.program_options::value<bool> seastar::smp_options::allow_cpus_in_remote_numa_nodes |
If some CPUs are found not to have any local NUMA nodes, allow assigning them to remote ones.
HWLOC
support. program_options::value<bool> seastar::smp_options::enable_glibc_exception_scaling_workaround |
Enable workaround for glibc/gcc c++ exception scalablity problem.
Default: true
.
program_options::value<bool> seastar::smp_options::mbind |
Enable mbind.
Default: true
.
seastar::memory_allocator seastar::smp_options::memory_allocator = memory_allocator::seastar |
Memory allocator to use.
The following options only have effect if the memory_allocator::seastar is used:
program_options::value<unsigned> seastar::smp_options::num_io_groups |
Number of IO groups.
Each IO group will be responsible for a fraction of the IO requests. Defaults to the number of NUMA nodes
HWLOC
support. program_options::value<bool> seastar::smp_options::thread_affinity |
Pin threads to their cpus (disable for overprovisioning).
Default: true
.