我将算法交易当作一种爱好,并且我即将在延迟方面提升自己的水平。
我有两个关于适当的硬件和数据库软件的问题。
问题 1.
在购买硬件之前,我想知道在多个表中存储许多数据点的一般良好设置是什么。
我目前正在考虑的 CPU 和硬盘组件大致如下:
- 双 CPU:双 Intel XEON E5-2660 v2 十核 2.2GHz(3.0GHz Turbo)25MB 缓存
- 双 Seagate 4TB SSHD
- 金士顿 ECC 1600MHz (8x8 GB)
双 CPU + 双 SSHD 是否足以每秒处理许多数据点(1,000,000+)?
尤其是,我对以下内容非常好奇:
拥有更多硬盘有什么好处吗?
如果我将数据库表拆分到多个硬盘上,是否会提高速度?
是否有任何其他硬件(尤其是硬盘)设置可以提高数据库处理速度?
问题2。
我可以运行哪种最好的数据库软件来尽快存储这么多的数据点?
此外,哪种数据库软件允许同时对同一张表进行读写?(所以没有锁)
我知道一个数据库系统叫做“内存SQL' 这似乎很合适。有人有使用 MemsQL 的经验吗?你知道其他值得推荐的低延迟数据库软件吗?
我期待您的回复。提前致谢。
答案1
在磁盘方面,请在您最喜欢的搜索引擎中搜索“iops calculator”,以确定具有最高 IOPS 的配置,以满足您的风险和要求。我们在刀片服务器上有一些数据库,SAN 与 FC 相连,我们的 CPU 处于空闲状态,RAM 的使用符合要求,但磁盘速度才是真正的瓶颈。一旦将 VM 移动到较慢的存储中,您可以清楚地看到数据库陷入困境。我们在 RAID10 中实施非 SSD SAS 磁盘,磁盘可以跟上我们的设置。
有些数据库喜欢规模大但索引少,而有些数据库则希望分成较小的块,您必须对您的应用程序的数据库结构进行一些研究。