システムのチューニング
この章では、最適なパフォーマンスを得るためにParagon Active Assuranceシステムを調整する方法に関する推奨事項について説明します。
CPU
バイオス
プロセッサには、通常、プロセッサ レベルの機能を有効、無効、および調整するための設定が用意されています。今日のシステムは通常、デフォルトで最大のパフォーマンスを提供するため、調整する必要はありません。ただし、わずかに高いパフォーマンスを実現するために、ターボブーストが有効になっていることを確認することをお勧めします。
スケーリング ガバナー
Linux は、カーネルを介して CPU クロック周波数を制御するさまざまな CPU スケーリングプロファイル (powersave
、 performance
) をサポートしています。 performance
プロファイルを使用して、最高のパフォーマンスを実現します。最大クロック周波数が常に使用されるようにするには、すべてのCPUに対してこれを設定する必要があります。CPUの数は nproc
コマンドで確認できます。次に、各 CPU X に対して次のコマンドを実行します。
echo performance > /sys/devices/system/cpu/cpufreq/policyX/scaling_governor
CPU を最大周波数で実行するように設定することは、ハードウェア システムにのみ適用され、追加コストが発生する可能性があることに注意してください。
記憶
swappiness
Linux カーネルパラメータは、Linux カーネルが RAM の内容をスワップ領域にコピーする量 (および頻度) を制御します。
スワップの量を完全に無効にすることなく、最小限に設定して、メモリページが物理メモリに保持されるようにすることをお勧めします。
sudo sysctl -w vm.swappiness=1
( sysctl
コマンドは、後述のカーネルパラメータ設定では省略されています。
貯蔵
パーティションとファイルシステム
これについては、「インストールガイド」の 「必要なOSとソフトウェアのインストール」の章で説明しています。
さらに、ページ キャッシュのフラッシュは、より均一な動作 (バックグラウンド フラッシュを早く、アグレッシブ フラッシュを後で) にするように調整できます。
vm.dirty_ratio = 80 vm.dirty_background_ratio = 5 vm.dirty_expire_centisecs = 12000
先読みサイズ
ストレージ・ブロック・デバイスのチューナブル read_ahead_kb
パラメーターは、オペレーティング・システムが順次読み取り操作中に先読みできる最大キロバイト数を定義します。その結果、次のシーケンシャル読み取りに必要な情報がカーネルページキャッシュ内にすでに存在し、読み取りI/Oパフォーマンスが向上します。
すべてのブロック デバイスでこのパラメーターを 4096 KB に設定することをお勧めします。
echo 4096 > /sys/block/sdN/queue/read_ahead_kb
ネットワーク
ソケットとTCPバッファ
ソケット バッファーの最大サイズ (バイト単位) は、全二重 10GbE 接続をサポートするために、すべてのプロトコルの種類と読み取りと書き込みの両方について、次のように設定する必要があります。
net.core.rmem_max = 16777216 net.core.wmem_max = 16777216
TCPスループットを向上させるには、TCP読み取りおよび書き込みバッファの自動チューニングパラメータ(使用する最小バイト数、デフォルト数、最大バイト数)を設定します。以下の設定をお勧めします。最小値と既定値を増やすと、接続ごとにより多くのメモリが消費されますが、これは必要ない場合があります。
net.ipv4.tcp_wmem = 4096 349520 16777216 net.ipv4.tcp_rmem = 4096 349520 16777216
TCPバックログ
次のTCP設定は、負荷のバーストをより適切に処理するために、デフォルトから増やす必要があります。
ハーフオープン接続のTCPバックログキュー:
net.ipv4.tcp_max_syn_backlog = 8192
受け入れるべき接続を渡すためのTCPバックログキュー:
net.core.somaxconn = 4096
デバイスバックログ
CPU あたりのネットワーク デバイス バックログ キューの長さは、既定値から増やす必要があります。
net.core.netdev_max_backlog = 1000
ローカルポート範囲
TCPおよびUDP接続に許可されるIPポートの範囲を拡張して、予想されるワークロードに十分なエフェメラルポートを提供します。
net.ipv4.ip_local_port_range = 10240 65535
アパッシュ
パフォーマンス
/etc/apache2/conf-available/performance.conf
では、次の設定が推奨されます。
HostnameLookups Off KeepAlive On KeepAliveTimeout 2 MaxKeepAliveRequests 600 Timeout 120
イベント マルチプロセッシング
/etc/apache2/mods-enabled/mpm_event.conf
では、次の設定が推奨されます。
<IfModule mpm_event_module> StartServers 3 ServerLimit 8 MinSpareThreads 8 MaxSpareThreads 75 ThreadLimit 64 ThreadsPerChild 25 MaxRequestWorkers 200 MaxConnectionsPerChild 10000 </IfModule>
安全
/etc/apache2/conf-available/security.conf
では、次の設定が推奨されます。
ServerTokens Prod ServerSignature Off TraceEnable Off
設定の有効化
上記のすべてのApache構成が保存されていることを確認してから、次のように有効にします。
a2enconf performance a2enconf security a2enmod mpm_event systemctl reload apache2
OpenVPN
送信キュー長(Transmit Queue Length)
OpenVPNのパフォーマンスとスループットを向上させるには、 tun
インターフェイスの送信キューの長さを調整することをお勧めします。
echo "txqueuelen 2000" >> /etc/openvpn/netrounds.conf systemctl restart openvpn@netrounds.service
PostgreSQL
最適なパフォーマンスを得るには、 /etc/postgresql/10/main/postgresql.conf
で次の設定が推奨されます。
max_connections = 100 effective_io_concurrency = 128 # between 64 and 256 based on performance of underlying storage stack default_statistics_target = 100 checkpoint_completion_target = 0.9 random_page_cost = 1.1 max_worker_processes = 8 max_parallel_workers_per_gather = 1 max_parallel_workers = 8 shared_buffers = X # set to 25% of available memory effective_cache_size = work_mem = maintenance_work_mem = temp_buffers = 16MB wal_buffers = 16MB 18wal_compression = on
無人ソフトウェアアップグレード
ソフトウェアパッケージの自動インストールを回避するには、 unattended-upgrades
サービスを無効にするか、システムから完全に削除することをお勧めします。
systemctl stop unattended-upgrades systemctl disable unattended-upgrades
コントロールセンター
最後に、コントロールセンターの多くのパラメータは、利用可能なリソースとシステム負荷に応じて調整できます。これらには以下が含まれます:
/etc/netrounds/netrounds.conf
CALL_EXECUTER_MAX_CHILDREN
: これにより、並行して実行できるバックグラウンド ジョブの数が構成されます。デフォルトは 20 です。各テストとモニター (各タスクではない) は、バックグラウンド ジョブとして定期的に実行されます。テストまたはモニターが多数ある場合は、実行中のテストおよびモニターの数と一致するようにこの値を設定して、これらのジョブがキューに入れられ、データの収集が遅れるのを防ぐことができます。現在のキューの長さは、ncc status
コマンドによって返されるscheduled_call_latency
パラメーターと見なすことができます。
/etc/apache2/sites-available/netrounds-ssl.conf
WSGIDaemonProcess netrounds ... processes
:これにより、同時に処理できるコントロールセンターGUIへのHTTPリクエストの数が設定されます。デフォルトは 10 です。要求が多い場合や遅い場合は、この数を増やす必要がある場合があります。要求の処理を開始できるワーカーがいない場合は、504 Gateway Timeout 応答が返されます。