dragonflydb / dragonfly

A modern replacement for Redis and Memcached
https://www.dragonflydb.io/
Other
25.6k stars 939 forks source link

Document supported hardware architectures #163

Open zamazan4ik opened 2 years ago

zamazan4ik commented 2 years ago

Hi!

I have checked the documentation but did not find any word about supported architectures - only about supported operating systems.

Could you please put the information about supported architectures to the documentation please? E.e. about supported architectures for different operating systems, some specific requirements to the supported instructions, if you have any (e.g. maybe AVX is required - I do not know).

This kind of information is important for the end-users.

Thanks in advance!

liaohongxing commented 2 years ago

After testing, I've determined that DragonflyDB needs some instruction set support

At least sse4.2 avx is required, avx2 seems not to need it, it crashes when sse4.2 avx is not available

This is just a simple test, and the results may not be accurate

The CPU I tested is Inter Xeon E5-2690 V2, which can run normally. When I used Hyper-V to remove SSE4.2 AVX, it didn't work

cat /proc/cpuinfo

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 62
model name      : Intel(R) Xeon(R) CPU E5-2690 v2 @ 3.00GHz
stepping        : 4
microcode       : 0xffffffff
cpu MHz         : 3000.000
cache size      : 25600 KB
physical id     : 0
siblings        : 4
core id         : 0
cpu cores       : 4
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc rep_good nopl cpuid pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt aes xsave avx f16c rdrand hypervisor lahf_lm pti fsgsbase smep erms xsaveopt
bugs            : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
bogomips        : 6000.00
clflush size    : 64
cache_alignment : 64
address sizes   : 42 bits physical, 48 bits virtual
power management:
romange commented 2 years ago

Thanks, @liaohongxing . Indeed I recently stabilized minimum requirements for x86_64 architectures via here and here . In short, we require sandybridge or equivalent. For aarch64 we require Graviton2. It should suffice for most computers in 2022.

romange commented 2 years ago

For the record, @zamazan4ik asked to document more clearly that we officially support x86_64 and Graviton-based arm64 systems.