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

スワップ領域は、コンピュータのメモリがいっぱいになったときにオーバーフローとして機能するハードディスクの領域です。非アクティブなアプリケーションが使用するメモリは、他のアプリケーションやアクティブなファイル用のディスクキャッシュのためのスペースを空けるために、部分的にディスクに書き込まれます。

1
どのようにしてスワップファイルにするものを消去せずに/ swapfileをゼロフィルできますか?
仮想ゲストをバックアップする前にディスク容量を最適化するために実行するスクリプトがあります(実際には、どのハイパーバイザーを使用してもそれほど問題ではありません)。 最新のUbuntuバージョン(18.04など)/swapfileでは、デフォルトでパーティションではなくパーティションを使用するようです。それも結構です。 ただし、スワップファイルとそれを含むルートパーティションをゼロフィルしたいと思います。 スワップパーティションでは、既存$UUIDのものをスワップパーティションから抽出する方法が常にあり、パーティションをゼロフィルした後、実行mkswap -U $UUIDして上記のスワップパーティションを再作成するため、これは比較的簡単でした。 しかし、/swapfile私はそれを行う方法がわかりません。で/swapfileUUIDを使用してマウントできないことは承知していますが/etc/fstab、それでもUUIDを保持したいと思います。 そのため、続行するには次のいずれかが必要です。 スワップパーティションにする構造をワイプせずにスワップファイルをゼロフィルできるメソッドが必要です(つまり、実行する必要がありませんmkswap -U $UUID)。 既存のUUIDをスワップファイルから取得するためのメソッドが必要です(パーティションを使用してから参照blkidするまで何でもできるパーティションではあり/dev/disk/by-uuid/$UUIDません)。
8 ubuntu  swap 

1
カーネルに断片化されたメモリを圧縮させる方法
私は走っていFedora 26ます。 これは、アルゴリズムの教授から与えられた非常に奇妙な割り当てです。割り当ては言う: Cでのメモリの断片化: 以下を実行するCプログラムを設計、実装、および実行します。これは、3mそれぞれ800,000要素のサイズの配列のシーケンスにメモリを割り当てます。次に、すべての偶数番号の配列を明示的に割り当て解除し、mそれぞれサイズが900,000要素の配列のシーケンスを割り当てます。プログラムが最初のシーケンスの割り当てと2番目のシーケンスの割り当てに必要な時間を測定します。mプログラムで使用できるメインメモリのほぼすべてを使い果たすことを選択してください。」 これの全体的な目標は、メモリを断片化してから、連続したチャンクとして利用できる量よりもわずかに多くを要求し、オペレーティングシステムにメモリの最適化または最適化を強制することです。 クラスでは、メモリが視覚化されており、実際には隣接していないため、これをどのように行うべきかを尋ねました。彼は「[仮想メモリ]をオフにする必要があります」と答えました。他の何人かの学生は、クラスでこの「ガベージコレクション」に到達したときにどのように知るべきかを尋ね、彼は次のように述べました。 少し調べたところ、仮想メモリを無効にするのに最も近いのは、でスワップメモリ​​を無効にすることでしたswapoff -a。デスクトップ環境を無効にして、ネイティブターミナルからプログラムをコンパイルして実行しました(他のプロセス、特にデスクトップ環境のような重いプロセスからの干渉を避けるため)。私はこれをm行い、2番目の割り当てのタイミングが最初の割り当てよりも大きくなるポイントに到達するまで、プログラムを増やしながら実行しました。 私は増加してプログラムを実行し、m最終的に2番目の割り当ての時間が最初の割り当ての時間よりも多くなるポイントを見つけました。しかし途中で、2番目の割り当ての前にプロセスが強制終了されるポイントに到達しました。私dmesgはそれをチェックして、それがoom-killer によって殺されたことを確認しました。私はoom-killer に関するいくつかの記事を見つけて読み、カーネルによるメモリの過剰割り当てを無効にできることを発見しました。 私はこれを実行してプログラムを再度実行しましたが、今回のみm、2番目のタイミングが最初のタイミングよりも高いようなものを見つけることができませんでした。結局、mを大きくすると(割り当て超過が有効になっている場合よりもはるかに小さくなりますが)、mallocが失敗し、プログラムが終了します。 3つの質問があります。最初の質問はそれほど重要ではありません。 ガベージコレクションはこれの正しい用語ですか?私の教授はこれはガベージコレクションであると言っていますが、ガベージコレクションはプログラミング言語によって行われるものであり、これはより最適化されていると考えられると思い込んでいました。 Linuxシステムで彼が望んでいるような圧縮は可能ですか? スワップを無効にしても、メモリの割り当て超過が有効になっているときに、2番目の割り当ての時間が最初の割り当てよりも長くなる点に到達できたのはなぜですか?圧縮は実際に行われましたか?もしそうなら、メモリの割り当て超過を無効にした後、圧縮が発生するポイントに到達できなかったのはなぜですか?

3
スワップするより多くのスペースを割り当てて、そのサイズをRAMより大きくするには
状況:/dev/sda3HD 128 GBの場合、スワップサイズ()を RAM (8 GB)より大きくする動機:8 GB RAMが小さすぎる。SSDに30 GBの空き容量。20 GBをSSDスワップに切り替えたい システムの特性 不変/変更可能なスワップ。/mnt/.swapfileスワップファイルのファイル属性を変更する必要がないように、不変である必要がある証拠を見つけることができません。 sudo lsattr /mnt/.swapfile -------------e-- /mnt/.swapfile コマンドsudo fdisk -lu /dev/sdaが与える Disk /dev/sda: 113 GiB, 121332826112 bytes, 236978176 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 …

