技術情報

Matomoを高速に設定する

Matomoを高速に設定する

スピードのためのサーバー設定

以下の推奨事項は、最高速度が出るようにサーバーを構成するのに役立ちます:

  • Matomoは強力な専用サーバーでホスティングすることは、月間100万ページビュー以上の中規模から高トラフィックのウェブサイトを追跡する場合にお勧めします。
  • 必要なサーバー(およびCPU、RAM、ディスク)は、毎月のページビュー数によって異なります。100万ページビュー以下、1,000万ページビュー、1億ページビュー、またはそれ以上であっても、サーバーのサイズに関する基本的な推奨事項は、以下のページでご覧いただけます。Matomoサーバー要件ユーザーガイド.
  • Matomo(php/Mysql)は、サーバーに大きなRAMメモリがあると便利です:1GBのメモリは、Matomoが非常に大規模なウェブサイトのレポートを処理するための最小推奨メモリであり、RAMは多ければ多いほど良いです!
  • PHP8、および利用可能な最新の安定版を使用してください。(PHP8はPHP7よりもパフォーマンスが向上しています)
  • Nginxやlighttpdなど、ApacheやIISよりも高速で効率的なWebサーバーを使用することをお勧めします。
  • NFSやglusterfsのような共有/クラスタ/ネットワークファイルシステム上でMatomoを使用しないでください。ネットワークファイルシステムは遅く、Matomoの上に大きなオーバーヘッドを作ります。すべての Matomo ファイルには標準ファイルシステムを使用してください。
  • 上級ユーザー向けには、Matomoをロードバランス環境で動作するように設定し、ロードバランサーの背後で複数のサーバーを使用することができます。
  • Tracker API: トラフィックの多い Matomo サーバを管理している場合、Redis (または MySQL) データストアを使用するように MatomoTracking API を設定することで、非常に高速でスケーラブルな Tracking API リクエストを簡単に行うことができます。QueuedTrackingプラグインについての詳細はスケーラビリティを向上させるために、MatomoがRedisを使用するように設定するには?をご覧ください。
  • Tracker API:
    Matomoで’Provider’プラグインが有効になっている場合、インターネットプロバイダはDNSの逆引きを行うため、数ミリ秒のオーバーヘッドが発生します。訪問者のISPを追跡するには、次のいずれかを使用する方が高速です。DB-IP IPからISPデータベースへまたはMaxMindのISPデータベースを使用する方が高速です。
    これらのインストール方法については、こちらをご覧ください。
    また、最適なパフォーマンスを得るために、’Provider’プラグインを無効にし(Matomo 2.15.0 以降の新規ユーザはデフォルトで無効になっています)、DNS の逆引きをスキップすることもできます。

データベースサーバーを高速に設定する

MatomoのデータはすべてMysqlクエリを使って保存、集計されるため、MatomoのパフォーマンスはMysqlデータベースサーバーのパフォーマンスと大きく関係している。

  • 可能であれば、ソリッド・ステート・ドライブ(SSD)の方が高速であることが多いので、SSDを使用してください。
  • MatomoのMysqlデータベースの使用量は、5Mページビューごとに約1GBです。あなたのウェブサイトが1日あたり100kページビュー(1ヶ月あたり3Mページビュー)を追跡する場合、1年後のDBサイズは〜7GBになることが予想されます。
    良いパフォーマンスを達成するための重要な要素は、追跡するユニークURLの数を少なく保つことです。URLにカウントしたくないパラメーター(セッションIDパラメーターなど)を無視するように設定してください。
    Matomoで追跡されるユニークURLは少ないほど良いです!
  • DBサーバーがライター/リーダー・レプリケーションとしてセットアップされている場合、Matomoでリーダーデータベースサーバーを設定し、パフォーマンスを大幅に向上します。
  • Myisamの代わりにデフォルトでMysql Innodbテーブルを使用するようになりました。これはより高い信頼性につながります。Mysql の innodb設定をチューニングすることで、パフォーマンスを向上させることができます。innodb_buffer_pool_size オプションは、RAMに収まる限り増やすことができます。innodb_buffer_pool_size は、MySQL で使用可能な RAM の少なくとも 80% に設定することをお勧めします(8G以上の RAM を使用している場合は、さらに高い比率に設定することもできます)。
  • MySQL の設定ではinnodb_flush_log_at_trx_commit=2(参照)を設定することもでき、これによりトラッカーのスループットを大幅に向上させることができます。
  • MySQLを設定し、ディスク上のtmpディレクトリを使用する代わりに、tmpfsを使用してRAM上のファイルシステムにtmpdirを指定することをお勧めします。MySQLはtmpdirを使用してテンポラリデータセットを作成および保存するため、RAMのみを使用する必要がある場合にさらなる高速化をもたらします。
  • データベースの容量が限られている場合は、古いログを例えば、6ヶ月以上前の訪問者ログを削除することが役立つことがあります。データベースのサイズをより管理しやすくなります。
  • MySQLを最大限に活用するには、高負荷と大規模なデータベースを処理するために設定を最適化する必要があります。パフォーマンスを向上させるために調整可能な MySQL設定はいくつかあります。最適なMySQL設定の提案リストを入手するには、Mysqlチューニング入門またはMysqlチューナーツールを使用することをお勧めします。
  • mysql.comのInnodbI/Oの最適化も参照してください。
  • Matomo Analytics公式クラウドサービスは、月間5億アクションを追跡する高トラフィックのMatomoサーバーをサポートすることができます。
  • あなたのウェブサイトが月間100M以上のページを追跡している場合、Matomoはphpのメモリ制限やその他のmysqlやハードウェアの制限に到達し始めるかもしれません。サポートについてはお問い合わせください。私たちは、Matomoで月間10億件ものアクションのトラッキングに成功しているお客様を支援しています。

ウェブサイトのトラッキングをスピードに最適化する

リソース

Matomoを最大限にご活用ください。Matomoの管理をご希望される場合は、追加料金なしでMatomoクラウドサービスにすべてのデータを移行することができます。
お問合せはこちら