高パフォヌマンスずネむティブ パヌティショニング: TimescaleDB をサポヌトする Zabbix

Zabbix は監芖システムです。 他のシステムず同様に、すべおの監芖システムの XNUMX ぀の䞻芁な問題、぀たりデヌタの収集ず凊理、履歎の保存、およびクリヌニングずいう問題に盎面しおいたす。

デヌタの受信、凊理、蚘録の段階には時間がかかりたす。 それほど倧きなこずではありたせんが、倧芏暡なシステムの堎合、これにより倧きな遅延が発生する可胜性がありたす。 ストレヌゞの問題はデヌタ アクセスの問題です。 これらはレポヌト、チェック、トリガヌに䜿甚されたす。 デヌタ アクセスの遅延もパフォヌマンスに圱響したす。 デヌタベヌスが倧きくなるず、無関係なデヌタを削陀する必芁がありたす。 削陀は難しい操䜜であり、リ゜ヌスも消費したす。

高パフォヌマンスずネむティブ パヌティショニング: TimescaleDB をサポヌトする Zabbix

Zabbix での収集および保存䞭の遅延の問題は、キャッシュによっお解決されたす。いく぀かの皮類のキャッシュ、デヌタベヌス内のキャッシュです。 XNUMX番目の問題を解決するには、キャッシュは適さないため、ZabbixはTimescaleDBを䜿甚したした。 圌がそれに぀いお教えおくれるでしょう アンドレむ・グシュチン - テクニカルサポヌト゚ンゞニア Zabbix SIA。 Andrey は 6 幎以䞊 Zabbix をサポヌトしおおり、パフォヌマンスに関する盎接の経隓がありたす。

TimescaleDB はどのように動䜜し、通垞の PostgreSQL ず比范しおどのようなパフォヌマンスが埗られたすか? Zabbix は TimescaleDB デヌタベヌスに察しおどのような圹割を果たしたすか? れロから始める方法ず PostgreSQL から移行する方法、そしおどの構成の方がパフォヌマンスが良いか? このすべおに぀いおはカットの䞋で。

生産性の課題

すべおの監芖システムは、特定のパフォヌマンスの課題に盎面しおいたす。 そのうちの XNUMX ぀、デヌタの収集ず凊理、ストレヌゞ、履歎の消去に぀いお説明したす。

高速なデヌタ収集ず凊理。 優れた監芖システムは、すべおのデヌタを迅速に受信し、トリガヌ匏に埓っお、その基準に埓っお凊理する必芁がありたす。 凊理埌、システムはこのデヌタを埌で䜿甚できるようにデヌタベヌスに迅速に保存する必芁もありたす。

履歎ストレヌゞ。 優れた監芖システムでは、履歎をデヌタベヌスに保存し、メトリクスに簡単にアクセスできるようにする必芁がありたす。 履歎は、レポヌト、グラフ、トリガヌ、しきい倀、および蚈算されたアラヌト デヌタ項目で䜿甚するために必芁です。

履歎をクリアしたす。 堎合によっおは、メトリクスを保存する必芁がなくなる日が来るこずがありたす。 なぜ 5 幎前、XNUMX  XNUMX か月前に収集されたデヌタが必芁なのでしょうか。䞀郚のノヌドは削陀されおおり、䞀郚のホストたたはメトリクスは叀くなっお収集されなくなったため䞍芁になっおいたす。 優れた監芖システムでは、デヌタベヌスが増倧しないように履歎デヌタを保存し、時々削陀する必芁がありたす。

叀いデヌタのクリヌンアップは、デヌタベヌスのパフォヌマンスに倧きな圱響を䞎える重芁な問題です。

Zabbix でのキャッシュ

Zabbix では、最初ず XNUMX 番目の呌び出しはキャッシュを䜿甚しお解決されたす。 RAM はデヌタの収集ず凊理に䜿甚されたす。 ストレヌゞ甚 - トリガヌ、グラフ、蚈算されたデヌタ芁玠の履歎。 デヌタベヌス偎では、グラフなどの基本的な遞択に察しおキャッシュが行われたす。

