###前提・実現したいこと
CentOS7.4, PHP7.1, Apache2.4環境でWebサイトを制作しています。
制作しているサイトで今まで問題無く見れていたページが、突然500エラーとなっていました。
上記解決の調査の中でメモリ肥大の現象を確認し、メモリの内容的に因果関係がありそうですが、確証には至っていないという状況です。
###試したこと
まず500エラー時にApacheのエラーログを確認すると、
failed to open stream: No such file or directory
ということで、ファイルが見れなくなっていたのですが、ファイル・設定等は変更しておらず、正常時と差分は無く、ページによっては正常に見れるものもあります。
ここからは推測ですが、メモリ肥大によるインクルードパスの崩れではないかと考えました。
現時点で上記問題との因果の程は未確定ですが、実際にメモリは逼迫しておりました。
メモリ肥大の要因を調べると、slab(dentry_cache)の肥大によるものでした。
そこで以下コマンドで、dentry_cacheをクリアすると劇的にメモリは開放されました。
echo 2 > /proc/sys/vm/drop_caches
しかしながら、上記は一時的なもので、再びメモリは1日100MB程のペースでなだらかに増加します。
当メモリの問題に関しては以下サイトに記載の内容と全く同じでしたので、同様に以下を試みましたが現象は変わりませんでした。
https://qiita.com/bezeklik/items/7e1ac9e5da39261be7bd
/etc/sysconfig/httpd
export NSS_SDB_USE_CACHE=YES
/etc/sysconfig/httpd
export TMPDIR=/dev/shm
その後、独自のcron制御や、apache自体も停止させ、2日ほど経過を見てみましたが、メモリの肥大状況に変化は見られませんでした。
dentry_cacheは、ファイル名やディレクトリの階層構造、またディレクトリ名とinode情報を関連付けのキャッシュとの事で、最初に記載したPATHの問題と因果関係にある可能性は高いように思いますが、現段階では確証には至っておりません。
お気づきの点がございましたら、ご教授ください。
1 ? Ss 0:03 /usr/lib/systemd/systemd --switched-root --system --deserialize 21 2 ? S 0:00 [kthreadd] 3 ? S 0:00 [ksoftirqd/0] 5 ? S< 0:00 [kworker/0:0H] 7 ? S 0:00 [migration/0] 8 ? S 0:00 [rcu_bh] 9 ? S 0:21 [rcu_sched] 10 ? S 0:01 [watchdog/0] 11 ? S 0:00 [watchdog/1] 12 ? S 0:00 [migration/1] 13 ? S 0:00 [ksoftirqd/1] 15 ? S< 0:00 [kworker/1:0H] 16 ? S 0:00 [watchdog/2] 17 ? S 0:00 [migration/2] 18 ? S 0:00 [ksoftirqd/2] 20 ? S< 0:00 [kworker/2:0H] 22 ? S< 0:00 [khelper] 23 ? S 0:00 [kdevtmpfs] 24 ? S< 0:00 [netns] 25 ? S 0:00 [khungtaskd] 26 ? S< 0:00 [writeback] 27 ? S< 0:00 [kintegrityd] 28 ? S< 0:00 [bioset] 29 ? S< 0:00 [kblockd] 30 ? S< 0:00 [md] 33 ? S 0:00 [kswapd0] 34 ? SN 0:00 [ksmd] 35 ? SN 0:00 [khugepaged] 36 ? S 0:00 [fsnotify_mark] 37 ? S< 0:00 [crypto] 45 ? S< 0:00 [kthrotld] 46 ? S 0:01 [kworker/u64:1] 47 ? S< 0:00 [kmpath_rdacd] 48 ? S< 0:00 [kpsmoused] 50 ? S< 0:00 [ipv6_addrconf] 69 ? S< 0:00 [deferwq] 181 ? S 0:00 [kauditd] 243 ? S< 0:00 [ata_sff] 245 ? S 0:00 [scsi_eh_0] 249 ? S< 0:00 [scsi_tmf_0] 250 ? S 0:00 [kworker/u64:2] 251 ? S 0:00 [scsi_eh_1] 252 ? S< 0:00 [scsi_tmf_1] 257 ? S 0:00 [vballoon] 264 ? S< 0:00 [kworker/1:1H] 271 ? S 0:02 [jbd2/vda1-8] 272 ? S< 0:00 [ext4-rsv-conver] 340 ? Ss 0:00 /usr/lib/systemd/systemd-journald 380 ? Ss 0:00 /usr/lib/systemd/systemd-udevd 415 ? S<sl 0:00 /sbin/auditd 447 ? Ss 0:01 /usr/lib/systemd/systemd-logind 454 ? Ssl 0:00 /usr/lib/polkit-1/polkitd --no-debug 455 ? Ss 0:02 /bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 463 ? Ss 0:00 /usr/sbin/ntpd -u ntp:ntp -g 465 ? Ss 0:00 /usr/sbin/acpid 466 ? Ssl 0:09 /usr/sbin/rsyslogd -n 467 ? Ss 0:07 /usr/sbin/irqbalance --foreground 469 ? Ss 0:00 /usr/sbin/crond -n 475 ? Ss 0:00 /usr/sbin/saslauthd -m /run/saslauthd -a pam 476 ? S 0:00 /usr/sbin/saslauthd -m /run/saslauthd -a pam 477 ? S 0:00 /usr/sbin/saslauthd -m /run/saslauthd -a pam 478 ? S 0:00 /usr/sbin/saslauthd -m /run/saslauthd -a pam 479 ? S 0:00 /usr/sbin/saslauthd -m /run/saslauthd -a pam 484 ? Ssl 0:01 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid 485 ? Ssl 0:03 /usr/sbin/NetworkManager --no-daemon 557 ? S< 0:00 [kworker/0:1H] 785 ? Ss 0:00 /usr/sbin/sshd -D 790 ? Ssl 0:26 /usr/bin/python -Es /usr/sbin/tuned -l -P 797 ? Ssl 0:00 /usr/bin/mackerel-agent supervise --root /var/lib/mackerel-agent 808 ? Ss 0:00 /usr/sbin/dovecot -F 842 ? S 0:00 dovecot/anvil 843 ? S 0:00 dovecot/log 848 ? Sl 1:05 /usr/bin/mackerel-agent --root /var/lib/mackerel-agent -child 863 ? S 0:06 /usr/local/pgsql/bin/postgres 886 ? Sl 1:39 /usr/bin/python2 -s /usr/bin/fail2ban-server -s /var/run/fail2ban/fail2ban.sock -p /var/run/fail2ban/fail2ban.pid -x -b 907 ? Ss 0:00 postgres: checkpointer process 908 ? Ss 0:02 postgres: writer process 909 ? Ss 0:02 postgres: wal writer process 910 ? Ss 0:07 postgres: autovacuum launcher process 911 ? Ss 0:15 postgres: stats collector process 955 ? Ss 0:00 /usr/libexec/postfix/master -w 957 ? S 0:00 qmgr -l -t unix -u 958 ? S 0:00 tlsmgr -l -t unix -u 973 ? S< 0:00 [kworker/2:1H] 1007 ? Ss 0:09 /usr/local/apache2/bin/httpd -k start 1010 ? S 0:00 /usr/sbin/cronolog /www/hogehoge/logs/%Y%m/error_log.%d 1028 tty1 Ss+ 0:00 /sbin/agetty --noclear tty1 linux 1031 ? Sl 0:00 /usr/local/apache2/bin/httpd -k start 1032 ? Sl 0:01 /usr/local/apache2/bin/httpd -k start 10466 ? S< 0:00 [xfsalloc] 10467 ? S< 0:00 [xfs_mru_cache] 19294 ? S 0:00 [kworker/1:0] 20761 ? R 0:00 [kworker/2:1] 20976 ? S 0:00 pickup -l -t unix -u 21015 ? S 0:00 dovecot/ssl-params 21035 ? S 0:00 [kworker/0:2] 21093 ? S 0:00 [kworker/2:2] 21207 ? S 0:00 [kworker/1:1] 21261 ? S 0:00 [kworker/0:0] 21299 ? Ds 0:00 sshd: root@pts/0 21301 pts/0 Ss 0:00 -bash 21328 pts/0 R+ 0:00 ps ax
あなたの回答
tips
プレビュー