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

同義語:RAM-頭字語:ランダムアクセスメモリ、コンピュータデータストレージの一種。

3
ページ割り当てエラー-メモリが不足していますか?
最近、kern.log私のサーバーの1 つでこのようなエントリに気付きました。 Feb 16 00:24:05 aramis kernel: swapper: page allocation failure. order:0, mode:0x20 知りたい: そのメッセージはどういう意味ですか? サーバーのメモリが不足していますか? スワップの使用率は非常に低く(10%未満)、これまでのところ、メモリ不足が原因でプロセスが強制終了されることはありませんでした。 追加情報: サーバーは、Debian 6.0を実行するXenインスタンス(DomU)です 512 MBのRAMと512 MBのスワップパーティションがあります 仮想マシン内のCPU負荷は平均0.25を示します


2
Linuxはメモリ需要が上がったときに大きなディスクキャッシュを解放しません
2.6.31-302 x86-64カーネルでUbuntuを実行します。全体的な問題は、「キャッシュ」カテゴリにメモリがあり、それが上昇し続け、アプリケーションで必要な場合でも解放または使用されないことです。 だからここに私が「無料」コマンドから得たものがあります。一見したところ、これは普通のことではありません。 # free total used free shared buffers cached Mem: 7358492 5750320 1608172 0 7848 1443820 -/+ buffers/cache: 4298652 3059840 Swap: 0 0 0 誰かが最初に言うことは、「心配しないで、Linuxはそのメモリを自動的に管理する」ということです。はい、メモリマネージャがどのように機能するかを知っています。問題は、それが正しいことをしていないということです。ここで「キャッシュされた」1.4 GBは予約済みで使用できないようです。 Linuxに関する私の知識から、3 GBは「無料」であることがわかります。しかし、システムの動作はそうではないと言っています。使用量のピーク時に1.6 GBの実際の空きメモリが使い果たされると、より多くのメモリが要求されると(および最初の列の「空き」が0に近づくと)、OOMキラーが呼び出され、プロセスが強制終了され、問題が発生し始めますにもかかわらずで「無料」 - / +バッファ/キャッシュ行はまだ持っている約1.4 GB「無料」。 主要なプロセスのoom_adjの値を調整して、システムをひざまずかせないようにしましたが、それでも重要なプロセスは強制終了され、そのポイントには到達したくありません。特に、理論的には、ディスクキャッシュを削除するだけであれば1.4GBが「無料」のままです。 ここで何が起こっているのか誰にも分かりますか?インターネットには、Linuxの「無料」コマンドに関する愚かな質問と「なぜ空きメモリがないのか」が殺到しており、そのためこの問題については何も見つかりません。 私の頭に浮かぶ最初のことは、スワップがオフになっていることです。それについて固執するシステム管理者がいます。それらがバックアップされている場合、私は説明を受け入れます。これは問題を引き起こす可能性がありますか? 実行後は無料echo 3 > /proc/sys/vm/drop_cachesです: # free total used free shared buffers cached …

4
MySQLは64 GBのRAMを効果的に利用できますか?
約5,000万行があり、インデックスサイズが4 GB(テーブルサイズが約6 GB)のテーブルを照会すると、データベースサーバーがメモリをスワップし、劇的にスローダウンするという問題に直面しています。これは、一時テーブルのサイズが超過し、ディスクにスワップされることに関係していると確信しています。 データベースサーバーを32 GBのRAMから64 GBのRAMにアップグレードした場合、MySQLデータベースがスワップではなくこの追加メモリを完全に利用できるかどうか疑問に思います。いくつかの変数(例:KEY_BUFFER_SIZEなど)を調べましたが、64 GBを超える値の設定をサポートしているようです。ただし、MySQLのドキュメントには、tmp_table_sizeが4 GBで最大になると書かれています。 それで、メモリのアップグレードは価値がありますか?「querying-large-table」問題はこれの恩恵を受けるのでしょうか、それとも4 GBの制限のために助けになりませんか テーブルをさまざまな方法でパーティション分割するなど、他のソリューションが潜在的にあることを知っていますが、テーブルについて何も変更せずに、追加のメモリが役立ちますか? また、一般的に、32 GBから64 GBのRAMに移動するときにMySQLが利用できないメモリ関連の変数は他にありますか? データベースサーバーとして64ビットLinux(Ubuntu)を使用しています。 ありがとう、ガレン