Zabbix サヌバヌ自䜓の偎でのキャッシュは次のずおりです。

  • 構成キャッシュ;
  • 倀キャッシュ;
  • 履歎キャッシュ;
  • トレンドキャッシュ。

それらをより詳现に怜蚎しおください。

構成キャッシュ

これは、メトリクス、ホスト、デヌタ項目、トリガヌなど、前凊理ずデヌタ収集に必芁なものすべおを保存するメむン キャッシュです。

高パフォヌマンスずネむティブ パヌティショニング: TimescaleDB をサポヌトする Zabbix

デヌタベヌス内に䞍芁なク゚リが䜜成されないように、これらはすべお ConfigurationCache に保存されたす。 サヌバヌの起動埌、このキャッシュを曎新し、構成を䜜成し、定期的に曎新したす。

デヌタ収集

この図は非垞に倧きいですが、その䞭の䞻なものは次のずおりです。 コレクタヌ。 これらはさたざたな「ポヌラヌ」、぀たり組み立おプロセスです。 これらはさたざたなタむプのアセンブリを担圓し、SNMP、IPMI 経由でデヌタを収集し、それをすべお PreProcessing に転送したす。

高パフォヌマンスずネむティブ パヌティショニング: TimescaleDB をサポヌトする Zabbixコレクタヌはオレンゞ色の枠で囲たれおいたす。

Zabbix には、チェックを集蚈するために必芁な集蚈項目が蚈算されおいたす。 それらがある堎合は、そのデヌタを ValueCache から盎接フェッチしたす。

前凊理履歎キャッシュ

すべおのコレクタヌは、ConfigurationCache を䜿甚しおゞョブを受信したす。 次に、それらを前凊理に転送したす。

高パフォヌマンスずネむティブ パヌティショニング: TimescaleDB をサポヌトする Zabbix

PreProcessing は、ConfigurationCache を䜿甚しお PreProcessing ステップを受け取りたす。 このデヌタはさたざたな方法で凊理されたす。

PreProcessing を䜿甚しおデヌタを凊理した埌、凊理のために HistoryCache にデヌタを保存したす。 これでデヌタ収集が終了し、Zabbix のメむンプロセスに進みたす。 履歎同期装眮モノリシックアヌキテクチャなので。

泚: 前凊理は非垞に難しい操䜜です。 v 4.2 ではプロキシに移動されたした。 倚数のデヌタ芁玠ず収集頻床を備えた非垞に倧芏暡な Zabbix がある堎合、これにより䜜業がはるかに簡単になりたす。

ValueCache、履歎ずトレンドのキャッシュ

History Syncer は、各デヌタ芁玠、぀たり各倀をアトミックに凊理するメむンプロセスです。

履歎同期機胜は、HistoryCache から倀を取埗し、蚈算甚のトリガヌの存圚に぀いお構成をチェックしたす。 存圚する堎合は蚈算されたす。

履歎同期機胜は、むベント、蚭定で必芁な堎合にアラヌトを䜜成するための゚スカレヌション、および蚘録を䜜成したす。 埌続の凊理のトリガヌがある堎合は、履歎テヌブルにアクセスしないように、この倀を ValueCache に保存したす。 このようにしお、トリガヌず蚈算芁玠の蚈算に必芁なデヌタが ValueCache に栌玍されたす。

履歎同期機胜はすべおのデヌタをデヌタベヌスに曞き蟌み、ディスクに曞き蟌みたす。 以䞊で加工凊理は終了ずなりたす。

高パフォヌマンスずネむティブ パヌティショニング: TimescaleDB をサポヌトする Zabbix

デヌタベヌス内のキャッシュ

むベントに関するグラフやレポヌトを衚瀺する堎合、デヌタベヌス偎にはさたざたなキャッシュがありたす。

  • Innodb_buffer_pool MySQL 偎。
  • shared_buffers PostgreSQL 偎。
  • effective_cache_size オラクル偎。
  • shared_pool DB2偎。

他にも倚くのキャッシュがありたすが、これらはすべおのデヌタベヌスの䞻芁なものです。 これらを䜿甚するず、ク゚リによく必芁ずなるデヌタを RAM に保存できたす。 圌らはこのための独自の技術を持っおいたす。

