タグ付けされた質問 「memory」

コンピューティングでは、メモリは、何らかの物理構造でアクティブに保たれているため、コンピューティングシステムの状態情報を指します。

1
/ proc / pid / smapsからプロセスのメモリ使用量に関する情報を取得する
の特定のプロセス/proc/<pid>/smaps、特定のマッピングエントリの場合: Shared_Clean Shared_Dirty Private_Clean Private_Dirty さShared_Clean+ Shared_Dirty他のプロセスと共有されているメモリの量を?共有RSSのようなものですか? 同様に、1つのプロセスでのみ使用可能なメモリ量はPrivate_Clean+ です。プライベートRSSのようなものですか?Private_Dirty PSS値はPrivateRSS +(SharedRSS /それを共有するプロセスの数)ですか? このリンクを読んだ後のいくつかの質問:LWN ここで、プロセス全体についてお話ししましょう。そのsmapsエントリは私たちが見ています。 プロセスのすべてのsmapsエントリに対してShared_Clean+ Shared_Dirty+ Private_Clean+ Private_Dirtyを実行すると、によって報告されたプロセスのRSSを取得することに気付きましたps。例えば ps -p $$ -o pid,rss すべてのの合計として私にRSS用(約)同じ値を与えるShared_Clean、Shared_Dirty、Private_Clean、Private_Dirtyエントリ内の/ proc / $$ / smaps。 しかし、プロセス全体のPSSはどうでしょうか?したがって、上記の例から、$$のPSSを取得するにはどうすればよいですか?すべてのsmapsマッピングにPSSエントリを追加して、$$のPSSに到達できますか? そして、プロセス全体のUSSはどうですか?もう一度上記の例を取り上げると、$ .. rightのすべてのsmapsエントリのPrivate_ *エントリのみを合計することで、$$でUSSに到着できると思います。 注: PSS =比例設定サイズ。 USS =一意のセットサイズ。

5
プログラムのRAM使用量を測定する
time 特定のコマンドにかかるCPU時間を把握したい場合は、すばらしいコマンドです。 プログラムとすべての子の最大RAM使用量を測定できる類似のものを探しています。できれば、使用されたメモリと未使用のメモリを区別する必要があります。たぶん、メモリ使用量の中央値(したがって、長時間実行するときに予想されるメモリ使用量)を与えることもできます。 だから私はやりたい: rammeassure my_program my_args 次のような出力を取得します。 Max memory allocated: 10233303 Bytes Max memory used: 7233303 Bytes Median memory allocation: 5233303 Bytes 私はmemusg https://gist.github.com/526585/590293d6527c91e48fcb08edb8de9fd6c88a6d82を見ましたが、それはややハックだと思います。

3
RAMの使用が制限されているユーザーを作成する方法は?
そのため、4 GB RAM + 4 GBスワップがあります。RAMとスワップが制限されたユーザーを作成したい:3 GB RAMと1 GBスワップ。そのようなことは可能ですか?RAMを制限してアプリケーションを起動し、別のユーザーを作成せずに利用可能なスワップを実行することは可能ですか(特別なアプリをインストールせず、デフォルトのDebian / CentOSサーバー構成のみを使用し、sudoを使用しないでください)? 更新: そこで、terminallを開いてulimitコマンドを入力しました。ulimit -v 1000000これは976,6Mb制限のようなものです。次に、私は電話ulimit -aし、制限が「​​オン」であることを確認しました。その後nohup、長い アプリでコンパイルして起動するbashスクリプトを開始しましたnohup ./cloud-updater-linux.sh >& /dev/null &... (制限が適用されない場合は問題ありません-大きなlibをダウンロードし、コンパイルを開始しました。) しかし、私はシェルに制限し、それから/で起動するすべてのプロセスを適用すると思いましたかulimit -v 1000000?何が間違っていたのですか?端末とそれが起動するすべてのサブプロセスをラムの使用に制限する方法は?

