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

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

3
プロセスのメモリ消費に何らかのソフト制限を課すことは可能ですか?
それはそれほど珍しい問題ではないと思います:1つのプロセスが大量のメモリを割り当てます(メモリリークのバグが原因であるか、実行不可能なほど大きな入力ファイルを処理しようとしたためなど)。RAMがいっぱいになり、ある時点でLinuxはスワップに切り替える必要があります。まあ、これが最後の手段になる場合もあります。高額な計算を行っている場合、最後の方でRAMが不足してもデータを失いたくありません。 ただし、(私の経験では)かなり頻繁に、メモリ消費は不正な、おそらくバグのあるプロセスによって制限されていません。つまり、スワップするために移動する緊急性の低いデータで終わるだけでなく、OSがデータのロードをパニック状態でスワップすることを余儀なくされています。そして残念なことに、これは問題のあるプロセスを大幅に中断するだけでなく、システム全体をほぼ停止状態にする可能性があります(SSDを搭載したマシンでは、それほど悪くはありませんが、OTOHでは、ギガバイトやギガバイトのごみデータを書き込むかどうか心配になります。長期的にはフラッシュセルに害を与えます)。問題に気づき、手動でプロセスを強制終了するまで(実際に仮想端末にログインするまでに数分かかりました!)、実行中のセッションの半分がスワップ状態になり、システムがスムーズに実行されるまでしばらく待つ必要があります再び。 この問題に対するドラコニックな解決策が1つあります。それは、ハードメモリー制限を強制することです。しかし、これをシステム全体で実行すると、まだ必要ulimitなプロセスが強制終了されることがあります。問題のプロセスを開始する前に手動で実行する必要がある場合は、まあ、手遅れになるまで忘れがちです。 私が幸せになる可能性のある種類の解決策: プロセスが特定のメモリ使用量を超えた場合、システムの残りの部分が応答し続けるように、人為的に調整されます。 特定のメモリ使用量を超えるプロセスがある場合、そのプロセスはSIGSTOP停止しているため、次に何をすべきかを理解する時間があります。 プロセスがRAMの制限に近づくと、大きなスワッピングが始まる前に警告が表示されます。 そのような動作または類似のものを取得する方法はありますか?
10 linux  memory  swap 

1
スラブに割り当てられた再利用不可能なメモリは、使用済みまたは使用可能なキャッシュと見なされますか?
/ proc / meminfoを評価した後、次の情報が表示されます。 $cat /proc/meminfo MemTotal: 197852592 kB MemFree: 64755992 kB MemAvailable: 65655112 kB Buffers: 4388 kB Cached: 759952 kB SwapCached: 0 kB Active: 649472 kB Inactive: 308340 kB Active(anon): 193840 kB Inactive(anon): 25316 kB Active(file): 455632 kB Inactive(file): 283024 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 4095932 …

3
調査した後も、RAMの使用状況の監視について混乱している
私は通り抜けたこの記事あなたのRAMの使用状況を確認するためのさまざまな方法を説明し、。ただし、さまざまな方法を調整することはできず、どちらが正しいのかわかりません。 初めてログインすると、次のような画面が表示されます。 System information as of Sun Apr 28 21:46:58 UTC 2013 System load: 0.0 Processes: 76 Usage of /: 15.6% of 7.87GB Users logged in: 1 Memory usage: 41% IP address for eth0: Swap usage: 0% これは、私がRAMの41%を使用していることを示唆しています。これは、サーバーがあまり機能していないため、かなり高いようです。それとも、その数字はRAM以外のものを指しているのですか? 次に私はfree -m方法を試します: ubuntu@ip-:~$ free -m total used free shared buffers cached Mem: …
10 linux  memory 

