PHPプロセスのメモリ使用量

フィクション:

概要


短い推奨事項(詳細な情報から、回答を参照)

メモリリークを回避するには、次の方法があります。

  1. 変数が役に立たなくなったときにすぐに変数を設定解除する
  2. xdebug使用して、関数によるメモリ消費の詳細なレポートを作成し、メモリリークを見つけることができます
  3. あなたが設定できるのmemory_limitをダミーのメモリ割り当てを避けるために(で5 MBまでなど)

質問

ライブラリと変数を除いて、どのphpがメモリを使用できるのですか?次のコードを使用して、変数とその約3Mbで使用されるメモリを監視します。

$vars = array_keys(get_defined_vars());
        $cnt_vars = count($vars);
        $allsize = 0;
        for ($j = 0; $j < $cnt_vars; $j++) {

            try
            {
                $size = @serialize($$vars[$j]);
                $size = strlen($size);
            }
            catch(Exception $e){
                $str = json_encode($$vars[$j]);
                $str = str_replace(array('{"','"}','":"','":'), '', $str);
                $size = strlen($str);
            }
            $vars[$j] = array(
                'size' => $size,
                'name' => $vars[$j]
            );
            $allsize += $size;
        }

とライブラリは〜18Mb(libcurlなど)を必要としますので、合計21Mbですが、

pmap -x(プロセス)は、総メモリ消費量がkBであることを示しています:314028 RSS:74704ダーティ:59672

したがって、実際の総消費量は約74Mbです。また、pmapに[anon]マッピングのある大きなブロックがいくつかあります。このブロックを使用しているPHPは何ですか。

PHPバージョン:5.5.9-1ubuntu4.14 PHP拡張:

root@webdep:~# php -m
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
curl
date
dba
dom
ereg
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
json
libxml
mbstring
mcrypt
mhash
openssl
pcntl
pcre
PDO
pdo_pgsql
pgsql
Phar
posix
readline
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xml
xmlreader
xmlwriter
Zend OPcache
zip
zlib

[Zend Modules]
Zend OPcache
グリース:

注:これは正確には答えではありませんが、OPによって要求された情報ですが、コメントフィールドはこれには短すぎます...これらは、この種の問題をデバッグするためのツールの詳細です。

Xdebugのドキュメントはかなり包括的です。ドキュメントをここにコピーすることで、Xdebugのドキュメントを私ができるよりもはるかに上手に使用する方法がわかるはずです。あなたが与えたスクリプトは少しあいまいなので、私は自分でトレースをしませんでしたが、それはメモリ使用量の行ごとの差分を与えます。

基本的xdebug.show_mem_delta1、Xdebugを有効にてに設定、関数トレースを生成します。これをテキストエディターで開いて、メモリリークの原因となっている部分を正確に確認できます。

次に、初期(または中間位置)の合計メモリーを比較して、実際のメモリー使用量とどの程度異なるかを確認できます。

TRACE START [2007-05-06 14:37:26]
    0.0003     114112  +114112   -> {main}() ../trace.php:0

ここで総メモリはになり114112ます。

違いが本当に大きい場合、shell_exec()すべての行の間で実際のメモリ使用量を取得するようなものを使用してそれを出力し、その出力をXdebugのメモリ出力と比較して、違いがどこで発生しているかを確認できます。

違いがスクリプトの最初の行と異なる場合、原因はPHPの拡張である可能性があります。php -m魚のような拡張があるかどうか確認します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Cでの現在のプロセスのメモリ使用量

分類Dev

PHPプロセスのメモリ使用量を最適化する方法は?

分類Dev

プロセスの実際のメモリ使用量

分類Dev

Cでの子プロセスのメモリ使用量

分類Dev

Linux / Unixプロセスのピークメモリ使用量

分類Dev

プロセスごとのメモリ使用量

分類Dev

Linuxでのプロセスメモリ使用量

分類Dev

Mysqlのメモリ使用量とプロセス