4
仮想アドレス空間でページサイズはどのように決定されますか?
Linuxは、すべてのアドレスが仮想アドレスであり、物理アドレスではない仮想メモリシステムを使用します。これらの仮想アドレスは、プロセッサによって物理アドレスに変換されます。 この変換を容易にするために、仮想メモリと物理メモリはページに分割されます。これらの各ページには一意の番号が付けられています。ページフレーム番号。 一部のページサイズは2 KB、4 KBなどです。しかし、このページサイズの数値はどのように決定されますか?アーキテクチャのサイズに影響されますか?たとえば、32ビットバスには4 GBのアドレス空間があります。

2
/ var / log / messagesを使用してメモリ不足をデバッグする
次のレポートがメッセージログにスローされます。 kernel: Out of memory: Kill process 9163 (mysqld) score 511 or sacrifice child kernel: Killed process 9163, UID 27, (mysqld) total-vm:2457368kB, anon-rss:816780kB, file-rss:4kB この問題がのためのものhttpdであるmysqldかどうかは関係ありませんが、どうすれば問題のpostfixデバッグを続行できますか。 PID 9163がなぜ殺されたのか、そしてLinuxがどこかで終了したPIDの履歴を保持しているかどうかについての詳細情報を得るにはどうすればよいですか。 これがメッセージログファイルで発生した場合、この問題を段階的にトラブルシューティングする方法を教えてください。 # free -m total used free shared buffers cached Mem: 1655 934 721 0 10 52 -/+ buffers/cache: 871 784 Swap: 109 …

4
grep:メモリを使い果たしました
私は非常に簡単な検索を行っていました: grep -R Milledgeville ~/Documents そして、しばらくしてからこのエラーが現れました: grep: memory exhausted どうすればこれを回避できますか? 私のシステムには10GBのRAMがあり、いくつかのアプリケーションが実行されているので、単純なgrepでメモリが不足していることに本当に驚いています。~/Documents約100GBで、あらゆる種類のファイルが含まれています。 grep -RI この問題はないかもしれませんが、バイナリファイルも検索したいです。

6
緊急時にのみスワップ領域を使用するにはどうすればよいですか?
8 GB RAMと16 GBスワップを備えたDebian(バスター)ラップトップを持っています。私は非常に長時間実行されているタスクを実行しています。これは、私のラップトップが過去6日間電源を入れたままになっていることを意味します。 これを行う間、私は定期的にラップトップをラップトップとして使用する必要があります。これは問題になりません。長時間実行されるタスクはI / Oバウンドであり、USBハードディスク上のものを処理し、RAM(<200 MB)またはCPU(<4%)をあまり消費しません。 問題は、数時間後にラップトップに戻ったとき、非常に遅くなり、正常に戻るまでに30分かかることがあるということです。これは非常に悪いので、クラッシュモニターはそれぞれのアプリケーションがフリーズしたことを示すフラグを設定し(特にブラウザーウィンドウ)、誤ってクラッシュを開始します。 システムモニターを見ると、使用されている2.5 GBの約半分がスワップにシフトされます。スワップスペース(swapoff /dev/sda8)を削除することで、これが問題であることを確認しました。スワップスペースなしでそのままにしておくと、24時間経ってもほとんど瞬時に元に戻ります。スワップを使用すると、最初の5分間は実際には6時間しか残されなかったレンガになります。私は、外出中でもメモリ使用量が3 GBを超えないことを確認しました。 swappiness(Wikipediaも参照)を10andの値に減らしてみました0が、問題は解決しません。非アクティブな状態が1日続くと、カーネルはGUI全体が不要になったと判断し、RAMから消去します(ディスクに消去します)。長時間実行されるタスクは、広大なファイルツリーを読み取り、すべてのファイルを読み取ることです。そのため、キャッシングが役立つと考えるようにカーネルが混乱している可能性があります。ただし、ファイル名が約10億個の2 TB USB HDを1回スイープするだけでは、GB RAMを追加してもパフォーマンスはあまり向上しません。これは、ハードドライブの動作が遅い安価なラップトップです。単に十分な速度でデータをRAMに読み込むことができません。 緊急時にのみスワップスペースを使用するようにLinuxに指示するにはどうすればよいですか?スワップなしで実行したくありません。予期しないことが起こり、OSが突然余分な数GBを必要とする場合、タスクを強制終了させたくないので、スワップの使用を開始したいと思います。しかし、現時点では、スワップを有効のままにすると、必要なときにラップトップを使用できなくなります。 「緊急事態」の正確な定義は議論の余地があるかもしれません。しかし、私が言いたいことを明確にするために:緊急事態は、システムをプロセスの交換または強制終了以外のオプションなしで放置することです。 緊急事態とは何ですか?- 本当に質問する必要がありますか? この質問で緊急事態を構成する可能性のあるすべてを定義することはできません。しかし、例えば、カーネルが非常にメモリにプッシュされて、OOM Killerでプロセスを強制終了し始めた場合、緊急事態になる可能性があります。カーネルがスワップを使用することでパフォーマンスを改善できると考える場合、緊急事態はありません。 最終編集: オペレーティングシステムレベルで要求したことを正確に行う回答を受け入れました。将来の読者は、アプリケーションレベルのソリューションを提供する回答にも注意してください。
41 linux  memory  swap 