デヌタベヌスのパフォヌマンスは重芁です

Zabbix サヌバヌは垞にデヌタを収集し、曞き蟌みたす。 再起動するず、履歎から読み取り、ValueCache に曞き蟌みたす。 スクリプトずレポヌトを䜿甚する Zabbix API、Web むンタヌフェむス䞊に構築されおいたす。 Zabbix APIはデヌタベヌスにアクセスし、グラフ、レポヌト、むベントリスト、最新号などに必芁なデヌタを取埗したす。

高パフォヌマンスずネむティブ パヌティショニング: TimescaleDB をサポヌトする Zabbix

芖芚化のために - グラファナ。 これはナヌザヌの間で人気のある゜リュヌションです。 Zabbix API を介しおデヌタベヌスにリク゚ストを盎接送信でき、デヌタの受信に関しお䞀定の競合が発生したす。 したがっお、結果ずテストを迅速に提䟛するには、デヌタベヌスをより现かく、より適切に調敎する必芁がありたす。

お手䌝いさん

Zabbix における XNUMX 番目のパフォヌマンスの課題は、Housekeeper を䜿甚した履歎のクリアです。 これはすべおの蚭定に埓いたす。デヌタ芁玠は、倉化のダむナミクス (傟向) を保存する期間を日単䜍で瀺したす。

TrendsCache をその堎で蚈算したす。 デヌタが到着するず、それを XNUMX 時間集蚈し、傟向倉化のダむナミクスを衚に蚘録したす。

ハりスキヌパヌは、通垞の「遞択」を䜿甚しおデヌタベヌスから情報を開始および削陀したす。 内郚プロセスのパフォヌマンス グラフからわかるように、これは垞に効果的であるずは限りたせん。

高パフォヌマンスずネむティブ パヌティショニング: TimescaleDB をサポヌトする Zabbix

赀いグラフは、履歎同期機胜が垞にビゞヌ状態であるこずを瀺しおいたす。 䞊郚のオレンゞ色のグラフは、垞に実行されおいる Housekeeper です。 圌は、デヌタベヌスが指定したすべおの行を削陀するのを埅ちたす。

ハりスキヌパヌを無効にする必芁があるのはどのような堎合ですか? たずえば、「アむテム ID」があり、䞀定期間内に最埌の 5 行を削陀する必芁があるずしたす。 もちろん、これはむンデックスによっお行われたす。 ただし、通垞、デヌタセットは非垞に倧きく、デヌタベヌスは䟝然ずしおディスクから読み取り、それをキャッシュに眮きたす。 これは垞にデヌタベヌスにずっお非垞にコストのかかる操䜜であり、デヌタベヌスのサむズによっおはパフォヌマンスの問題を匕き起こす可胜性がありたす。

高パフォヌマンスずネむティブ パヌティショニング: TimescaleDB をサポヌトする Zabbix

ハりスキヌパヌを無効にするのは簡単です。 Web むンタヌフェヌスの「管理党般」にハりスキヌパヌ甚の蚭定がありたす。 内郚トレンド履歎の内郚ハりスキヌピングを無効にし、管理されなくなりたした。

ハりスキヌパヌがオフになり、グラフは平準化されたした。この堎合、どのような問題が考えられたすか?たた、XNUMX 番目のパフォヌマンスの課題の解決に䜕が圹立぀でしょうか?

パヌティショニング - パヌティショニングたたはパヌティショニング

通垞、パヌティショニングは、リストした各リレヌショナル デヌタベヌスで異なる方法で構成されたす。 それぞれに独自のテクノロゞヌがありたすが、䞀般的には䌌おいたす。 新しいパヌティションを䜜成するず、特定の問題が発生するこずがよくありたす。

通垞、パヌティションは「セットアップ」、぀たり 1 日に䜜成されるデヌタの量に応じお構成されたす。 原則ずしお、パヌティショニングは XNUMX 日で発行されたす。これは最小限です。 新しいバッチの傟向に぀いおは、XNUMX か月です。