2
Rowhammer DRAMバグとは何ですか。
DRAMチップは非常に密集しています。調査により、隣接するビットはランダムに反転できることが示されています。 ECCを備えたサーバーグレードのDRAMチップでバグがランダムに発生する可能性はどれくらいですか(CMU-Intelの論文では、たとえば1年で1つの障害が発生した未知のチップの番号9.4x10 ^ -14を引用しています)。 メモリを購入する前に、バグが修正されたかどうかを知るにはどうすればよいですか? CentOS 7などでテナントや非特権ユーザーなどによる特権エスカレーションを行う悪意のある試みに対処するにはどうすればよいですか? 参照: 悪用されたRow Hammer DRAMバグ、物理メモリへのアクセスのロックを解除 アクセスせずにメモリ内のビットを反転する:DRAM障害エラーの実験的研究 GoogleのPoCリポジトリ プロジェクトゼロの評価
20 security  memory  ecc  bug 

3
Cent OS:メモリーのオーバーコミットメントをオフまたは削減するにはどうすればよいですか?
メモリとスワップスペースの両方が不足するため、「マイ」サーバーが停止することがあります。(pingに応答し続けますが、それ以上のものはなく、sshでも応答します)。 私は、Linuxがメモリオーバーコミットを行うと言われていますが、私が理解している限り、銀行がお金で行うのと同じです:実際に利用可能なメモリよりも多くのメモリをプロセスに付与します。ほとんどのプロセスは実際に要求するすべてのメモリを使用しないと仮定しています少なくともすべてが同時にではありません。 (参照のは、これが事実であるかどうかをここで議論しないようにしましょう、これは実際に、なぜ私のシステムは時折ハング原因であると仮定してください、まだ、まだpingに応答し?と方法を理解するには、サーバー上のすべてのサービスがダウンする可能性がありますどのような) 。 そう、 CentOSでメモリのオーバーコミットメントを大幅に無効化または削減するにはどうすればよいですか?vm.overcommit_memory(値0、1、または2)とvm.overcommit_ratiomと呼ばれる2つの設定があることを読みましたが、どこでそれらを見つけて変更する必要があるのか​​わかりません(いくつかの構成ファイル)。 、および変更を有効にするためにサーバーを再起動する必要があるかどうか。 そしてそれは安全ですか?どのような副作用が予想されますか?overcommit_memoryをグーグルで検索すると、サーバーが起動できなくなったという人のような恐ろしいことがわかりました。... メモリ使用量の突然の増加を引き起こすのは、httpリクエストの処理中に呼び出されるphpによって行われるクエリのためのmysqlであるため、一部のphpスクリプトが完了できず、そのため時々500の応答が発生することが予想されるためです。サーバーがビジー状態であり、これは私が取ることができるリスクです(サーバー全体にアクセスできなくなり、ハードリブートする必要があることは確かに良いことです)。 または、間違った設定を選択すると、サーバーが本当に再起動できなくなる可能性がありますか?
20 linux  centos  memory  centos5 

2
InnoDB(5gbデータベース)のみを使用する8gb RAM専用MySQLサーバーの最適なMySQLキャッシュ設定
パフォーマンスのためにMySQLを設定することになると、私は非常に大物です。そして正直なところ、MySQLのパフォーマンスの最後の部分をすべて絞り出すための微調整については心配していませんが、最良の結果のいくつかを提供する最も重要なことは、キャッシュ/バッファを正しく設定することです。 InnoDBのみをストレージエンジンとして使用することで、物事をシンプルにしようとしました。また、MySQL専用のサーバーがあります。8GBのRAMがありますが、パフォーマンスを最大化するにはどのように割り当てる必要がありますか?最高のパフォーマンスを得るために、データベース全体をメモリに収めることができます。データベースは約5GBです。これは可能ですか? クエリキャッシュに割り当てるメモリ量はどれくらいですか?InnoDBバッファープールはいくらですか?コンピューターの残りの部分(つまり、MySQLに関連しないプロセス)はいくらですか?等。 MyISAMを使用していないので、キーキャッシュに多くのメモリを正しく入れる必要はありませんか?

