heterodb / pg-strom

PG-Strom - Master development repository
http://heterodb.github.io/pg-strom/
Other
1.3k stars 162 forks source link

Too much GPU workers startup/terminate if pg_strom.max_async_tasks in postgresql.conf #811

Closed kaigai closed 1 month ago

kaigai commented 4 months ago

postgresql.conf に pg_strom.max_async_tasks の設定値を書き込んでしまうと、 バックグラウンドワーカーの起動時にいったんデフォルト12に値をセットして、 それを20に再設定するという挙動を見せるため、それに引っ張られて、ワーカー スレッドが短時間のうちにstartup/terminateしてしまう。

2024-07-18 12:55:52.043 JST [459737] LOG:  GPU0 workers - 0 startup, 8 terminate
2024-07-18 12:55:52.043 JST [459737] LOG:  GPU0 workers - 8 startup, 0 terminate
2024-07-18 12:55:52.312 JST [459737] LOG:  GPU0 workers - 0 startup, 8 terminate
2024-07-18 12:55:52.312 JST [459737] LOG:  GPU0 workers - 8 startup, 0 terminate

SET pg_strom.max_async_tasks だけで制御するのはデザインミス。 別途、制御用のSQL関数を用意するなど。

kaigai commented 1 month ago

51c0b0de87fd26bcbd8a452594f875b806f3b48e にて修正

pg_strom.max_async_tasks が反映されるには 4sec の遅延を挟むようにした。 この修正により、reset後、即座に元の値に戻すような動作は、実際のスレッドのstart/stopを行わないようになった。