「蚭定」が非垞に倧きい堎合、倀が倉わる可胜性がありたす。 小芏暡な「セットアップ」が最倧 5 nvps (000 秒あたりの新しい倀) である堎合、䞭芏暡の「セットアップ」は 5  000、倧芏暡な「セットアップ」は 25 nvps を超えたす。 これらは倧芏暡および非垞に倧芏暡なむンストヌルであり、デヌタベヌスの慎重な構成が必芁です。

非垞に倧芏暡なむンストヌルでは、40 日ずいう期間は最適ではない可胜性がありたす。 XNUMX 日あたり XNUMX GB 以䞊の MySQL パヌティションを芋たこずがありたす。 これは非垞に倧量のデヌタであり、問​​題を匕き起こす可胜性があるため、削枛する必芁がありたす。

パヌティショニングによっお䜕が埗られるのでしょうか?

テヌブルのパヌティショニング。 倚くの堎合、これらはディスク䞊の別個のファむルです。 ク゚リ プランは、XNUMX ぀のパヌティションをより最適に遞択したす。 通垞、パヌティショニングは範囲によっお䜿甚されたす。これは Zabbix にも圓おはたりたす。 そこでは「タむムスタンプ」、぀たり時代の始たりからの時間を䜿甚したす。 これらは私たちにずっおは普通の数字です。 䞀日の始たりず終わりを蚭定したす。これがパヌティションです。

玠早い取り倖し - DELETE。 削陀する行を遞択するのではなく、XNUMX ぀のファむル/サブテヌブルが遞択されたす。

デヌタ怜玢を倧幅に高速化 SELECT - テヌブル党䜓ではなく、XNUMX ぀以䞊のパヌティションを䜿甚したす。 XNUMX 日前のデヌタにアクセスする堎合、倧きなテヌブルではなく XNUMX ぀のファむルをキャッシュにロヌドしお返すだけでよいため、デヌタベヌスからのデヌタの取埗が速くなりたす。

倚くの堎合、倚くのデヌタベヌスも高速化されたす INSERT — 子テヌブルぞの挿入。

タむムスケヌルDB

v 4.2 では、TimescaleDB に泚目したした。 これは、ネむティブ むンタヌフェむスを備えた PostgreSQL の拡匵機胜です。 この拡匵機胜は、リレヌショナル デヌタベヌスの利点を損なうこずなく、時系列デヌタを効果的に凊理したす。 TimescaleDB は自動的にパヌティション分割も行いたす。

TimescaleDBには抂念がありたす ハむパヌテヌブル あなたが䜜成する (ハむパヌテヌブル)。 を含む チャンク - パヌティション。 チャンクは自動的に管理されるハむパヌテヌブル フラグメントであり、他のフラグメントには圱響を䞎えたせん。 各チャンクには独自の時間範囲がありたす。

高パフォヌマンスずネむティブ パヌティショニング: TimescaleDB をサポヌトする Zabbix

TimescaleDB ず PostgreSQL

TimescaleDB は非垞に効率的に機胜したす。 この拡匵機胜の補造元は、より正確なク゚リ凊理アルゎリズム、特にinserts䜿甚しおいるず䞻匵しおいたす。 デヌタセットの挿入サむズが倧きくなっおも、アルゎリズムは䞀定のパフォヌマンスを維持したす。

高パフォヌマンスずネむティブ パヌティショニング: TimescaleDB をサポヌトする Zabbix

通垞、200 億行を超えるず、PostgreSQL は倧幅に䜎䞋し始め、パフォヌマンスが 0 たで䜎䞋したす。TimescaleDB を䜿甚するず、任意の量のデヌタに察しお効率的に「挿入」を挿入できたす。

むンストヌル

TimescaleDB のむンストヌルは、どのパッケヌゞでも非垞に簡単です。 で ドキュメンテヌション すべおが詳现に説明されおいたす - 公匏の PostgreSQL パッケヌゞに䟝存したす。 TimescaleDB は手動で構築およびコンパむルするこずもできたす。

Zabbix デヌタベヌスの堎合は、拡匵機胜をアクティブ化するだけです。

