我有许多在Volt中运行的存储过程,似乎其中一个偶尔会导致CPU出现峰值,但我不知道是哪一个。
在某处我可以看到所有存储过程的历史记录,以便我可以根据它发生的时间查明有问题的存储过程吗?
我试过打开命令记录,但它是一个二进制文件,所以我无法读取它。
我的下一个选择是从存储过程内部进行登录,但我更喜欢将此选项作为最后的手段,因为它需要一些额外的开发/部署,并且它与内部过程无关。
有没有办法记录/以某种方式查看存储过程何时运行?
答案 0 :(得分:1)
VoltDB中没有用户可以查看的每个事务的日志。命令日志不是可读的,只包括写入。但是,您可以使用一些工具来识别性能不佳或长时间运行的过程。
您可以调用“exec @Statistics PROCEDUREPROFILE 0;”获取已执行的所有过程的摘要,包括调用次数和平均执行时间(以纳秒为单位)。如果一个特定的程序是问题,它可能会突出。
你也可以在volt.log文件中找到短语“花费很长时间”,这是在程序或SQL语句执行时间超过1秒时打印的消息。
此外,tools子目录中有一个名为watch_performance.py的脚本,可用于监控性能。它类似于调用“exec @Statistics PROCEDUREPROFILE 0;”定期,除了从其他@Statistics选择器收集的一些列,并且输出格式化为可读性。 “./watch_performance.py -h”将输出帮助和使用信息。例如,您可以在性能负载期间运行此命令以获取工作负载的图片。或者,您可能会在较长的时间段内运行它,可能是在不太精细的时间间隔内,以查看工作负载随时间的波动。
披露:我为VoltDB工作