Kernelパラメータの変更


1. nofile (max number of open files)
  • でサポートするオープンファイル数
  • 設定値が低すぎる->ファイルオープンエラー、メモリ割り当て失敗、接続設定エラー
    デフォルト:1024
    推奨値:8192
    ulimit -n 8192
    ulimit -a
  • 2. nproc (max user processes)
  • ユーザーが作成できる最大プロセス数(プロセス数+スレッド数)
  • に設定されている場合->ネイティブスレッドを作成できませんエラー
    デフォルト:1024
    推奨値:8192以上
    ulimit -u 8192
    ulimit -a
  • 3.backlog接続
  • 接続要求を受信した高割合接続に失敗しました
    echo 3000 >/proc/sys/net/core/netdev_max_backlog
    echo 3000 >/proc/sys/net/core/somaxconn
  • 4. timeout_timewait
  • TCP/IPは、接続を閉じるリソースを再利用する前に経過する時間
  • を必要とする.
  • timewait:閉じる間隔と閉じる間隔
  • の利点
    -新しい接続を設定するよりも、クライアントとサーバへの再接続のコストが低い
    -接続を閉じる方が高速で、新しい接続により多くのリソースを提供する
  • デフォルト:75秒
    推奨値:15秒
    echo 30 >/proc/sys/net/ipv4/tcp_fin_timeout
    5. TCP_KEEPALIVE_INTERVAL
  • アクティブ状態継続応答が受信場合、TCP/IP上でアクティブ状態継続伝送を繰り返す周波数は
  • であると判定する.
  • が失われたかどうかを調べる時間を減らす必要がある場合、
  • を減らす.
  • tcp keepalive probes:連続アクティビティ持続伝送数が値を超えると、接続が切断されます.
    -応答時間が長くなると、->probes値は
  • 増加し、オーバーヘッドが減少します.
    デフォルト:75秒
    推奨値:15秒
    echo 15 >/proc/sys/net/ipv4/tcp_keepalive_intvl
    6. TCP_KEEPALIVE_PROBES
  • 受信確認されていない活動継続メッセージの再送信回数
  • .
  • のネットワーク品質が低い場合、有効な通信
  • を維持するために->値を増加することができる.
    デフォルト:9秒
    推奨値:5秒
    echo 5 >/proc/sys/net/ipv4/tcp_keepalive_probes
    7. TCP_KEEPALIVE_TIME
  • TCP/IPは、スタンバイ接続が元の状態のままであるか否かを検証しようとする周波数制御
  • を試みる.
  • 失われたターゲットの感度を低減->値
  • のオーバーヘッドを削減->非アクティブな接続を維持することは共通です.失われたターゲットが共通でない場合、
  • デフォルト:7200秒
    推奨値:1200秒
    echo 10 >/proc/sys/net/ipv4/tcp_keepalive_time
    8.configファイルを修正して永続的に適用する
    /etc/security/limits.conf
    # nofile tunning - max number of open files
    * soft nofile 65536
    * hard nofile 65536
    
    # nproc tunning - max user processes
    [user명] hard nproc 65536
    [user명] soft nproc 65536
    
    /etc/sysctl.conf
    #tcp tunning
    net.ipv4.tcp_fin_timeout = 30
    net.core.netdev_max_backing = 3000
    net.core.somaxconn = 3000
    net.ipv4.tcp_keepalive_intvl = 15
    net.ipv4.tcp_keepalive_probes = 5
    net.ipv4.tcp_keepalive_time = 1200
    
    적용: sysctl -p
    확인: sysctl -a