この「メモリを割り当てることができません」というエラーが頻繁に表示されるのはなぜですか?


29

Gnome-ClassicでUbuntu 12.10を使用しています。このエラーは頻繁に発生し、大小のほとんどすべてのプログラムで発生します。それらを開こうとすると、起動しませんCould not launch 'Program' - Failed to fork child process (Cannot allocate memory)。代わりに、というエラーメッセージが表示されます。これは、ここ数週間以内に問題になりました。

メモリを割り当てることができません

このエラーを引き起こすプログラム間の共通点を見分けることはできません。時間の問題のようです。1日から数日間、コンピューターをしばらく実行した後、新しいプログラムを起動できないようです。

このエラーを防ぐ唯一の方法は、コンピューターを再起動することです。

このエラーが発生するのはなぜですか?また、エラーが発生しないようにするにはどうすればよいですか?


GRUBメニューから利用可能なmemtestを実行しましたが、エラーは報告されていないので、これはハードウェア障害ではないと思います。

私も走りましたがsudo apt-get check、エラーは見つかりませんでした。

要求されたコマンドライン出力を次に示します。

$ free -m
             total       used       free     shared    buffers     cached
Mem:          3945       3753        191          0        181        475
-/+ buffers/cache:       3096        848
Swap:         3813         60       3753

$ swapon -s
Filename                Type        Size    Used    Priority
/dev/sda6                               partition   3905532 61648   -1

$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 31421
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 31421
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

これはps --sort -rss -eo rss,pid,command | headエラーが現れ始めた後の出力です:

$ ps --sort -rss -eo rss,pid,command | head
  RSS   PID COMMAND
1963400 2953 gnome-panel
155496 4029 banshee /usr/lib/banshee/Banshee.exe --redirect-log --play-enqueued
104944 15765 /opt/google/chrome/chrome --type=renderer --lang=en-US --force-fieldtrials=ForceCompositingMode/disable/GlobalSdch/global_enable_sdch/InfiniteCache/No/OmniboxDisallowInlineHQP/Standard/OmniboxHUPCreateShorterMatch/Standard/OmniboxHUPCullRedirects/Standard/OmniboxSearchSuggestTrialStarted2012Q4/2/OneClickSignIn/Standard/Prerender/PrerenderEnabled/SBInterstitial/V2/SpdyCwnd/cwndMin10/SpeculativePrefetching/Disabled/Test0PercentDefault/group_01/UMA-Dynamic-Binary-Uniformity-Trial/default/UMA-Session-Randomized-Uniformity-Trial-5-Percent/default/UMA-Uniformity-Trial-1-Percent/group_09/UMA-Uniformity-Trial-10-Percent/group_08/UMA-Uniformity-Trial-20-Percent/group_03/UMA-Uniformity-Trial-5-Percent/group_06/UMA-Uniformity-Trial-50-Percent/group_01/WarmSocketImpact/last_accessed_socket/ --enable-crash-reporter=ECE9000094D279FD3B14B35A74BF72CC,Ubuntu 12.10 --renderer-print-preview --disable-accelerated-2d-canvas --disable-accelerated-video-decode --channel=15654.5.89177240
78164 15654 /opt/google/chrome/chrome       
74912 19890 /usr/bin/python /usr/share/oneconf/oneconf-service
65476 12419 /usr/bin/perl /usr/bin/shutter
61096 19626 /usr/bin/python3.2 /usr/sbin/aptd
57832 15708 /opt/google/chrome/chrome --type=renderer --lang=en-US --force-fieldtrials=ForceCompositingMode/disable/GlobalSdch/global_enable_sdch/InfiniteCache/No/OmniboxDisallowInlineHQP/Standard/OmniboxHUPCreateShorterMatch/Standard/OmniboxHUPCullRedirects/Standard/OmniboxSearchSuggestTrialStarted2012Q4/2/OneClickSignIn/Standard/Prerender/PrerenderEnabled/SBInterstitial/V2/SpdyCwnd/cwndMin10/SpeculativePrefetching/Disabled/Test0PercentDefault/group_01/UMA-Dynamic-Binary-Uniformity-Trial/default/UMA-Session-Randomized-Uniformity-Trial-5-Percent/default/UMA-Uniformity-Trial-1-Percent/group_09/UMA-Uniformity-Trial-10-Percent/group_08/UMA-Uniformity-Trial-20-Percent/group_03/UMA-Uniformity-Trial-5-Percent/group_06/UMA-Uniformity-Trial-50-Percent/group_01/WarmSocketImpact/last_accessed_socket/ --enable-crash-reporter=ECE9000094D279FD3B14B35A74BF72CC,Ubuntu 12.10 --extension-process --renderer-print-preview --disable-accelerated-2d-canvas --disable-accelerated-video-decode --channel=15654.2.1555888673
42108  3030 /var/lib/dropbox/.dropbox-dist/dropbox