1
プロセスのスワップされたすべてのメモリをスワップから引き出します
ディスクに書き込むことなく、プロセスのスワップされたすべてのメモリをスワップからすばやく引き出すにはどうすればよいでしょうか。 質問を必要とする体系的な問題は他の当事者によって処理されているため、この問題のコンテキストは取るに足らないものです。しかし、現在、OpenVZノードのスワップ領域を頻繁に解放しなければならないという問題があり、負荷とIO待機が非常に高くなっています。 多くの場合、スワップは主に、個々のコンテナーで実行されている少数のMySQLおよびclamdプロセスによって消費されます。これらのサービスを再起動すると、スワップが解放され、ノードの問題が解決されますが、明らかな理由により望ましくありません。 ノードが過負荷で現在の方法よりも速いものが必要なときに、これらのプロセスからスワップをすばやく解放する方法を探しています。 unswap(){ [[ $1 && $(ls /proc/$1/maps) ]] && ((gcore -o /tmp/deleteme $1 &>/dev/null; rm -fv /tmp/deleteme.$1)&) 2>/dev/null || echo "must provide valid pid";};unswap このコアダンプにより、すべてのRAMが強制的にアクセスされ、スワップから解放されますが、ファイルへの書き込みを回避する方法はまだ見つけていません。また、現在スワップされているアドレス範囲を分離してその部分を/ dev / nullにダンプできれば、プロセスはより高速になるようですが、それを行う方法はまだ見つけていません。 これは巨大なノードなので、通常のswapoff / swaponメソッドは非常に時間がかかります。また、ノードの構成は私の制御下にないため、根本原因の修正はこの質問の一部ではありません。ただし、何も殺したり、再起動したりせずに、スワップのかなりの部分をすばやく解放できる方法についての洞察は、高く評価されます。 環境:CentOS 6.7 / OpenVZ 後でこれにつまずくかもしれない人のための更新: Jlongの入力を使用して、次の関数を作成しました。 unswap(){ (awk -F'[ \t-]+' '/^[a-f0-9]*-[a-f0-9]* /{recent="0x"$1" 0x"$2}/Swap:/&&$2>0{print recent}' /proc/$1/smaps | …

1
メモリの断片化と、システムでスワップが有効になっているかどうかには関係がありますか?
回答の一つドI必要スワップ領域Iは、RAMのに十分な量以上のものを持っている場合は?によって測定されたメモリの断片化とcat /proc/buddyinfo スワップが使用されているかどうかの間に関係があるかどうか疑問に思いました。より具体的には、スワップを利用してメモリの断片化を減らすことができるかどうか疑問に思っています。通常の日は、私のシステムでswap offを使って作業していますが、次のようになっています。 tvbox@tvbox-G31M-ES2L:~$ cat /proc/buddyinfo Node 0, zone DMA 3 3 4 14 16 6 2 0 0 1 0 Node 0, zone Normal 1564 1052 462 356 240 109 33 21 6 1 0 Node 0, zone HighMem 43 1972 839 285 183 109 98 34 16 …
8 memory  swap 

2
スワップアウト-どうなりますか?
512 MBのRAMと348 MBのスワップを備えたDebian VMマシンで、1 GBのファイルをエディターで開いてメモリが不足するとどうなりますか? システムをクラッシュさせますか?そうでない場合、Linuxはこれをどのように処理しますか? Swapspaceをインストールして、必要に応じて自動的かつ動的に十分なスワップを作成するのは賢明ではないでしょうか? sudo apt-get install swapspace

1
スワップはユーザーごとに暗号化できますか?
暗号化されたスワップを使用するマルチユーザーコンピュータで、各ユーザーが他のユーザーのセキュリティを損なうことなく休止状態から休止状態に復帰できるようにする方法に関して問題が発生します。 各ユーザーのスワップ使用量を暗号化して、休止状態から再開したいときに、パスワード/パスフレーズのみを入力することで暗号化を解除できる方法を探しています。他のユーザーのスワップを解読することはできません。それぞれのユーザーがスワップを復号化してプロセスを続行するためのパスフレーズを提供できるようになるまで、すべてのユーザーのプロセスを停止する必要があります。 ユーザーは、プロセスの一部またはすべてを暗号化解除して、誰がコンピュータを再開したかに関係なく続行できるようにすることを希望する場合があります。 システムプロセスに個人データが保存されておらず、システムがユーザーのキーをスワップにヒットさせない限り、システムのスワップを暗号化する必要はありません。つまり、どのユーザーも他のユーザーを危険にさらすことなくシステムを再開できます。 。 CorebootやLibreBootなどのBIOSファームウェアに格納されたキーでシステムを暗号化して改ざんを非常に困難にすることでこれを補完できることに注意してください。改ざんが問題ではないと想定して、人々が他人の個人データを読まないようにする暗号化アプローチ。セキュリティを最適化するために、これら2つのメカニズムを一緒に使用することができますが、この質問では、完全な暗号化アプローチを求めています。 理論的には理にかなっていますが、実際には実装されていない場合があります。これがLinuxで可能になることを願っています。

1
複数のハードドライブを使用してスワップを加速できますか?
私はまだ2つの古いATAドライブを持っています(1つはわずか8GBで、1つは多少欠陥があります)。それらを自分のPCに入れて、それらのスワップをアクティブにすることも考えています。これの効果は何でしょうか?私のシステムはドライブ間でデータを均等に分散させて、スワッピングを高速化しますか?
8 linux  swap 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.