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

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

ただいまの
回答率

90.50%

  • PHP

    20357questions

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

  • Linux

    3779questions

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

  • CentOS

    2710questions

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

  • Apache

    1819questions

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

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

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 4
  • VIEW 523

takenaka01

score 2

前提・実現したいこと

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
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • asahina1979

    2018/01/05 18:43

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

    キャンセル

  • takenaka01

    2018/01/06 16:40

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

    キャンセル

  • mkgrei

    2018/01/07 20:00

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

    キャンセル

  • takenaka01

    2018/01/07 20:10

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

    キャンセル

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

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

  • ただいまの回答率 90.50%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • PHP

    20357questions

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

  • Linux

    3779questions

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

  • CentOS

    2710questions

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

  • Apache

    1819questions

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