システムのチューニング
この章では、最適なパフォーマンスを得るためにParagon Active Assuranceシステムを調整する方法に関する推奨事項を紹介します。
Cpu
Bios
通常、プロセッサーはプロセッサー・レベルの機能を有効、無効、および調整するための設定を提供します。今日のシステムは通常、デフォルトで最大のパフォーマンスを提供するため、調整する必要はありません。ただし、より高いパフォーマンスを実現するには、Turbo Boost を有効にすることをお勧めします。
スケーリングガバナ
Linuxは、カーネルを介してCPUクロック周波数を制御するさまざまなCPUスケーリングプロファイル(powersave
、 performance
)をサポートしています。プロファイルを performance
使用して、最高のパフォーマンスを実現します。最大クロック周波数を常に使用するためには、すべてのCPUに対してこれを設定する必要があります。コマンドを使用して CPU の数を nproc
確認できます。次に、各 CPU X に対して以下を実行します。
echo performance > /sys/devices/system/cpu/cpufreq/policyX/scaling_governor
最大周波数で動作するように CPU を設定することは、ハードウェア システムにのみ適用され、追加コストが発生する場合があることに注意してください。
メモリ
Linux カーネル パラメータは swappiness
、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 バッファー
すべてのプロトコル タイプと、全二重 10 GbE 接続をサポートするための読み取りと書き込みの両方について、最大ソケット バッファー サイズ(バイト)を次のように設定する必要があります。
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
Apache
パフォーマンス
以下の設定が推奨されます /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
送信キュー長
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
制御センター
最後に、使用可能なリソースとシステムの負荷に応じて、多数の Control Center パラメーターを調整できます。以下に示します。
/etc/netrounds/netrounds.conf
CALL_EXECUTER_MAX_CHILDREN
:バックグラウンド ジョブを並行して実行できる数を設定します。デフォルトは20です。各テストと監視(各タスクではなく)は、バックグラウンド ジョブとして定期的に実行されます。多くのテストまたはモニターがある場合、実行中のテストとモニターの数に一致するようにこの値を設定して、これらのジョブがキューイングアップしたり、データ収集を遅らせるのを防ぐことができます。現在のキュー長は、 コマンドによってscheduled_call_latency
ncc status
戻されるパラメーターと見なすことができます。
/etc/apache2/sites-available/netrounds-ssl.conf
WSGIDaemonProcess netrounds ... processes
:Control Center GUI への HTTP リクエストを同時に処理できる HTTP リクエストの数を設定します。デフォルトは10です。要求が多いか遅い場合は、この数を増やす必要があるかもしれません。要求の処理を開始できる作業者がいない場合は、504 ゲートウェイタイムアウト応答が返されます。