コメントと回答の提案に基づいて、問題はGnomeパネルまたはそのアプレットにある可能性があります。実行しているアプレットは次のとおりです。

パネルアプレット

アプレットはIndicator Applet 12.10.1System Monitor 3.5.92、および「通知領域」。および「日付と時刻」、どちらのバージョン番号にもアクセスできません。

以下に、さらにリクエストされたコマンドライン出力を示します。

$ df -h
Filesystem                             Size  Used Avail Use% Mounted on
/dev/sda5                               19G   12G  6.4G  64% /
udev                                   2.0G  4.0K  2.0G   1% /dev
tmpfs                                  790M  1.1M  789M   1% /run
none                                   5.0M     0  5.0M   0% /run/lock
none                                   2.0G   84K  2.0G   1% /run/shm
none                                   100M     0  100M   0% /run/user
/dev/sda7                              384G  306G   59G  84% /home
mythbuntu@192.168.0.4:/home/mythbuntu  437G  360G   55G  87% /home/dave/Mythbuntu
$ sudo du -csh /var/log
15M /var/log
15M total

わかりました、私はいくつかの「次のステップ」で私の答えを下に追加しました。
リーランドクリスティー

どれくらい走りましたmemtestか?多くの場合、エラーは後のテストでのみ表示されます。
ガントベルト

@guntbert:memtest画面の下部に、すべてのテストが完了したというメッセージが表示されるまで実行しました。
質問者

[OK]を、私はいくつかの「次のステップ」でもう一度私の答えを追加しました。
リーランドクリスティー

1
@AlistairBuxton:うーん... 7時間後、時刻/日付アプレットがパネルに戻って、メモリの増加はないようです。ただし、1つ異なるのは、天気表示がないことです。時刻/日付アプレットには、天気を表示するオプションがありますが、選択しても天気アイコンは表示されません。これは奇妙に思え、問題が時刻/日付/天気アプリ内の天気関数に特に関連していることを確認するかもしれません。
質問者

回答:


33

一部のプロセスがメモリをリークしています。これがどのプロセスであるかを知るには、次を実行します

ps --sort -rss -eo rss,pid,command | head

コマンドへの出力を質問に追加しました。エラーの取得を開始した後、この出力をキャプチャしました。
質問者

ほとんどの場合、問題は、使用頻度の低いインジケーターの1つ、たとえば丸のこ刃のように見える左側のインジケーターまたは天気インジケーターにあります。これらを順に削除して、問題が解決するかどうかを確認します。
jdthood

天気予報だったことがわかりました。OPの回答を参照してください。
jdthood

19

GRUBブートメニューで提供される組み込みユーティリティを使用してRAMをテストすることでトラブルシューティングプロセスを開始し、問題の原因としての「不良RAM」を排除することをお勧めします。

記憶力試験 記憶力試験

Memtest86 + Memtest86 +

次に、sudo apt-get checkを使用して端末の依存関係が壊れていないかシステムを確認し、エラーが見つかった場合は、コマンドをsudo apt-get check -fとして再実行して修正します。

よろしければ、これらの手順を試して、ここに結果を報告してください。

リーランド


こんにちはデイブ、

それでは、問題の原因としてハードウェアを除外しました。

次に、コンピューターのメモリ使用量とプロセス設定を調べてみましょう。端末プロンプトから次のコマンドを実行します。

空きメモリと使用済みメモリの量を表示する

無料-m

スワップ使用状況の要約を表示する

swapon -s

ユーザープロセスのリソース制限を表示する

ulimit -a

以下のスクリーンショットは、10.0LTSのクリーンインストールからのものです。最初と2番目の黄色の丸で囲まれた項目の注意事項は、「使用済み」列にあり、オペレーティングシステムが使用できるメモリとスワップスペースを表示します。つまり、すべて使用されているわけではありません。

