注意:我正在寻找关于如何调试这个问题的任何提示,而不一定是这个特定问题的直接答案。
我已经定义了一些连续视图(计算和、top-K等等),从一个流(有20列,一些文本,大部分是整数和布尔值)输入。
当连续视图所指定的工作不太复杂时,PipelineDB表现良好。
-
(单个)“worker0”进程开始消耗100%的CPU
-
-
测试挂起(即copy_from()函数调用不返回)
当我减少PipelineDB的工作量(通过删除一些连续视图)时,测试工作正常,每秒可以实现20000次插入,至少持续一分钟。
我已经使用了一些配置参数,特别是那些与内存缓冲区大小、同步方法、时间间隔、最大等待时间等有关的参数,以及工人数量,但是找不到任何可以避免问题的组合。
我不知道我遇到的是PipelineDB问题,还是PostgreSQL问题。
当然,这不是预期的行为,在实际应用程序中也不能容忍。
欢迎任何提示、猜测、直觉等。
[orens@rd10 ~]$ps -ef | grep pipelinedb
UID PID PPID C STIME TTY TIME CMD
orens 3005 3004 0 11:17 ? 00:00:00 pipelinedb: logger process
orens 3007 3004 0 11:17 ? 00:00:00 pipelinedb: checkpointer process
orens 3008 3004 0 11:17 ? 00:00:00 pipelinedb: writer process
orens 3009 3004 0 11:17 ? 00:00:00 pipelinedb: wal writer process
orens 3010 3004 0 11:17 ? 00:00:00 pipelinedb: autovacuum launcher process
orens 3011 3004 0 11:17 ? 00:00:00 pipelinedb: stats collector process
orens 3012 3004 0 11:17 ? 00:00:00 pipelinedb: pipelinedb scheduler process
orens 3014 3004 0 11:17 ? 00:00:00 pipelinedb: bgworker: reaper0 [pipeline]
orens 3015 3004 0 11:17 ? 00:00:00 pipelinedb: bgworker: queue0 [pipeline]
orens 3016 3004 0 11:17 ? 00:00:00 pipelinedb: bgworker: combiner1 [pipeline]
orens 3017 3004 0 11:17 ? 00:00:00 pipelinedb: bgworker: combiner0 [pipeline]
orens 3018 3004 0 11:17 ? 00:00:00 pipelinedb: bgworker: worker0 [pipeline]
orens 3046 3004 0 11:17 ? 00:00:00 pipelinedb: bgworker: reaper0 [db1]
orens 3050 3004 0 11:17 ? 00:00:00 pipelinedb: bgworker: queue0 [db1]
orens 3052 3004 0 11:17 ? 00:00:00 pipelinedb: bgworker: combiner0 [db1]
orens 3056 3004 90 11:17 ? 00:01:06 pipelinedb: bgworker: worker0 [db1]
orens 3132 3004 1 11:17 ? 00:00:01 pipelinedb: ut_user db1 ::1(58830) COPY
[orens@rd10 ~]$