1
ELF実行可能ファイルのどの部分がメモリに読み込まれますか?
私がすでに知っていること: ELF実行可能ファイルにはいくつかのセクションがあり、.textセクションと.dataセクションはプログラムの主要な部分であるため、メモリにロードされます。しかし、プログラムが機能するためには、特に動的にリンクされている場合、より多くの情報が必要です。 私が興味を持っているのは、.plt、.got、.dynamic、.dynsym、.dynstrなどのセクションです。関数とアドレスのリンクを担当するELFの部分。 私がこれまでに理解できたことから、.symtabや.strtabなどのものがメモリにロードされない(またはとどまらない)ことです。しかし、リンカは.dynsymと.dynstrを使用していますか?彼らは記憶に残っていますか?プログラムコードからそれらにアクセスできますか? そして、カーネルメモリに常駐する実行可能ファイルの部分はありますか? これに対する私の関心は主に法医学ですが、このトピックに関する情報があれば役立ちます。これらのテーブルと動的リンクについて私が読んだリソースはより高レベルであり、それらは動作を説明するだけであり、メモリの内容について実用的なものは何もありません。 質問について不明な点がある場合はお知らせください。


2
vm.overcommit_ratioの残りのメモリはどこに行きますか?
ここで説明するようvm.overcommit_memoryに2、に設定してメモリのオーバーコミットを無効にすると、デフォルトで、システムはswap +物理メモリの50%の次元までメモリを割り当てることができます。 vm.overcommit_ratioパラメータを変更することで比率を変更できます。80%に設定したとすると、物理メモリの80%が使用される可能性があります。 私の質問は: 残りの20%でシステムは何をしますか? そもそもなぜこのパラメータが必要なのですか? 常に100%に設定すべきではないのはなぜですか?


2
低RAM環境で最適化されたZFSは実現可能ですか?
私は現在ファイルサーバーをセットアップしており、実際にデータドライブをセットアップするようになりました。システムには4つのドライブ(1つのOSディスク、3つのデータディスク)があります。OSディスクはext4としてフォーマットされており、ZFSプールに追加されません(ZFSを実行することを選択した場合)。私の主な関心事は、データの整合性とデータ損失の最小リスクです(BIOSでドライブキャッシュが無効になっています)。このZFSは、Linuxの安定バージョン(正しい?)があり、ハードドライブが同じサイズである必要がないデータの複製、プーリング、およびraidzをサポートしているため、最適な候補のようです。 しかし、ここに私の問題があります。サーバーに搭載されているRAMは2GBのみで、近い将来これをアップグレードすることはできません。現実的には、他のすべてのサービスをインストールした後、実際にZFSにアクセスできるのは1.5のみです。最大で約10のクライアントが一度にそれを使用します(平均で4に近い)。これは安全と見なすには低すぎますか? 私が理解していることから、ZFSはRAMの少ない状況でクラッシュし、プールを使用する可能性があります。スワップがこの問題を軽減するのに役立つかどうかの矛盾する意見を聞きました(20 GBのスワップ専用ドライブがあります)。RAMがほとんどないZFSでデータ損失が発生した人はいますか?それを防ぐためにどのような最適化を行いましたか? 上記を念頭に置いて、ackサイズを減らして少し削減しても、ZFSを実行することは可能ですか?それともリスクが高すぎますか? システム仕様:2GB RAM 20GBスワップドライブOS、Debian 7、最小インストール、FTP、およびXBMC、DNLA(RAM要件を理解するため)。ストレージサーバーと他のデバイスへの音楽メディアストリーミングに使用されます。
10 linux  memory  zfs 

1
Linuxでの「不足している」メモリ使用量の追跡
Arch 3.6.7 x86_64カーネルでは、システムのメモリ使用量を計算しようとしています。これを見ると、穴が空いているように見えます(使用済みメモリの計算では、の使用法)。 これは、新しく起動したシステムです。systemdとsshd以外はあまり実行せず、シンプルに保つ $ ps aux | sort -n -k6 ... root 316 0.0 0.0 7884 812 tty1 Ss+ 14:37 0:00 /sbin/agetty --noclear tty1 38400 matt 682 0.0 0.0 24528 820 pts/0 S+ 15:09 0:00 sort -n -k6 dbus 309 0.0 0.0 17280 1284 ? Ss 14:37 0:00 /usr/bin/dbus-daemon …