1
共有ライブラリのロードとRAM使用量
Linuxが共有ライブラリを管理する方法について疑問に思っています。(実際、2009年にリリースされたDebianベースのディストリビューションである256MB RAMで実行されるMaemo Fremantleについて話しています)。 libQtCore.so.4にリンクし、そのシンボルを使用する(クラスと関数を使用する)2つの実行可能ファイルがあるとします。簡単にするために、それらをaおよびと呼びましょうb。両方の実行可能ファイルが同じライブラリにリンクすると仮定します。 最初に起動しaます。ライブラリをロードする必要があります。それは全体でロードされていますか、それとも必要な部分のみメモリにロードされていますか(各クラスを使用しないため、使用されたクラスに関するコードのみがロードされています) その後、起動しbます。aまだ実行されていると仮定します。blibQtCore.so.4にもリンクし、使用するクラスのa一部を使用しaますが、で使用されないクラスも使用します。ライブラリは、二重(別途ロードされますaと別途b)?または、すでにRAMにある同じオブジェクトを使用します。場合bの使用は新たなシンボルとaすでに実行されているRAMは、共有ライブラリの増加によって使用されていないのだろうか?(または、違いはわずかです)

3
vm.swappinessパラメーターは実際に何を制御しますか?
カーネルのドキュメントごと: This control is used to define how aggressive the kernel will swap memory pages. Higher values will increase aggressiveness, lower values decrease the amount of swap. しかし、これはちょっと曖昧です。パラメーターが最終的に制御するものを正確に把握しようとしています。カーネルがページをどれだけ積極的にスワップアウトしようとするかを調整することは知っていますが、カーネルコードのどのような意思決定プロセスが影響しますか? カーネルがスワップアウトする前にページにアクセスしなければならない期間を調整しますか?その場合、デフォルト値の60は何を表していますか?そして、1の増分/減分によってどれだけ変化しますか(式がいいでしょう)? または、アクセス頻度に基づいてページを入れ替えますか? または、他の何か?
37 linux  kernel  memory  swap 

4
メモリが不足するとシステムがハングする
eeePC 900aを持っています。ディスクとして8GBのフラッシュと1GBのRAMしかありません。インストールされているLinuxディストリビューションはArchLinuxです。 システムのメモリが不足すると、非常に応答しなくなります。TTY1への切り替えやマウスポインターの移動などを行うのに数秒/分かかります。時々、システムがフリーズしたように見えることがあります。3年前、私はそれを放っておき、今のところ何も変更されていません。 このeeePCでスワップパーティション/ファイルを作成することは避けたいと思います。ディスクがすでにそれほど小さく、また、スワップスペースに多くの書き込みを行うと、フラッシュカードの寿命が大幅に短くなるためです。さらに、スワップファイル/パーティションは、問題を明確に修正するのではなく、単に移動させるだけだと思います。 カーネルは、メモリを使い果たしたときにいくつかのランダムなアプリケーションを強制終了することになっていないのですか?なぜそれをするのに失敗するのですか? 数ヶ月/数年前、私はすでにこれをさらに調べようとしましたが、実際に機能するものは見つかりませんでした...
34 linux  memory  freeze 