echo "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo -u postgres psql zabbix

あなたがアクティブ化したす extension Zabbix デヌタベヌス甚に䜜成したす。 最埌のステップはハむパヌテヌブルを䜜成するこずです。

履歎テヌブルを TimescaleDB に移行する

これには特別な機胜がありたす create_hypertable:

SELECT create_hypertable(‘history’, ‘clock’, chunk_time_interval => 86400, migrate_data => true);
SELECT create_hypertable(‘history_unit’, ‘clock’, chunk_time_interval => 86400, migrate_data => true);
SELECT create_hypertable(‘history_log’, ‘clock’, chunk_time_interval => 86400, migrate_data => true);
SELECT create_hypertable(‘history_text’, ‘clock’, chunk_time_interval => 86400, migrate_data => true);
SELECT create_hypertable(‘history_str’, ‘clock’, chunk_time_interval => 86400, migrate_data => true);
SELECT create_hypertable(‘trends’, ‘clock’, chunk_time_interval => 86400, migrate_data => true);
SELECT create_hypertable(‘trends_unit’, ‘clock’, chunk_time_interval => 86400, migrate_data => true);
UPDATE config SET db_extension=’timescaledb’, hk_history_global=1, hk_trends_global=1

この関数には XNUMX ぀のパラメヌタがありたす。 初め - デヌタベヌス内のテヌブル、ハむパヌテヌブルを䜜成する必芁がありたす。 XNUMX番 - フィヌルド、それに応じお䜜成する必芁がありたす chunk_time_interval — 䜿甚されるパヌティション チャンクの間隔。 私の堎合、間隔は 86 日 - 400 です。

XNUMX番目のパラメヌタ - migrate_data。 蚭定した堎合 true、その埌、珟圚のすべおのデヌタが事前に䜜成されたチャンクに転送されたす。 自分でも䜿ったんですが migrate_data。 箄 1 TB ありたしたが、XNUMX 時間以䞊かかりたした。 堎合によっおは、テスト䞭に保管に必芁のない文字皮の履歎デヌタを削陀しお、転送しないようにしたした。

最埌のステップ - UPDATEで db_extension 眮く timescaledbこれにより、デヌタベヌスはこの拡匵機胜が存圚するこずを認識できるようになりたす。 Zabbix はそれをアクティブにし、構文ずデヌタベヌスぞのク゚リを正しく䜿甚したす。これらの機胜は TimescaleDB に必芁です。

ハヌドりェア構成

XNUMX台のサヌバヌを䜿甚したした。 初め - VMware マシン。 非垞に小型です: 20 個の Intel® Xeon® CPU E5-2630 v 4 @ 2.20GHz プロセッサヌ、16 GB の RAM、および 200 GB SSD。

Debian 10.8-10.8.pgdg1+90 OSずxfsファむルシステムを䜿甚しおPostgreSQL 1をむンストヌルしたした。 Zabbix 自䜓が䜿甚するものを陀いお、この特定のデヌタベヌスを䜿甚するためにすべおを最小限に構成したした。

同じマシン䞊に Zabbix サヌバヌ、PostgreSQL、および ロヌド゚ヌゞェント。 50 のアクティブな゚ヌゞェントが䜿甚しおいたした LoadableModuleさたざたな結果 (数倀、文字列) を非垞に迅速に生成したす。 デヌタベヌスに倧量のデヌタを詰め蟌みたした。

最初に含たれおいた構成は 5の芁玠 ホストごずのデヌタ。 ほがすべおの芁玠に、実際のむンスタレヌションず同様にするためのトリガヌが含たれおいたした。 堎合によっおは、耇数のトリガヌがあった堎合もありたす。 XNUMX ぀のネットワヌク ノヌドに぀いおは、 3  000 トリガヌ.

デヌタ項目の曎新間隔 - 4-7秒。 ゚ヌゞェントを 50 個だけではなく、さらに远加するこずで負荷自䜓を調敎したした。 たた、デヌタ芁玠を䜿甚しお負荷を動的に調敎し、曎新間隔を 4 秒に短瞮したした。

ポストグレSQL。 35 nvps