2
アプリケーションのメモリ使用量を制限するには?
私はこの問題についての質問を2時間読んでいましたが、それでも誤解があります。 私はこのプロセスを持っています: USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1452 0.4 1.8 1397012 19308 ? Sl 04:23 3:48 ./transaction_server これは19.3Mb、システムメモリ1.8%全体のシステム常駐メモリ(私はスワップファイルがない)の使用を示してい1GBます。仮想サイズは1.39GB?!?です。私はそれulimit -mが機能しないことを読んだ。人々は、ulimit -v例えばプロセスに仮想メモリを設定することを使用します。この仮想メモリはVSZがリストされているものpsですか?このプロセスが100MBシステムメモリを最大で使用するように制限する場合に設定する必要がある値。私はドキュメントを読みましたがsetrlimit、これは合法のようです: RLIMIT_AS This is the maximum size of a process' total available memory, in bytes. If this limit is exceeded, the malloc() and mmap() …
10 linux  memory 

2
LinuxはSHMMAXのデフォルト値をどこに設定しますか?
私はこれらの値がどこに設定されているのか、そしてそれらがデフォルトで何になっているのか疑問に思っていますか?鉱山は現在18446744073692774399です。目に見える場所に設定していません。 $ cat /proc/sys/kernel/shmmax 18446744073692774399 $ sysctl kernel.shmmax kernel.shmmax = 18446744073692774399

2
システムメモリ全体をダンプするにはどうすればよいですか?
VirtualBoxを起動した後、コンピューターが遅くなり、OOMが原因で完全にハングしました。通常、OOMは領域を解放するためにプロセスの強制終了を開始する必要がありますが、これは発生しませんでした(これが2回目に発生しました)。 テキストエディターで未保存の重要な作業があったため、SysRq+ を使用して現在のコンソールのすべてのプロセスを強制終了した後、システムRAMでそれを見つけたいと思っていましたK。問題のマシンは、ターゲットディスクとしてSSDを備えたLinux x86_64 3.7.5を実行する8 GiB RAMを搭載したラップトップです。 私の最初の試みはでしたがdd if=/dev/mem of=memory、1MiBのデータを読み取った後、これは失敗しました。次に、を試しましたがdd if=/dev/fmem of=memory bs=1M、3010461696バイト(正確には2871 MiB)を読み取った後に停止しました。/proc/mtrr(以下に示す)を見て、を追加してみることにしましたskip=4096。これは最終的に速度が低下し、わずか3 MiB /秒の速度で読み取っていたため、中断しました(5.8 GiBのファイルを生成)。(少なくともファイルの最後の100 MiBにはFFs が含まれます) reg01: base=0x000000000 ( 0MB), size= 2048MB, count=1: write-back reg02: base=0x080000000 ( 2048MB), size= 1024MB, count=1: write-back reg03: base=0x100000000 ( 4096MB), size= 4096MB, count=1: write-back reg04: base=0x200000000 ( 8192MB), size= 1024MB, count=1: …

5
スワップ使用量が多すぎますか?
約1か月前に新しくインストールされたDebian Sidボックスがあり、現時点ではデスクトップアプリが実行されていません。 (sshを介して)実行しようとするコマンドを実行すると、ハードディスクが非常に動作しにくくなります。Ubuntu 8.04の実行中、システムは数週間前に問題なく動作しました。ハードウェアは問題ないはずです。スマートツールは問題を報告せず、メモリチェックも行いません。 私は問題がスワッピングに関連していると思います: $ free -h total used free shared buffers cached Mem: 998M 986M 12M 0B 464K 904M -/+ buffers/cache: 81M 917M Swap: 511M 511M 0B テストの結果、ほとんどの物理RAMがキャッシュに使用されているにもかかわらず、再起動せずにスワップを無効にできないことがわかりました。 # swapoff -a swapoff: /swapfile: swapoff failed: Cannot allocate memory このstackoverflowの回答に記載されているスクリプトを実行したとき、スワップ使用率が最も高いプロセスはわずか1.5MBを使用しており、合計数は次のとおりでした。 "Overall swap used: 18376 kB" ...これは、htopまたは無料のレポートの半分のギグからはほど遠いです。 半月前にswappinessを変更してみまし1たが、違いはありません(同じメモリ使用パターン)。 原因は何でしょうか? 編集:ここに/proc/meminfo内容があります(同様の状況ですが、904の代わりに702メガのキャッシュがあり、クロムがまだ開いています)。 …
9 linux  debian  memory  swap 