5
ほとんどのメモリを使用しているプロセスを確認する方法
freeProdサーバーの1つをチェックインすると、メモリの70%が使用されていることが示されます。 total used free shared buffers cached Mem: 164923172 141171860 23751312 0 4555616 20648048 -/+ buffers/cache: 115968196 48954976 Swap: 8388600 0 8388600 しかし、どのプロセスがメモリを使用しているかを見つけられませんでした。topコマンドを試してみましたが、メモリを使用しているプロセスは1.1および5.4%しか表示されていません。 どのプロセスがメモリを使用しているかを見つけるにはどうすればよいですか? 以下は、トップコマンドの結果です。 15085 couchbas 25 0 2784m 2.4g 40m S 183.7 1.5 299597:00 beam.smp 28248 tibco 18 0 124m 100m 3440 S 20.9 0.1 2721:45 tibemsd 15334 …
33 process  memory  top 

5
Linuxコマンドを使用して使用済みメモリ(使用済みRAM)を取得する方法は?
Linuxコマンドを使用して、使用メモリ(RAM)をパーセンテージで取得しようとしています。cpanelには、特定のWebページに表示する必要がある使用済みメモリが表示されます。 フォーラムから、次のことから正しいメモリが見つかることがわかりました。 free -m 結果: -/+ buffers/cache: 492 1555 -/ + buffers / cache:正しいメモリ使用量が含まれています。この情報を解析する方法や、使用されているメモリをパーセンテージで取得する別のコマンドがあるかどうかはわかりません。
30 centos  memory  cpanel 

1
Linuxでサポート可能な最大RAMとは何ですか?
Linuxでサポート可能な最大RAMはいくつですか?ハードウェアが64ビットである/サポートしていると仮定します。すべてのLinuxディストリビューションの中で。 最大16エクサバイトになりますか、それとも192ギガバイトと思われるWindowsのように制限されていますか?
29 linux  memory 

5
Linuxにスワップをメモリに読み込ませる
Linuxカーネルは、16 GBの物理メモリのほとんどを使用するアプリケーションを実行すると、メモリからほとんどのページをスワップアウトします。アプリケーションの終了後、すべてのアクション(コマンドの入力、ワークスペースの切り替え、新しいWebページのオープンなど)が完了するまでに非常に時間がかかります。これは、関連するページを最初にスワップから読み込む必要があるためです。 Linuxカーネルに、各アプリケーションを手動でタッチ(および待機)せずに、ページをスワップから物理メモリにコピーするように指示する方法はありますか?私は多くのアプリケーションを実行しているので、待機は常に苦痛です。 swapoff -a && swapon -aシステムの応答性をよくするためによく使用しますが、これによりページのスワップがクリアされるため、次回スクリプトを実行するときにページを再度書き込む必要があります。 おそらくsysfsを使用して、スワップからすべてのページを読み取るようカーネルに指示するカーネルインターフェイスはありますか? 編集:私は確かにすべてのスワップをswapcachedにする方法を探しています。(デロバートに感謝!) [ PSserverfault.com/questions/153946/…およびserverfault.com/questions/100448/…は関連トピックですが、Linuxカーネルがスワップをクリアせずにスワップからメモリにページをコピーする方法についての質問には対応していません。
28 linux  kernel  memory  swap  sysfs 

2
MemTest86 +エラー表示に従って正しい不良RAMセクターをブラックリストに登録する方法は?
MemTest86 +(Ubuntu 13.04に含まれているバージョン)によると Failing address: 002f796c48 - 759.5 MB memmapこの領域をバイパスするには、カーネルパラメーターで何を指定する必要がありますか? 実行memtester 770MBしてみましたが、すべてが正常であると表示されるため、MemTestの表示が最初から759.5 MBのエラーを意味するようには見えません。 このMemTest指示を解釈して構成するにはmemmap? 現在、新しいRAMを購入するお金がなく、エラーは1つだけのようです。
28 linux  kernel  memory  ram 

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