システムの速度低下やシステムの停止を回避するために、BellaDatiシステムのステータスを監視するようにしてください。
次の指標を監視することをお勧めします:
- httpステータス (アプリケーションステータス)
- CPU使用率
- フリーストレージスペース
- 解放可能なメモリ
ベストプラクティスとして、これらのメトリックを1週間間隔で監視することをお勧めします。
FAQ
Q1: 頻繁にインポートする場合。
BellaDatiインスタンスへのインポートが頻繁にスケジュールされている場合は、次のデータベーススクリプトを実行する必要があります (PostgreSQLでこのスクリプトを実行します):
--Delete data_source_executions
delete
from
bi.data_source_execution
where
canceled_when
is
not
null
;
delete
from
bi.data_source_execution
where
executed_when < ‘2016-07-01’;
--more than 30 days old
vacuum analyze bi.data_source_execution;
--Delete import_table entries
delete
from
bi.import_table it
where
it.id
not
in
(
select
import_table_id
from
bi.data_source ds
where
ds.import_table_id
is
not
null
union
all
select
e.import_table_id
from
bi.data_source_execution e
where
e.import_table_id
is
not
null
);
vacuum analyze bi.import_table;
Q2: BellaDatiにソートされたテーブルが多すぎて、ソートが遅い。
メンバーテーブルが多すぎる場合 (並べ替え)、次のデータベーススクリプトを複数回実行する必要があります (PostgresSQLでこのスクリプトを実行します):
CREATE
OR
REPLACE
FUNCTION
drop_tables(
IN
_schema TEXT,
IN
_parttionbase TEXT)
RETURNS
void
LANGUAGE plpgsql
AS
$$
DECLARE
row record;
BEGIN
FOR
row
IN
SELECT
table_schema,
table_name
FROM
information_schema.tables
WHERE
table_schema = _schema
AND
table_name ILIKE (_parttionbase ||
'%'
)
LIMIT 1000
LOOP
EXECUTE
'DROP TABLE '
|| quote_ident(row.table_schema) ||
'.'
|| quote_ident(row.table_name);
RAISE INFO
'Dropped table: %'
, quote_ident(row.table_schema) ||
'.'
|| quote_ident(row.table_name);
END
LOOP;
END
;
$$;
BEGIN
TRANSACTION
;
SELECT
drop_tables(
'public'
,
'members_'
);
COMMIT
;
Q3: BellaDatiがデータベースに接続できない。
- まず、データベースが実行されており、着信接続を受け入れていることを確認する必要があります。
- データベースが稼働している場合は、さらに調査を行う必要があります:
- アクティブなクエリを確認します - システムの概要ページの管理コンソールから確認できます (データベースアクティビティダンプ)。
- クエリが多すぎる場合は、データベース構成でmax_connectionsパラメーターを上げ、アプリケーションサーバー構成でpool_sizeを上げる必要があります。
Q4: 応答時間が長すぎるか、タイムアウトになってしまう。
- アプリケーションサーバーとデータベースサーバーが稼働しているサーバーの、システムリソースを確認する必要があります。
- 通常、主な理由はメモリ不足です。サーバーのメモリ構成を上げるか、ロードバランサーを使用して複数のサーバーを設定することを検討してください。ほとんどの場合、アプリケーションを再起動すると問題が解決します。