|
Odooは、Pythonで記述され、バックエンドデータベースとしてPostgreSQLを使用する、業界をリードするERP(エンタープライズ・リソース・プランニング)ソフトウェアです。Odoo Community Editionは、プロジェクト管理、生産管理、財務、会計、販売管理、倉庫管理、人事管理など、幅広い機能を備えた無料のオープンソースソフトウェアです。30個のコアモジュールと3,000個以上のコミュニティモジュールが含まれています。Odooのモジュール数が多く、データベースサイズが巨大であることは、その複雑さを増し、非効率性につながる可能性があります。Odooの主なボトルネックは、ディスクアクセスとデータベースクエリ時間の2つです。
Odoo インスタンスのパフォーマンスを向上させるには、次の操作を実行できます。
より多くのメモリを搭載したSSD VPSを入手する 前述のように、ランダムディスクアクセス速度はOdooの主なボトルネックの1つです。そのため、OdooをSSDベースのVPSに導入することが重要です。Odooはリソースを大量に消費するアプリケーションであるため、常に十分なRAMを搭載したVPSにインストールする必要があります。理想的には、Odooインスタンス全体とそのデータベースがRAMにロードされる必要があります。ソリッドステートドライブ(SSD)はランダムアクセスに優れており、可動部品がないため、従来の機械式ハードドライブと比較して数百倍のランダムアクセスIOPS(IOPS)を実現できます。サーバーがSSDを活用または高速化しない場合、Odooをどれだけ最適化または構成しても効果はなく、速度は低下したままになります。したがって、Odooの導入に適したホストを確保することは、パフォーマンスを向上させる上で最も重要な要素です。 その他の Odoo の最適化は次のとおりです。 Odoo 構成でマルチプロセッサ オプションを有効にします。 この機能を有効にするには、openerp-server バイナリを見つけます。
次のコマンドを実行します。
このコマンドの出力は次のようになります。
ワーカープロセスの数は、VPSに割り当てられたCPUコア数と同じにする必要があります。また、Odooインスタンスと同じVPSにインストールされているPostgreSQLデータベース、cronジョブ、その他のアプリケーション用にCPUコアを予約したい場合は、ワーカープロセスの数をVPSで利用可能なCPUコア数よりも低い値に設定することで、リソース枯渇を回避できます。 limit-memory-soft および limit-memory-hard パラメータは説明を要しません。デフォルト値を使用することも、VPS で実際に使用可能な RAM に基づいて変更することもできます。 例えば、VPSにCPUコアが8個、メモリが16GBある場合、ワーカープロセス数を17(CPUコア数×2+1)、limit-memory-softの合計値を640×17=10880MB、limit-memory-hardの合計値を68MB×17=13056MBに設定できます。これにより、OdooのRAM容量は合計12.75GBになります。 たとえば、16 GB の RAM と 8 つの CPU コアを備えた VPS では、Odoo 構成ファイル (/etc/odoo-server.conf など) を編集し、次の行を追加します。
変更を有効にするには、Odoo を再起動することを忘れないでください。 PostgreSQLを適切に設定し最適化する PostgreSQLの最適化のためには、最新バージョンへのアップデートをお勧めします。PostgreSQL設定ファイル(pg_hba.conf)で、`shared_buffers`と`effective_cache_size`の2つの設定を変更する必要があります。`shared_buffers`を使用可能メモリの20%に、`effective_cache_size`を使用可能メモリの50%に設定してください。 たとえば、Odoo が 16 GB RAM SSD VPS にインストールされている場合は、pg_hba.conf で次の設定を使用します。
変更を有効にするには、PostgreSQL サービスを再起動します。 また、定期的に手動で「VACUUM」を実行することを忘れないでください。この操作は古いデータや一時的なデータを削除しますが、CPUとディスクリソースを大量に消費することに注意してください。 |