Dorisを導入する際は、以下のオペレーティングシステム設定を確認してください:
Dorisを導入する際は、swapパーティションを無効化することを推奨します。カーネルはメモリ圧迫を検出すると、メモリデータをswap領域に移動する場合がありますが、カーネルのアプリケーション動作に対する理解が限定的であるため、これがDorisのパフォーマンスに悪影響を与える可能性があります。
swapを一時的に無効化するには(再起動後にswapは再び有効化されます):
swapoff -a
swapを永続的に無効にするには、/etc/fstabを編集してswapパーティションエントリをコメントアウトし、マシンを再起動します:
# /etc/fstab # <file system> <dir> <type> <options> <dump> <pass> tmpfs /tmp tmpfs nodev,nosuid 0 0 /dev/sda1 / ext4 defaults,noatime 0 1 # /dev/sda2 none swap defaults 0 0 /dev/sda3 /home ext4 defaults,noatime 0 2
高負荷、低レイテンシのシナリオでは、パフォーマンスの劣化とメモリの断片化を回避し、Dorisの安定したメモリ使用を確保するために、Transparent Huge Pages(THP)を無効化することが推奨されます。
THPを一時的に無効化するには、以下のコマンドを使用してください:
echo madvise > /sys/kernel/mm/transparent_hugepage/enabled echo madvise > /sys/kernel/mm/transparent_hugepage/defrag
THPを永続的に無効にするには、再起動後に確実に有効になるよう、以下のコマンドを/etc/rc.d/rc.localに追加してください:
cat >> /etc/rc.d/rc.local << EOF echo madvise > /sys/kernel/mm/transparent_hugepage/enabled echo madvise > /sys/kernel/mm/transparent_hugepage/defrag EOF chmod +x /etc/rc.d/rc.local
Dorisが大容量データセットを処理できるようにするには、システムに十分な仮想メモリ空間が必要です。適切なメモリマッピングがないと、Dorisは起動時または実行時にToo many open filesなどのエラーが発生する可能性があります。
以下のコマンドで仮想メモリ領域を最低2000000に恒久的に変更でき、即座に有効になります:
cat >> /etc/sysctl.conf << EOF vm.max_map_count = 2000000 EOF # Take effect immediately sysctl -p
CPU省電力モードを無効にすることで、高負荷時の安定した高性能を確保し、CPU周波数の低下による変動や遅延を防ぎます。
以下のコマンドを使用してCPU governorを“performance”に設定し、省電力モードを無効にします:
echo 'performance' | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
TCP接続バッファがオーバーフローした場合、新規接続を即座にリセットするようにしてください。これにより、高負荷時のバッファブロッキングを防ぎ、応答性と安定性が向上します。
以下のコマンドを使用して、新規接続を自動的にリセットするようにシステムを永続的に設定でき、即座に有効になります:
cat >> /etc/sysctl.conf << EOF net.ipv4.tcp_abort_on_overflow=1 EOF # Take effect immediately sysctl -p
Doris関連のポートがブロックされている場合、ファイアウォールを無効にして原因かどうかを確認してください。ファイアウォールが問題の場合は、Dorisコンポーネント用の関連ポートを開放してください。
sudo systemctl stop firewalld.service sudo systemctl disable firewalld.service
Dorisは大量のファイルを管理するため、システムのファイルディスクリプタ制限を増加する必要があります。
オープンファイルの最大数を変更するには、/etc/security/limits.confに以下を追加してください:
vi /etc/security/limits.conf * soft nofile 1000000 * hard nofile 1000000
Dorisではメタデータのタイムスタンプ精度が5000ms以内である必要があります。クラスター内のすべてのノードで一貫した時刻を確保し、メタデータの不整合を避けるために、NTPサービスを使用してすべてのマシン間でクロックを同期する必要があります。
以下のコマンドを使用してNTPサービスを開始し、有効化します:
sudo systemctl start ntpd.service sudo systemctl enable ntpd.service