3
物理的に箱に入る?(メモリとディスク)
VPSを持っています。パーティションを暗号化できるかもしれませんが、試していません。私のVPS会社は自分のルートパスワードをリセットできると思いますが、表示されるSSHキーは自分のものだけです。すべてのデータについて、で暗号化していencfsます。ハッカーが何らかのアクセス権を取得した場合に備えて、encfs私のパスワードが正しい場合にのみドライブをマウントできます(SSHキーはドライブをマウントせず、ルートパスワードをリセットしても新しいパスワードは正しくないパスフレーズであるためマウントされません) 私の質問は、VPSホストが私のボックスに侵入できるかどうかです。物理的にデータは暗号化されます。ボックスをリセットせずにrootを変更できると思いますか?もしそうなら、彼らはすでにマウントされているファイルシステムにアクセスできますか?権限のない別のユーザーがログインしている場合、そのユーザーはRAMにアクセスして機密データをダンプするために何かできますか?VPSホストはRAMの内容を簡単に読み取ることができますか? 注:これは架空のものです。大きなクライアントがいる場合、どれだけのセキュリティを約束できるか知りたいと考えています。これが思い浮かびました。自宅でボックスをホストしたり、それをサポートするパイプを用意したりしたくありません。

2
MySQLは25日ごとにOSに殺されます
約4か月前に、MS SQL ServerからMySQL 5.5に移行しました。それ以来、CentOSがメモリを使い果たし、その結果MySQLが強制終了する約25日間に一度、問題が発生しています。MySQLはmysqlを安全に再起動するため、データベースは1〜2分だけ完全にダウンしますが、CentOSがmysqldスレッドを強制終了するまでに、パフォーマンスと接続の損失に数時間かかる可能性があります。 通常、午前1時から午前5時まで問題が発生しますが、日中はトラフィックが最も多いため、この状況では本当に困惑します。通常、午前1時から午前5時まで接続とパフォーマンスの問題が発生しますが、mysqldumpの実行とほぼ同時に、mysqlサーバーは午前4時または5時頃に強制終了されます。 mysqldump犯人かもしれないと思った。ただし、それは毎日午前4時に始まりますが、一部の夜には早くも午前1時に問題が発生します。またmysqldump、--optスイッチで実行されているので、ダンププロセス中に大量のデータをバッファリングしないでください。 また、ダンプファイルを取得してテープにバックアップする、使用しているバックアップアプリについても検討しました。実行時間を午前6時に変更しましたが、問題は変わりませんでした。 夜間に定期的に実行されるジョブがいくつかありますが、リソースを大量に消費するジョブはなく、実行にそれほど時間がかかりません。 以下は、私たちが作業しているものとmy.cnfファイルの現在のエントリに関するいくつかの統計です。私たちが試すことができるものについての助けや提案があれば、とてもありがたいです。 サーバー統計: Intel(R)Xeon(R)CPU E5530 @ 2.40GHz CPUコア:4 メモリ:12293480(12ギグ) OS: CentOS 5.5 Linux 2.6.18-274.12.1.el5#1 SMP Tue Nov 29 13:37:46 EST 2011 x86_64 x86_64 x86_64 GNU / Linux MY.CNF: [client] port = 3306 socket = /var/lib/mysql/mysql.sock [mysqld] port = 3306 socket = /var/lib/mysql/mysql.sock skip-name-resolve …
9 mysql  memory  centos 

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