分類Dev

Linuxの単一プロセスのCPU使用量とメモリ使用量を取得しますか?

分類Dev

Linuxでのプロセスのメモリ使用量の測定

分類Dev

MacOSでのプロセスごとのメモリ使用量の計算

分類Dev

JVMプロセスとJVMヒープのメモリ使用量

分類Dev

Javaプロセスの常駐メモリ使用量(RSS)の増加

分類Dev

単一のLinuxプロセスのメモリ使用量を制限する

分類Dev

非常に短いプロセスの最大メモリ使用量の決定

分類Dev

C#で別のプロセスのメモリ使用量を取得する

分類Dev

プロセスメモリ使用量を取得する方法WINAPI

分類Dev

プロセスなしでメモリ使用量が増加

分類Dev

Pythonプロセス内のメモリ使用量を制限する方法

分類Dev

ネイティブプロセスでのJavaメモリ使用量

分類Dev

OS X / macOSプロセスのメモリ使用量を取得する方法

分類Dev

プロセスのメモリ使用量を%で取得します

分類Dev

メモリ使用量によるプロセスの並べ替え

分類Dev

子プロセスのCPUとメモリ使用量を見つける方法

分類Dev

Ubuntuプロセスの高いメモリ使用量(ほぼ99%)

分類Dev

プロセス リストにメモリ使用量がありません

分類Dev

C#Winformsアプリでの合計プロセスメモリ使用量の矛盾したレポート

分類Dev

特定のプロセスのメモリ使用量(Linux procファイルシステムを使用)

分類Dev

ユーザーごとのプロセスのCPU、ディスク、およびメモリの使用量

Related 関連記事

  1. 1

    Cでの現在のプロセスのメモリ使用量

  2. 2

    PHPプロセスのメモリ使用量を最適化する方法は?

  3. 3

    プロセスの実際のメモリ使用量

  4. 4

    Cでの子プロセスのメモリ使用量

  5. 5

    Linux / Unixプロセスのピークメモリ使用量

  6. 6

    プロセスごとのメモリ使用量

  7. 7

    Linuxでのプロセスメモリ使用量

  8. 8

    Mysqlのメモリ使用量とプロセス

  9. 9

    Linuxの単一プロセスのCPU使用量とメモリ使用量を取得しますか?

  10. 10

    Linuxでのプロセスのメモリ使用量の測定

  11. 11

    MacOSでのプロセスごとのメモリ使用量の計算

  12. 12

    JVMプロセスとJVMヒープのメモリ使用量

  13. 13

    Javaプロセスの常駐メモリ使用量(RSS)の増加

  14. 14

    単一のLinuxプロセスのメモリ使用量を制限する

  15. 15

    非常に短いプロセスの最大メモリ使用量の決定

  16. 16

    C#で別のプロセスのメモリ使用量を取得する

  17. 17

    プロセスメモリ使用量を取得する方法WINAPI

  18. 18

    プロセスなしでメモリ使用量が増加

  19. 19

    Pythonプロセス内のメモリ使用量を制限する方法

  20. 20

    ネイティブプロセスでのJavaメモリ使用量

  21. 21

    OS X / macOSプロセスのメモリ使用量を取得する方法

  22. 22

    プロセスのメモリ使用量を%で取得します

  23. 23

    メモリ使用量によるプロセスの並べ替え

  24. 24

    子プロセスのCPUとメモリ使用量を見つける方法

  25. 25

    Ubuntuプロセスの高いメモリ使用量(ほぼ99%)

  26. 26

    プロセス リストにメモリ使用量がありません

  27. 27

    C#Winformsアプリでの合計プロセスメモリ使用量の矛盾したレポート

  28. 28

    特定のプロセスのメモリ使用量(Linux procファイルシステムを使用)

  29. 29

    ユーザーごとのプロセスのCPU、ディスク、およびメモリの使用量

ホットタグ

アーカイブ