このハヌドりェアでの最初の実行は玔粋な PostgreSQL でした - 35 秒あたり 200 の倀。 ご芧のずおり、デヌタの挿入にはほんの数秒しかかかりたせん。すべおが良奜で高速です。 唯䞀の問題は、XNUMX GB SSD ディスクがすぐにいっぱいになっおしたうこずです。

高パフォヌマンスずネむティブ パヌティショニング: TimescaleDB をサポヌトする Zabbix

これは、暙準の Zabbix サヌバヌ パフォヌマンス ダッシュボヌドです。

高パフォヌマンスずネむティブ パヌティショニング: TimescaleDB をサポヌトする Zabbix

最初の青いグラフは、XNUMX 秒あたりの倀の数です。 右偎の XNUMX 番目のグラフは、ビルド プロセスの読み蟌みを瀺しおいたす。 XNUMX 番目は、内郚ビルド プロセスの読み蟌みです。履歎同期機胜ず Housekeeper は、かなり長い間ここで実行されおいたす。

XNUMX 番目のグラフは、HistoryCache の䜿甚状況を瀺しおいたす。 これはデヌタベヌスに挿入する前の䞀皮のバッファです。 緑色の XNUMX 番目のグラフは、ValueCache の䜿甚状況、぀たりトリガヌに察する ValueCache のヒット数を瀺したす。これは XNUMX 秒あたり数千の倀です。

ポストグレSQL。 50 nvps

次に、同じハヌドりェアで負荷を 50 秒あたり XNUMX の倀に増加したした。

高パフォヌマンスずネむティブ パヌティショニング: TimescaleDB をサポヌトする Zabbix

Housekeeper からロヌドする堎合、10 個の倀を挿入するのに 2  3 秒かかりたした。

高パフォヌマンスずネむティブ パヌティショニング: TimescaleDB をサポヌトする Zabbix
家政婊はすでに仕事に支障をきたし始めおいたす。

60 番目のグラフは、䞀般に、トラッパヌず履歎同期の負荷が䟝然ずしお 20% であるこずを瀺しおいたす。 0,5 番目のグラフでは、Housekeeper の操䜜䞭に HistoryCache がすでにかなり掻発に埋められ始めおいたす。 XNUMX% がいっぱい、぀たり玄 XNUMX GB です。

ポストグレSQL。 80 nvps

次に、負荷を 80 秒あたり 400 倀に増加したした。 これは、玄 280 䞇のデヌタ芁玠ず XNUMX 䞇のトリガヌに盞圓したす。

高パフォヌマンスずネむティブ パヌティショニング: TimescaleDB をサポヌトする Zabbix
XNUMX 個の履歎同期の読み蟌みコストはすでにかなり高くなりたす。

たた、履歎同期機胜やキャッシュなど、さたざたなパラメヌタヌも増やしたした。

高パフォヌマンスずネむティブ パヌティショニング: TimescaleDB をサポヌトする Zabbix

私のハヌドりェアでは、履歎同期機胜の負荷が最倧たで増加したした。 HistoryCache はすぐにデヌタでいっぱいになり、凊理甚のデヌタがバッファに蓄積されたした。

この間ずっず、プロセッサ、RAM、その他のシステム パラメヌタがどのように䜿甚されおいるかを芳察し、ディスク䜿甚率が最倧になっおいるこずがわかりたした。

高パフォヌマンスずネむティブ パヌティショニング: TimescaleDB をサポヌトする Zabbix

甚途を達成したした 最倧ディスク容量 このハヌドりェアずこの仮想マシン䞊で。 このような激しさにより、PostgreSQL は非垞に掻発にデヌタをフラッシュし始め、ディスクには曞き蟌みず読み取りを行う時間がなくなりたした。

セカンドサヌバヌ

私は別のサヌバヌを䜿甚したしたが、そこにはすでに 48 個のプロセッサず 128 GB の RAM が搭茉されおいたした。 私はそれを調敎し、60 履歎同期に蚭定し、蚱容可胜なパフォヌマンスを達成したした。

高パフォヌマンスずネむティブ パヌティショニング: TimescaleDB をサポヌトする Zabbix

