利用可能なすべてのメモリをゆっくり消費するOpenSSHサーバーの奇妙な動作

利用可能なすべてのメモリをゆっくり消費するOpenSSHサーバーの奇妙な動作

クライアントがサーバーにトンネリングしてデータベースに接続できるように、pgbouncerサーバーとOpen SSHサーバーを実行しているコンピューターがあります。

これで、すべてのクライアントは約3分間接続を維持し、接続を閉じます。ご覧のとおり、下の画像は実行コマンドを示しています。

ps -o pid,user,%mem,command ax | sort -b -k3 -r | grep -o sshd | wc

短時間でsshdプロセスの数が減少するという事実は何度も強調されてきました。

 sosepe@pgbouncer:~$ ps -o pid,user,%mem,command ax | sort -b -k3 -r | grep -o sshd | wc
    158     158     790
sosepe@pgbouncer:~$ ps -o pid,user,%mem,command ax | sort -b -k3 -r | grep -o sshd | wc
    150     150     750
sosepe@pgbouncer:~$ ps -o pid,user,%mem,command ax | sort -b -k3 -r | grep -o sshd | wc
    146     146     730
sosepe@pgbouncer:~$ ps -o pid,user,%mem,command ax | sort -b -k3 -r | grep -o sshd | wc
    140     140     700
sosepe@pgbouncer:~$ ps -o pid,user,%mem,command ax | sort -b -k3 -r | grep -o sshd | wc
    140     140     700
sosepe@pgbouncer:~$ ps -o pid,user,%mem,command ax | sort -b -k3 -r | grep -o sshd | wc
    140     140     700
sosepe@pgbouncer:~$ ps -o pid,user,%mem,command ax | sort -b -k3 -r | grep -o sshd | wc
    140     140     700
sosepe@pgbouncer:~$ ps -o pid,user,%mem,command ax | sort -b -k3 -r | grep -o sshd | wc
    136     136     680
sosepe@pgbouncer:~$ ps -o pid,user,%mem,command ax | sort -b -k3 -r | grep -o sshd | wc
    132     132     660
sosepe@pgbouncer:~$ ps -o pid,user,%mem,command ax | sort -b -k3 -r | grep -o sshd | wc
    132     132     660
sosepe@pgbouncer:~$ ps -o pid,user,%mem,command ax | sort -b -k3 -r | grep -o sshd | wc
    132     132     660
sosepe@pgbouncer:~$ netstat -nt | grep :22
sosepe@pgbouncer:~$ ps -o pid,user,%mem,command ax | sort -b -k3 -r | grep -o sshd | wc
    298     298    1490
sosepe@pgbouncer:~$ ps -o pid,user,%mem,command ax | sort -b -k3 -r | grep -o sshd | wc
    324     324    1620

しかし、長い間ではありません。

つまり、数時間後にコマンドを再実行すると、実際にプロセス数が増加したことがわかります。そのうちのいくつかは実際に閉じていないからです。

sosepe@pgbouncer:~$ ps -o pid,user,%mem,command ax | sort -b -k3 -r | grep -o sshd | wc
    324     324    1620

数時間後の結果は次のとおりです。

sosepe@pgbouncer:~$ ps -o pid,user,%mem,command ax | sort -b -k3 -r | grep -o sshd | wc
   1926    1926    9630

結果は次のとおりです。

 Private  +   Shared  =  RAM used   Program

  4.0 KiB +  22.0 KiB =  26.0 KiB   agetty
132.0 KiB +  27.5 KiB = 159.5 KiB   vnstatd
128.0 KiB +  45.5 KiB = 173.5 KiB   systemd-udevd
136.0 KiB +  65.0 KiB = 201.0 KiB   cron
216.0 KiB +  33.0 KiB = 249.0 KiB   tail
112.0 KiB + 239.5 KiB = 351.5 KiB   systemd-timesyncd
504.0 KiB +  50.0 KiB = 554.0 KiB   lvmetad
192.0 KiB + 481.5 KiB = 673.5 KiB   vsftpd
908.0 KiB +  92.0 KiB =   1.0 MiB   sudo
916.0 KiB + 103.0 KiB =   1.0 MiB   pgbouncer
644.0 KiB + 604.0 KiB =   1.2 MiB   vmtoolsd
  1.3 MiB +  47.0 KiB =   1.3 MiB   rsyslogd
  1.2 MiB + 247.0 KiB =   1.5 MiB   CloudEndure_Age (4)
  1.4 MiB +  81.0 KiB =   1.5 MiB   dbus-daemon
  1.6 MiB + 331.0 KiB =   1.9 MiB   su (4)
  1.2 MiB + 892.0 KiB =   2.1 MiB   VGAuthService
  1.7 MiB + 582.0 KiB =   2.2 MiB   collectd
  2.7 MiB + 268.0 KiB =   3.0 MiB   systemd-logind
  2.9 MiB +  63.5 KiB =   3.0 MiB   bash
  4.3 MiB + 231.5 KiB =   4.5 MiB   systemd-journald
  2.7 MiB +   3.6 MiB =   6.2 MiB   php-fpm7.3 (3)
  4.8 MiB +   1.8 MiB =   6.6 MiB   (sd-pam) (3)
  6.5 MiB +   3.3 MiB =   9.8 MiB   systemd (4)
  5.8 MiB +   4.1 MiB =   9.9 MiB   php-fpm7.2 (3)
  5.7 MiB +   6.5 MiB =  12.2 MiB   php-fpm5.6 (3)
 16.1 MiB + 153.0 KiB =  16.3 MiB   run_linux_migration_scripts_periodically (2)
 17.2 MiB + 166.5 KiB =  17.3 MiB   update_onprem_volumes (2)
 18.5 MiB + 145.5 KiB =  18.6 MiB   tailer (2)
 11.8 MiB +  13.1 MiB =  24.9 MiB   apache2 (11)
159.3 MiB + 180.0 KiB = 159.5 MiB   java
741.6 MiB +   2.1 GiB =   2.8 GiB   sshd (4469)
---------------------------------
                          3.1 GiB
=================================

SSHDはほぼ3GBのメモリを消費し、これはマシンが再起動されるまで続きます。

問題がどこにあるかについての手がかりはありますか?

ありがとうございます!

ポリスチレン

これはconfファイルです:

Port 10110

Protocol 1,2

HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
UsePrivilegeSeparation yes

SyslogFacility AUTHPRIV
LogLevel INFO

PermitRootLogin no
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes

MACs hmac-md5,hmac-sha1,[email protected],hmac-ripemd160
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc

[email protected],diffie-hellman-group-exchange-sha256,diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521
KexAlgorithms [email protected],diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521

PermitEmptyPasswords no
PasswordAuthentication yes

ChallengeResponseAuthentication no

UsePAM yes

GatewayPorts yes

ClientAliveInterval 600

PermitTunnel yes

MaxSessions 50

AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS

Subsystem   sftp    /usr/libexec/openssh/sftp-server

ベストアンサー1

Oracle LinuxおよびOracle Databaseを実行しているサーバーで同じ動作を実行し、sshdサービスがメモリ不足のためにサーバーを再起動するまで、すべてのメモリを消費していることを確認しました。これは、Linux用のCISベンチマークを実装したときにのみ開始されたと思います。私たちのシナリオでは、Oracleデータベースインスタンスを起動すると、sshdサービスはメモリの使用を開始します。現在の根本原因が見つかるまでsshdサービスを無効にしました。私は認証のためにPAMを無効にしようと努力しましたが、役に立ちませんでした。誰かがこの問題の原因を探してください。

おすすめ記事