这不是与代码有关的问题,而是与服务器性能和我应检查的事情有关的问题。因此,我有一个ExpressJS服务器,该服务器连接到cassandra db(1个种子节点和1个群集上的2个节点,因此总共3个节点)。该API与cassandra db种子节点在同一服务器上运行。我在局域网中总共有3台服务器。
所以结构看起来像这样-
服务器1运行API和种子cassandra节点。 服务器2运行cassandra节点。 服务器3运行cassandra节点。
每台服务器具有8GM的ram和2.5Ghz的CPU。
默认情况下,每秒大约有70个请求会执行以下操作-
1)调用一个函数,该函数从cassandra的表中读取数据(使用实例化视图)。 2)从cassandra db读取另一个表(使用实例化视图)。 3)将数据发布到cassandra的第三个表中。
被调用的第二个函数非常相似,它使用物化视图进行1次读取,并发布1次。
每秒调用的函数之间的比例差大约是调用函数1的30倍(执行2次读取和1个帖子),调用函数2大约40倍(执行1次读取1个帖子)。
一切都会很好,但是请求的延迟会不时地跳跃,有时大约需要10毫秒,但每5到10秒就会增加3到30秒。另外,cassandra似乎不稳定-在3-30秒的请求时间期间,cassandra似乎在某些请求上超时。
我应该检查的第一件事是什么?我是否需要其他节点,如何确定是否有足够的节点来发送到cassandra db中的数据量?我是否应该将API与cassandra节点分开-从而将API服务器保存在单独的服务器(例如服务器4)上?