下部の黄色の丸で囲まれた項目には、ユーザープロセスの数、つまりオペレーティングシステムがユーザーに実行を許可するgFTPやその他のアプリケーションの数に制限はありません。

よろしければ、これらの手順を試して、ここに結果を報告してください。

リーランド

メモリ使用量とプロセスリソースの制限


こんにちはデイブ、

ps --sort -rss -eo rss、pid、command |から返された結果 あなたが投稿したヘッドは、少し珍しいと思われるおおよそ1.8GBのメモリを使用するgnome-panelプロセスを示しています。これは、デスクトップ環境が使用するメモリが多いようです。

下のスクリーンショットの丸で囲まれたコマンドを実行して、gnome-panelプロセスが使用しているメモリの内訳を取得し、すべてがどこに向かっているのかを確認できます。

比較のために、仮想マシンのgnome-panelプロセスは48MBのRAMを使用しています-ただし、これらのスクリーンショットの10.04マシンは、自分のデスクトップではなく、テスト専用の仮想マシンです。

gnome-panelプロセスからのpmap

そのため、次のステップは、Gnomeデスクトップ環境で問題を「何か」に切り分けることです。

これをテストするには、Ubuntu Software CentreにあるKDE plasmaワークスペースをインストールしてみてください。

kde-plasmaデスクトップ環境

インストールしたら、コンピュータを再起動し、Gnomeの代わりにKDEセッションでログインし、アプリケーションを可能な限り実行して(デスクトップはまったく異なります)、「メモリを割り当てられません」エラーがここで繰り返されるかどうかを確認します。

簡単に言うと、Gnome環境で行ったのと同じCLI "テスト"をKDE環境で実行し、2つの間のコンピューターの動作を調べて結果を比較することができます。

KDEでは、探しているコンソールアプリケーションはxtermであり、メインメニューの[検索]ダイアログから見つけることができます。

プラズマデスクトップ用のxterm pidとpmap

ここで少し自信をつけて、問題を切り分けるための正しい軌道に乗っていると思います。

リーランド


お返事ありがとうございます。memtestとapt-getあなたが提案したコマンドの両方を実行しましたが、どちらもエラーを報告しませんでした。それに応じて質問を更新しました。
質問者

私はあなたの質問にあなたが要求したコマンドの出力を追加しました。私が注意している唯一のことは、その下max user processesunlimitedあなたのものが言うように言わないということです。鉱山には番号があり31421ます。
質問者

1
こんにちはデイブ、週末までにまたフォローアップできることをお知らせします。私の仕事は夕方まで忙しいので、私はここにあなたに丁寧なメモを落として、私が消えていないことを知らせたいと思いました。リーランド
リーランドクリスティー

ああ、ところで、最大ユーザープロセスの設定を1024まで下げてみましたが、この方法でエラーを再現することはできませんでした。
リーランドクリスティー

KDEデスクトップをインストールしましたが、現在エラーが表示されるまで待っていますpmap。コマンドを実行して、その出力をここに投稿します。また、少し検索を行ったところ、gnome-panelでメモリリークが発生していることがわかっているため、疑わしいと思われます。
質問者

3

過去数日間にわたってオンとオフを切り替えて実験した結果、問題は時刻と日付のアプレットの天気インジケーター部分のメモリリークであったと確信しています。天気が表示されているとき、メモリ使用量は時間とともに増加します。天気が表示されていない場合、メモリは増加しません。

これは報告されるべき天気インジケーターのバグだと思いますが、Launchpadでバグを報告することは私にとって着手するプロセスを非常に複雑にします。


マシンでターミナルを開き、「apport-bug」を実行します。これにより、情報が求められ、バグレポートが提出されます。
jdthood

2
@jdthood:それがいかに簡単かという理論です。現実には、オプションの最初の画面は私の問題を説明しておらず、「その他」のオプションは単にパッケージ名が必要だと言ってから終了します。これに似てます。
質問者

ブラウザでbugs.launchpad.net/ubuntu/+source/indicator-weatherを開き、[バグを報告]をクリックして指示に従います。レポートに割り当てられた番号がわかったら、「apport-collect <バグ番号>」を実行して、影響を受けるマシンに関する関連情報をアップロードします。
jdthood

1

Ruby on RailsとDigital Oceanを使用してこの問題が発生している場合は、RAMが少なすぎる可能性があります。RAMを512MBから1GBアップしてみてください。これで修正されました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.