メインコンテンツまでスキップ
に最終更新

オペレーティングシステムの確認

Doris をデプロイする前に、次の OS 項目を確認して設定してください。

確認項目目的
スワップパーティションを無効にする性能に影響するカーネルの動作を避ける
Transparent Huge Pages(THP)を無効にするメモリ断片化と性能の変動を防ぐ
仮想メモリ領域の上限を増やすファイルハンドルの不足を防ぐ
CPU の省電力モードを無効にする高負荷時の性能を安定させる
ネットワーク接続があふれた場合にリセットする高並列時に接続が長時間待機するのを防ぐ
ポートを開く、またはファイアウォールを無効にするコンポーネント間の通信を確保する
ファイルハンドルの上限を増やす多数のテーブルデータファイルを扱えるようにする
NTP サービスをインストールするメタデータの時刻精度を 5000ms 未満に保つ

スワップパーティションの無効化​

スワップを無効にすると、カーネルがデータをスワップパーティションに移して Doris の性能を低下させることを防げます。

一時的に無効化(再起動すると元に戻ります):

swapoff -a

永続的に無効化:/etc/fstab のスワップ行をコメントアウトし、再起動して反映します。

# /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

Transparent Huge Pages の無効化​

THP(Transparent Huge Pages)を無効にすると、メモリの断片化が減り、Doris のメモリ使用が安定します。

一時的に無効化:

echo madvise > /sys/kernel/mm/transparent_hugepage/enabled
echo madvise > /sys/kernel/mm/transparent_hugepage/defrag

永続的に無効化:

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

仮想メモリ領域の上限を増やす​

VMA(仮想メモリ領域)の上限を増やすと、プロセスごとの VMA 上限を超えたときに Doris が mmap / Cannot allocate memory エラーで失敗するのを防げます。

cat >> /etc/sysctl.conf << EOF
vm.max_map_count = 2000000
EOF

sysctl -p

CPU の省電力モードを無効にする​

省電力モードを無効にすると、高負荷時の CPU 周波数が安定します。CPU が Scaling Governor に対応していない場合は、この手順を省略できます。

echo 'performance' | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

ネットワーク接続があふれた場合にリセットする​

tcp_abort_on_overflow を有効にすると、接続があふれた際に即座に切断し、高負荷時に接続が長時間待機するのを防げます。

cat >> /etc/sysctl.conf << EOF
net.ipv4.tcp_abort_on_overflow=1
EOF

sysctl -p

ポートを開く​

ポートに接続できない場合は、ファイアウォールを調べてください。

sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service

または、Doris のポート設定に合わせて必要なポートを開いてください。

ファイルハンドルの上限を増やす​

Doris は多数のファイルでテーブルデータを管理するため、ファイルハンドルの上限を増やす必要があります。

vi /etc/security/limits.conf
* soft nofile 1000000
* hard nofile 1000000

変更を有効にするには、セッションを再起動する必要があります。

NTP サービスのインストール​

クラスター内のすべてのマシンで時刻を同期してください。メタデータの時刻精度は 5000ms 未満にする必要があります。

sudo systemctl start ntpd.service
sudo systemctl enable ntpd.service