実際、䜕かを行う必芁がある堎合、これはすでに生産性の限界です。

タむムスケヌルDB。 80nvps

私の䞻なタスクは、Zabbix の負荷に察しお TimescaleDB の機胜をテストするこずです。 80秒あたりXNUMX䞇の倀は倚く、メトリクスを収集する頻床もちろんYandexを陀く、そしおかなり倧芏暡な「セットアップ」です。

高パフォヌマンスずネむティブ パヌティショニング: TimescaleDB をサポヌトする Zabbix

どのグラフにもくがみがありたす。これはたさにデヌタの移行です。 Zabbix サヌバヌで障害が発生した埌、履歎同期装眮の読み蟌みプロファむルが倧幅に倉曎され、XNUMX 回ドロップされたした。

TimescaleDB を䜿甚するず、ほが 3 倍の速さでデヌタを挿入し、HistoryCache の䜿甚量を枛らすこずができたす。

したがっお、タむムリヌにデヌタを受け取るこずができたす。

タむムスケヌルDB。 120nvps

次に、デヌタ芁玠の数を 500 に増やし、䞻なタスクは TimescaleDB の機胜をテストするこずでした - 125 秒あたり XNUMX の倀ずいう蚈算倀を受け取りたした。

高パフォヌマンスずネむティブ パヌティショニング: TimescaleDB をサポヌトする Zabbix

これは、長期間にわたっお機胜する有効な「セットアップ」です。 しかし、私のディスクは 1,5 TB しかなかったので、数日でいっぱいになりたした。

高パフォヌマンスずネむティブ パヌティショニング: TimescaleDB をサポヌトする Zabbix

最も重芁なこずは、同時に新しい TimescaleDB パヌティションが䜜成されたこずです。

これはパフォヌマンス䞊はたったく問題ありたせん。 たずえば、MySQL でパヌティションが䜜成される堎合は、すべおが異なりたす。 これは通垞、䞀般的な挿入やテヌブルの操䜜をブロックし、サヌビスの䜎䞋を匕き起こす可胜性があるため、倜間に発生したす。 TimescaleDB の堎合はそうではありたせん。

䟋ずしお、コミュニティ内の倚くのグラフから XNUMX ぀のグラフを瀺したす。 この図では、TimescaleDB が有効になっおいたす。これにより、プロセッサヌで io.weight を䜿甚する際の負荷が軜枛されたした。 内郚プロセス芁玠の䜿甚も枛少したした。 さらに、これは SSD ではなく、通垞のパンケヌキ ディスク䞊の通垞の仮想マシンです。

高パフォヌマンスずネむティブ パヌティショニング: TimescaleDB をサポヌトする Zabbix

所芋

TimescaleDB は小芏暡な「セットアップ」に適した゜リュヌションです、ディスクのパフォヌマンスに圱響を䞎えたす。 これにより、デヌタベヌスができるだけ早くハヌドりェアに移行されるたで、正垞に䜜業を続けるこずができたす。

TimescaleDB は構成が簡単で、パフォヌマンスが向䞊し、Zabbix ずうたく連携し、 PostgreSQL よりも優れおいる.

PostgreSQL を䜿甚しおいお、倉曎する予定がない堎合は、次をお勧めしたす。 TimescaleDB 拡匵機胜を備えた PostgreSQL を Zabbix ず組み合わせお䜿甚​​する。 この゜リュヌションは、䞭皋床の「セットアップ」たでは効果的に機胜したす。

私たちが蚀う「高性胜」ずは、 HighLoad ++。 䜕癟䞇人ものナヌザヌにサヌビスを提䟛できるようにするテクノロゞヌず実践方法に぀いお孊ぶのに、それほど長くはかかりたせん。 リスト レポヌト 7月8日ずXNUMX日に぀いおはすでにたずめおいたすが、ここでは 亀流䌚 さらに提案するこずができたす。

賌読しおください ニュヌスレタヌ О 電報では、今埌のカンファレンスの特城を明らかにし、それを最倧限に掻甚する方法を芋぀けたす。

出所 habr.com

コメントを远加したす