6
Windows Server 2008 R2の奇妙なメモリ使用量
誰かが助けてくれることを願っています。16GBのRAMを搭載したWindows Server 2008 R2マシンを使用して、使用可能なすべてのメモリを何かに食わせ続けています。中には何もタスクマネージャまたはリソースモニタは 300メガバイト以上のメモリを使用して任意のプロセスを明らかにしていない...しかし、サーバ上のメモリ使用量が15.7ギガバイトです。 実行されているのは、SQL Server 2008およびIIS7.5(ASP.Netを使用)のみです。 注:再起動後のRAM使用量は少なくなり、上に向かっていきます。一週間かそこら後、私たちはこの状況で自分自身を見つけ続けます。 私たちのすべての記憶を食べているものを見つけるにはどうすればよいですか?:(


6
Javaプロセスでメモリを消費するものは何ですか?
中程度の負荷でのJavaプロセスのメモリ使用量を調査しようとしています。 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 12663 test 20 0 8378m 6.0g 4492 S 43 8.4 162:29.95 java ご覧のとおり、6Gbに常駐メモリがあります。興味深い部分はこれです:プロセスはこれらのパラメータで実行されます: -Xmx2048m -Xms2048m -XX:NewSize = 512m -XX:MaxDirectMemorySize = 256m ... GCおよびその他のもの これらの設定と実際のメモリ使用量を見ると、このプロセスの使用が予想されるものと実際に使用されるものの違いを見つけるためにつまずきます。 通常、メモリの問題はヒープダンプを分析することで解決されますが、この場合、メモリはヒープ外のどこかで使用されます。 質問:このような高いメモリ使用量の理由を見つけて見つけるための手順は何ですか?そのプロセスでメモリを使用しているものを識別するのに役立つツールは何ですか? 編集0 まだかなりのスペースがあるので、これはヒープ関連の問題のようには見えません: jmap -heap 12663 結果(スペースを節約するために編集) Heap Configuration: MinHeapFreeRatio = 40 …
20 linux  java  memory 

4
linux / armでRAM(ECCなし)のベンチマークをとる最良の方法は何ですか?
カスタムボード上の非ECCメモリチップの整合性とグローバルパフォーマンスをテストしたい Linuxで実行するツールがあるので、システムと地球の温度を同時に監視できますか? 一般的に行うためのいくつかの非ECC固有のテストはありますか? 編集1: 温度を監視する方法はすでに知っています(特別なプラットフォーム機能/sys/devices/platform/......../temp1_inputを使用しています)。 今のところ : wazoox:動作しますが、独自のテストをコーディングする必要があります ジェイソン・ハントリー: ramspeed:腕では機能しません ストリームベンチマーク:動作し、非常に高速なので、正確で完全かどうかを調べます memtest:Linuxから直接実行されないため、後で試します。 fedoraのストレス:後で試してみますが、fedoraをインストールするのはあまりにも問題です 私はこのディストリビューションを見つけました:http : //www.stresslinux.org/sl/ おそらく、stresslinux、memtest、fedoraのストレスなどの解決策を試してから、Linuxの下で大きな依存関係なしで直接実行されるツールを引き続きチェックします。 回答ありがとうございます。調査を続けます
19 linux  memory  benchmark  arm 

5
SQL Serverでメモリを解放するにはどうすればよいですか?
SQLはRAMを好むことを知っていますが、Windowsが要求したときに解放します。これがSQLがどのように機能するかを知っています。しかし、SQLが実際にRAMを返すことを確信していないWindows管理者がいて、この特定の(仮想)サーバーでは、Analysis Servicesが終了するとSQLはあまり必要ありませんが、このサーバーには他に気にすることはありませんSQLに多くを求めます。 したがって、仮想環境の問題は「SQLが大量のRAMを使用しているため」ではないことをWindows管理者に安心させようとしていますが、サービスを再起動せずにSQLを解放するよう説得することはできません。 キューブを処理するとき、SQLサービスは幸いにも8GBのRAMを使用しますが、それに圧力がかからないため、通常の日中はこの多くを解放しません。Windowsの連中は悲鳴を上げており、SQLがこれをリリースしてくれるともっといいでしょう。 実際には、処理時にSQLがそれほど多くのRAMを使用するようにしたいため、最大メモリ設定を使用したくありません。あとでまた下に戻りたいです。 SQL Server からMemoryを解放しないSQL ServerとReclaiming memoryの両方の複製である可能性がありますが、別の答えがあるのではないかと考えています。Windowsがそれを取り戻すのを待つことは、ここでWindowsの連中を説得するつもりはない。サービスの再起動はオプションですが、私は実際にはその考えのファンではありません。 Windowsにそれを要求する方法を知りたい...

4
Apache / PHPベースのWebアプリで明らかなメモリリークの原因を特定するにはどうすればよいですか?
約1週間に1回ですが、何日間も正常に実行された後、1日数回でさえ、EC2インスタンスが応答しなくなります。Muninのメモリグラフは、「アプリ」に割り当てられたメモリが成長し始め、スワップが完全に使用され、インスタンスが効果的にひざまずくまで停止しません。別のカスタムグラフは、絶えず成長しているプロセスがapache2であることを示しています。 mod_phpといくつかのPHPスクリプトを使用して、標準のprefork Apacheセットアップを実行します。以下のグラフでわかるように、apache2プロセスをトリガーしてメモリの消費を開始する何かが発生します。私が間に合った最初の緑のスパイクは、物事が手に入らないうちにApacheを再起動しました。2番目のスパイクは少し遠くになり、インスタンスを完全に再起動する必要がありました。 ムニンメモリグラフ 私が疑問に思っているのは、これをどのようにデバッグするのが最善かということです。FastCGIを使用してPHPをセットアップし、独自のプロセスで実行する以外に、Apacheか、PHPとコードの組み合わせが過剰なメモリ使用の原因であるかを判断する良い方法は何ですか?この問題を追跡するためにどのような手順を取りますか? 更新:マットが以下に提案したように、私はstraceを巻き込んだ後にリークを追跡することができました。 メモリ内で徐々にそして継続的に成長しているapache2プロセスを見つけた後、PHPスクリプトにさらにいくつかのerror_log()呼び出しを追加し、実行中のさまざまなポイントで使用されるRSSの合計量を出力しました(psの出力を使用)。しかし、それは誤解を招くものであることが判明しました。RSSは、スクリプトの実行が完了した後にのみジャンプしたように見えましたが、後のデバッグでは実際にはそうではないことが明らかになりました。注意してください! 幸いなことに、これらのerror_log()呼び出しはすべて最終的には有用であることが判明しました。strace(strace -p <pid> -tt -o trace.log -s 256)を起動したとき、リクエストごとに、プロセスが約400kのメモリを割り当てていることがわかりました(「brk」システムコールを探し、最後のコールから最初のコールのパラメータを減算します-通常、いくつかは別の後に)。次に、error_log()メッセージを含む最新の「書き込み」システムコールを検索しました。これにより、スクリプトのどの時点でメモリが割り当てられているかがわかります。より正確に位置を特定するために、いくつかのより戦略的に配置されたerror_log()呼び出しで、最終的に犯人を見つけました。 PHPスクリプトからcurl_exec()を呼び出したときにメモリがリークしていました。SSL接続の処理に関連する一部のcurlコードは何か間違ったことをしている-HTTPに切り替えたときにリークはなくなりました。Curlのchangelogは、7.19.5で修正されたいくつかのSSLメモリリークを参照しているため(7.18.2でした)、次に試してみます。 それまでは、Apacheを妥当な範囲内に収める非常に低いMaxRequestsPerChildで実行しています。みんな、ありがとう!
18 php  apache-2.2  memory 

4
ミラーモードRAM:価値はありますか?
ブレードサーバーのセットアップ用のIntelの「ミラーチャネルモード」(ベアメタルブレードで実行される中程度の重さの典型的なMySQL OLTPデータベース。現在仮想化はありません)にはあまり馴染みがありません。 インテルのドキュメントから、私は見つけることができました: Intel Xeon Processor 5500シリーズおよびIntel Xeon Processor 5600シリーズは、ミラーリング構成でDDR3 DIMMの利用可能なチャネルを構成するためのチャネルミラーリングをサポートしています。ミラーリングされた構成はメモリの冗長イメージであり、修正不可能な散発的なエラーが存在しても動作を継続できます。チャネルミラーリングは、メモリデータの2つの同一イメージが維持されるRAS機能であり、最大限の冗長性を提供します。 Intel Xeon Processor 5500シリーズおよびIntel Xeon Processor 5600シリーズプロセッサベースのIntelサーバーボードでは、チャネル間でミラーリングが実現されます。アクティブチャネルはプライマリイメージを保持し、他のチャネルはシステムメモリのセカンダリイメージを保持します。Intel Xeon Processor 5500シリーズとIntel Xeon Processor 5600シリーズプロセッサの統合メモリコントローラは、読み取りトランザクションのために両方のチャネルを交互に切り替えます。通常の状況では、書き込みトランザクションは両方のチャネルに発行されます。 しかし、私は彼らがここに置いているものを本当に拾い上げているわけではありません。ストレージ容量の半分を失いますが、メモリの「冗長性」を獲得し、読み取り/書き込みパフォーマンスの利点を得ることができますか?RAMのRAID 1が好きですか?この構成で実際に経験した人はいますか?
18 memory 

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