質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

0回答

1133閲覧

CentOS7.4, PHP7.1, Apache2.4でメモリ肥大・PATHが見れなくなる

takenaka01

総合スコア7

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

4クリップ

投稿2018/01/05 09:12

編集2018/01/07 11:26

###前提・実現したいこと
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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/01/05 09:43

/dev 以下はディレクトリじゃないんだが・・・・。 /dev/shmを適当なところにmountをしてそのディレクトリを指定しましょう。
takenaka01

2018/01/06 07:40

ありがとうございます。初歩的な所で認識不足だったようですね。失礼しました。ご指摘の件、実施のうえ経過を見たいと思います。 (経過を見ればわかる事だとは思いますが)、Apache自体を停止させた状態でもメモリが増えていたのですが、本件とは関わるものでしょうか?
mkgrei

2018/01/07 11:00

Apacheが停止していても増えるのであれば原因は別のところにあります。どのようなdaemonが走っているのかの情報が必要な気がします。一度電源を落として起動し直した後に放置してもメモリ消費が増加するということでしょうか。
takenaka01

2018/01/07 11:10

ありがとうございます。rebootしてもメモリ消費の増加は止まらない状況です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問