ミスチルの大名曲の数々が配信決定!! 31日間無料!!

「LinuxのSwap領域は、実メモリと同等か2倍程度」
取りましょう、とよく目にするのですが、
根拠を教えてください。

多ければよいと言う訳でもなさそうだし、
疑問に思っています。

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (7件)

他の方が書いていますが、メモリが高価だった(というか大容量メモリが無かった)時代の話です。


実メモリが4MBしかないとして、OS含めて20MBのメモリを必要とするプログラムを動かしたいとします。そうすると、差し引き最低16MBのスワップ領域が必要です。この場合だと、実メモリの4倍ですね。こういうケースでは一応動くにしてもページングが多発して実用に耐えない速度になり、もしくはOSの動作も不安定になります。

この、「ページングが多発して実用に耐えない速度」の目安が実メモリの2倍という経験値です。つまり、実メモリが4MBしかないなら、せいぜいスワップ8MBで合計12MB位の仮想メモリしかそのコンピュータでは使えない(20MBのメモリを必要とするプログラムは動かせない)ということです。

今の時代だと、必要仮想メモリをすべて実メモリでまかなえるならスワップ領域は必要ありません。いくら大きく定義しても良いですが、実メモリからあふれないわけですからほとんど使われません。

もちろん今でも「ページングが多発して実用に耐えない速度の目安が実メモリの2倍」という経験則はおおむね適用できると思うので、仮に大規模な科学技術シミュレーション計算で10GBのメモリ空間が必要ならば、実メモリは3ないし5GB程度必要と言えます。もちろん1GBしかなくても計算は出来るでしょうがCPU能力の大半が計算で無くページングに使われる事になります(もちろんプログラムによりますが)。
    • good
    • 1

たとえばSunOS 4.1.x ( BSD系と分類されるようです) のような古いUnixに実装されていた仮想メモリの機能は実メモリとスワップスペースに壁があり、実メモリの空間を仮想メモリとして利用することができませんでした。


実メモリと同じかそれ以上のメモリというのが仮想メモリ機能を利用する必須の要件でしたので、実メモリと同じか2倍くらいというのが仮想メモリを利用するための目安と考えられていました。
実メモリと同等か2倍程度というのは、このころの推奨されたサイズがそのまま現在も使われているのだと思われます。
現在の Unix や Linux は、実メモリを仮想メモリ空間として利用できるので、スワップエリアのサイズはプロセスが利用する最大メモリサイズの合計を考慮して考えるべきなのですが、これを事前に見積もるのは難しいので、一般的な推奨サイズとして実メモリと同等か2倍程度という目安が使われているようです。
ちなみに Linux ではページキャッシュやバッファキャッシュをできるだけ実メモリ上に残しておこうとする戦略で動作するので、大きなファイルをコピーしたりするだけでのスワップエリアを少し使ってしまうことがあります。
パフォーマンスに重大な影響を及ぼさない限りにおいては、スワップエリアの利用は実メモリを最大限利用していると考えることもできます。
スワップエリアの利用があるから悪いと即断するのではなく、現在動作するシステムへの影響があるのかどうかという点を考慮して判断しないと、コンピュータ資源を浪費する結果となります。
    • good
    • 1

以前のUNIXでは実メモリの容量分のSWAP領域を使うように設計されていたため、実メモリよりもSWAP領域が小さいと動作しないような仕組みになっていました。



従って、SWAP領域は実メモリより大きく2倍くらい取っておくのがベストという概念が生まれたのでしょう。

ただ、最近のUNIXやLinuxではそのようなことはなくなってきており、全必要メモリ量-実メモリ量としてSWAP領域を計算してしまっても構わないと思います。

現に私はSolaris 8や9で実メモリをが4GBも搭載されているのにSWAP領域をWeb Startのデフォルトである512MBしか確保せずにシステムを構築した経験が何度もあります。これは恐らくLinuxにも当てはまるでしょう。
    • good
    • 1

NO3の人と同じで,swap使いたくないですね。



最近のデストリビューションでdesktopと利用し
openoffice等を使うと500MBほどメインメモリー
使ってしまうので、そのあたりだけ注意して
搭載メモリーとswap決めれば良いと思います。

メインメモリ1Gあれば良いとは思いますが。
    • good
    • 0

個人的に「スワップしたら負け」と思っているので #2 に賛成です. が, 一応補足しておきます:


「スワップ領域を実メモリの 2倍くらいとろう」というのは昔の UNIX の頃から言われている格言で, これは使っているスワップアルゴリズムが「スワップ領域が実メモリの 2倍以上」だと効率的に動く (逆にいうと「それより少ないとスワップアルゴリズムの効率が落ちる」) からだそうです. まあスワップアウトさせなければ問題ありませんが.
    • good
    • 0

No.1 さんの補足です。

おおむねその通りです。

でも、私が思うに(Linux サーバ管理者の立場からすると)「LinuxのSwap領域は、実メモリと同等か2倍程度」
は5年前のレベルではないかと思います。当時はメモリが 128 MB も積んでいれば普通、256 もあればかなり十分だったというレベルでした。

今日の商用利用されているサーバでは1GBや2GB搭載していて普通です。ですので、そのままスワップを実メモリと同等というのはあまりあてはまりません。もしスワップをそんなに多く確保してしまうと、ディスクに対するアクセスが増えて、スワップ発生時にパフォーマンス低下を招いてしまいます。

出来ればスワップは用いないようにして、スワップを発生させないシステムにする、というのが今日この頃の流行のような気がします。

教科書的な回答ではありませんが、現場から一言でした。
    • good
    • 0

根拠は無いようです。


実際は、何に使うかの用途しだいなので、チューニング項目だ! らしい。
ですが、
実メモリと同じから2倍程度とっておけば、大概のシステムで問題ないんじゃないの?
というレベルの話らしいです。
---
参考URLは、5.1.11-(2)に根拠は無いようだ という文章があったというだけのものです。<(_ _)>

参考URL:http://akikoma.remos.iwate-u.ac.jp/test_page/HPU …
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q起動しているサービスを確認するコマンド

初歩的な質問で恐縮ですが、ご教示いただけますと幸いです。

起動しているサービスを確認するために以下の2つのコマンドを打ってみるのですが、結果(出て来るサービス名)が違います。
このコマンドの違いについてご教示いただけますでしょうか。

(1)service --status-all
(2)chkconfig --list

Aベストアンサー

(1)service --status-all

サービスの現在のステータスを調べるコマンド

(2)chkconfig --list

OSのブート時に自動起動するサービスを調べるコマンド

違いが出るのは、
・ブート後に手動あるいは他のコマンドから起動したサービス
・ブート後に手動あるいは他のコマンドから、あるいはエラーで停止したサービス
・ブート後に実行はされるがすぐに停止して常駐しないサービス (ntpdate とか)

あるいは、(1)ではサービス名が表示されない物もあるので、どのサービスがどんなステータス出力をするのか知っておく必要もありますね。(service network statusとか)

Qpingでポートの指定

pingでIPアドレスを指定して、通信できるかどうかというのは
よく使いますが、pingでポートを指定して応答するかどうかは調べられるのでしょうか?

よろしくお願いします

Aベストアンサー

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含むICMP)ではできません。

FTPの疎通確認であれば、クライアントからサーバに対するTCP/21通信(FTP-CMD)が可能であること(サーバからクライアントへのTCP/21からの応答を含む)+サーバからクライアントに対するTCP/20通信(FTP-DATA)が可能であること(クライアントからサーバへのTCP/21からの応答を含む)が必要でしょう。

監視ソフトによるものであれば、
・クライアントからサーバへのログイン(TCP/21)
・クライアントからサーバへのlsの結果(TCP/20)
で確認すればよいでしょう。

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含む...続きを読む

Qポートの80と443

こちらのサービス(https://secure.logmein.com/)を利用すると、インターネットを見られるサーバーのポートの80と443が空いていればルータやファイアウォールに特段の設定なく外部からサーバーを操作できるそうですが、逆にサーバーのポートの80や443を空けることには何か危険性があるのでしょうか。

Aベストアンサー

ポート80は一般的なHTTP、ポート443はHTTPSです。
この2つのポートがあいていなければインターネット接続(WEBブラウジング)は出来ません。
ですから、ほとんどのファイアウォールでこのポートは開いています。(インターネット接続を制限している社内LANでは当然閉じていますが)

ちなみに、よく使うポートとしてはFTPで20、21、SMTP(送信メール)で25、受信メールPOP3で110あたりです。セキュリティポリシー上、この辺は制限される事も多いですが、HTTP 80、HTTPS(暗号化用)443は通常閉じません。


危険性?
WEBプロトコルを使ってFTP的なファイル転送(WebDAV)やVPN等も出来るようになっています。当然そこにはある種の危険はつきものですが、WEBブラウジングに伴う危険と大きく変わりません。ウィルス等に感染していればこの2つのポートだけでも相当危険でしょうね。

参考まで。

QNTPで同期が始まらない

こんにちは。
度々すみません、NTPの設定をしましたがどうも同期が始まりません。

「ntpdate 130.69.251.23」と手動同期は成功します。
しかしntpデーモンを起動し1時間以上放置しても同期されません。
※外部タイムサーバー参照としてます

ntp.confは下記のとおりです。
---------------------------------------------------
server 133.100.9.2 # clock.nc.fukuoka-u.ac.jp
server 130.69.251.23
driftfile /var/lib/ntp/drift
---------------------------------------------------

でntpq -pの結果は下記となります。

remote refid st t when poll reach delay offset jitter
==============================================================================
133.100.9.2 .INIT. 16 u - 64 0 0.000 0.000 4000.00
130.69.251.23 .GPS. 1 u 27 64 377 8.015 -99970. 17262.6

同期ができれば「remote」列に「*」が表示されると思っています。
何か設定が足りないでしょうか?。
尚、「/vat/log/message」をtailしてますが特にエラーは無さそうです。

よろしくお願いします。

こんにちは。
度々すみません、NTPの設定をしましたがどうも同期が始まりません。

「ntpdate 130.69.251.23」と手動同期は成功します。
しかしntpデーモンを起動し1時間以上放置しても同期されません。
※外部タイムサーバー参照としてます

ntp.confは下記のとおりです。
---------------------------------------------------
server 133.100.9.2 # clock.nc.fukuoka-u.ac.jp
server 130.69.251.23
driftfile /var/lib/ntp/drift
---------------------------------------------------

でntp...続きを読む

Aベストアンサー

#4のqaaqです。

○ntp.conf 関連
server 行に "iburst" を付けておきましょう。
server ntp.nict.jp iburst <--こんな感じになります。

ntp サーバ起動時の時刻調整の収束時間が早くなります。
http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=ntp.conf&dir=jpman-5.4.0%2Fman&sect=0

○ntpdate での時刻調整
ntpdate -b -u [サーバ名] を複数回実行して、"offset の値が0.1以下"になるまで、強制的に時刻調整して下さい。

○ハードウエアclockの修正
hwclock -w コマンドでハードウエアclockを合わせます。
http://www.linux.or.jp/JM/html/util-linux/man8/hwclock.8.html

○ntpdの動作
ntpによる時刻調整は、調整幅が通常128mSと小さいので、1時間は様子をましょう。
2時間程度経過しても、時刻修正の兆候が見られない場合ハードウェアの不良も考えられます。

時刻調整の兆候としては、
・logファイルに 一時間毎に調整したメッセージが書かれる。
Jan 7 21:57:40 ntpd[91145]: offset 0.000994 sec freq -190.802 ppm error 0.000076 poll 8
・ntpq -p の出力の最初の桁に"*,+"が付く。また、reach が377になる。
% ntpq -np
remote refid st t when poll reach delay offset jitter
+192.168.0.102 GPS_NMEA(0) 2 u 3 32 377 0.926 -0.330 0.023
*192.168.0.192 GPS_NMEA(1) 2 u 10 32 377 0.747 -0.336 0.023
192.168.0.9 PPS(1) 2 u 3 32 377 0.757 6.559 0.161


○その他
・PC起動時には、システムクロックを計測してその後の動作の基準にしていますが、
CMOSバッテリ不足やハードウェアに何らかの異常があるととんでもない時刻を示すことがあります。(要修理です)
・BIOSの時計も起動時の初期時刻として使われてしまうので、ある程度合わせておいた方がいいです。

#4のqaaqです。

○ntp.conf 関連
server 行に "iburst" を付けておきましょう。
server ntp.nict.jp iburst <--こんな感じになります。

ntp サーバ起動時の時刻調整の収束時間が早くなります。
http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=ntp.conf&dir=jpman-5.4.0%2Fman&sect=0

○ntpdate での時刻調整
ntpdate -b -u [サーバ名] を複数回実行して、"offset の値が0.1以下"になるまで、強制的に時刻調整して下さい。

○ハードウエアclockの修正
hwclock -w コマンドでハ...続きを読む

Qレッドハットのバージョン確認方法

自分のサーバで使用しているREDHATのバージョン確認はどうすればいいのでしょうか?

more /etc/issue
とやっても英文しか出てきませんでした。

uname -all
でもカーネルのバージョンは出るのですが、REDHATのバージョンは出ませんでした。

Aベストアンサー

> more /etc/issue
> とやっても英文しか出てきませんでした。

その英文にはRedHatのバージョンは書いてなかったのですか?
書いていなかったとしたら、管理者により編集されている可能性
がありますね。

cat /etc/redhat-release

ではいかがでしょう?
やっぱり英文ですけど。

rpm -q redhat-release

でもいいかも

Q仮想メモリを表示するLinuxコマンド教えて下さい

インターネットで調べても、プロセスごとの仮想メモリを表示するコマンド
(top)しか分かりません。

全体の仮想メモリ使用率あるいは使用量が分かるコマンドってありますか?
ないなら、合計するしかないですか?

Aベストアンサー

No3です。
>topコマンドのMem:のusedとswapのusedを足しても仮想メモリは求まりますか?
>また、物理メモリはMem:のusedですか?

>Mem: 127240k total, 124732k used, 2508k free, 2644k buffers
>Swap: 1028152k total, 169640k used, 858512k free, 19112k cached

Memは物理メモリです。

仮想メモリ使用量=物理メモリ使用量ーバッファー量ーキャッシュ量+Swap使用量
124732-2644-19112+169640=272616
ですね。

物理メモリ量がぎりぎりですね。物理128MBに対して仮想が270MBくらいある。
物理メモリは仮想メモリの1/2~1/3は必要です。これ以上稼働プログラムを増やすなら、物理メモリを増設したほうがいいでしょう。

Qtopコマンドで表示されるVIRT、RESおよびSWAPの意味について

topコマンドで表示されるVIRT、RESおよびSWAPの意味について教えてください。
CentOS5.4上で動作しているアプリケーションの使用メモリについて調査しています。
サーバのメモリ容量は512MBで、この上でスワップアウトしないようにアプリケーションの起動数(常駐)を調整しようとしています。

topコマンドでプロセスが使用している物理メモリ容量はRES項目を見れば良いことがわかっていますが、VIRT(仮想メモリの総量)とSWAP(スワップされたサイズ)が具体的に何を示しているのかがわからず、困っています。

topコマンドの出力結果は下の通りです。
この検証用サーバでは暫定的にパーティション設定でスワップ領域を作成していません。
しかしtopコマンドではVIRTとRESの数値は差異があり、SWAP項目も大きな値を示しているプロセスがあります。

スワップ領域が無いのではtopコマンドはVIRTとRESが同じになり、SWAPはゼロとなると予想していたのですがどうしてならないのですか?

top - 03:35:44 up 36 min, 3 users, load average: 0.13, 0.17, 0.20
Tasks: 90 total,  1 running, 89 sleeping,  0 stopped,  0 zombie
Cpu(s): 0.0%us, 1.3%sy, 0.0%ni, 98.0%id, 0.0%wa, 0.0%hi, 0.7%si, 0.0%st
Mem:  515340k total,  452152k used,  63188k free,  18132k buffers
Swap:    0k total,    0k used,    0k free,  347404k cached

 PID USER    PR NI VIRT RES SHR S %CPU %MEM  TIME+ SWAP COMMAND
 4602 tomcat  25  0 645m 28m 6996 S 0.0 5.8  0:04.12 616m java
 2227 root   34  19 25656 10m 2108 S 0.0 2.0  0:00.12 14m yum-updatesd
 1680 root   17  0 11580 9964 240 S 0.0 1.9  0:00.02 1616 restorecond
 1936 haldaemo 18  0 5472 3676 1688 S 0.0 0.7  0:01.20 1796 hald
 2499 root   18  0 10540 2916 1504 S 0.0 0.6  0:00.03 7624 httpd
 3672 root   15  0 10064 2888 2308 S 0.7 0.6  0:02.50 7176 sshd
 3927 root   20  0 9916 2880 2308 S 0.0 0.6  0:00.34 7036 sshd
 2054 root   18  0 10116 2328 1696 S 0.0 0.5  0:00.04 7788 cupsd
 2500 apache  25  0 10540 2088 640 S 0.0 0.4  0:00.00 8452 httpd

どうしてもズレるので画像を添付してます。

topコマンドで表示されるVIRT、RESおよびSWAPの意味について教えてください。
CentOS5.4上で動作しているアプリケーションの使用メモリについて調査しています。
サーバのメモリ容量は512MBで、この上でスワップアウトしないようにアプリケーションの起動数(常駐)を調整しようとしています。

topコマンドでプロセスが使用している物理メモリ容量はRES項目を見れば良いことがわかっていますが、VIRT(仮想メモリの総量)とSWAP(スワップされたサイズ)が具体的に何を示しているのかがわからず、困っています。
...続きを読む

Aベストアンサー

答えにたどり着く前に、若干長めの説明が必要です。

> topコマンドで表示されるVIRT、RESおよびSWAPの意味について教えてください。

 RESは、ご認識の通り、そのプロセスの物理メモリ使用量です。

 VIRTとして表示されている仮想メモリ総量とは、そのプロセスの
仮想アドレス空間の中で、有効となっているページの総量です。
これに計上されるのは、参考リンクの「仮想記憶の概念図」でカラフルに
描かれている「物理メモリ」や「スワップ」に対応するページのほか、
以下のようなものも含まれます。

・プロセスが確保したメモリのうち、まだ一回もアクセスして
 いない部分。
  ⇒アクセスしたときに初めて物理メモリが割り当てられ、
   RESにも計上されていきます。
  (javaのRESに比べてかなり大きいVIRTは、これによるものと
   思われます。大きなヒープサイズを指定していませんか?)

・プロセスが ファイルを仮想メモリ空間にmmap(2) したが、
 まだ一回もアクセスしていない部分。
  ⇒Linux(UNIX) には、あたかもメモリをアクセスするかのように
   ファイルを読み書きできる mmap(2) という機能があり、
   かなり多用されています。mmap直後のファイルは、
   VIRTには計上されますが、物理メモリには読み込まれずRESには計上
   されません。ファイルをmmapした仮想メモリ空間にアクセスした
   部分が、物理メモリに読み込まれRESに計上されます。

> スワップ領域が無いのではtopコマンドはVIRTとRESが同じになり、
> SWAPはゼロとなると予想していたのですがどうしてならないのですか?

実は、SWAPとして表示される数値は、単に VIRT と RES の差です。

VERT(仮想メモリ総量)の中には、物理メモリ(RES)やスワップ領域の
使用量だけなく上記で挙げたような仮想空間の部分の合計が含まれ
ますから、スワップ領域がゼロでも、上記で挙げたような空間が
SWAP として表れているのです。

個人的にはこの数値をSWAPと呼ぶのは、かなり不適切だと思いますが、
多くのLinuxディストリビューションのtopコマンドで表示される
SWAP欄は、そういう計算をしているということです。

参考URL:http://ja.wikipedia.org/wiki/%E4%BB%AE%E6%83%B3%E8%A8%98%E6%86%B6

答えにたどり着く前に、若干長めの説明が必要です。

> topコマンドで表示されるVIRT、RESおよびSWAPの意味について教えてください。

 RESは、ご認識の通り、そのプロセスの物理メモリ使用量です。

 VIRTとして表示されている仮想メモリ総量とは、そのプロセスの
仮想アドレス空間の中で、有効となっているページの総量です。
これに計上されるのは、参考リンクの「仮想記憶の概念図」でカラフルに
描かれている「物理メモリ」や「スワップ」に対応するページのほか、
以下のようなものも含まれます...続きを読む

QUbuntuに必要なSSDの容量について

こんにちは。
UbuntuかLinux mintをインストールするパソコンについてです。
64GBのSSDを使うつもりなのですが、Linuxだとどれくらいの容量のシステムドライブを用意しておくべきなのでしょうか?
Windows8だと100か200は必要なようですが。

あと、無線LAN環境でもSSDの速度を体感できますか?
ネットにつながる速度がボトルネックとなってSSDの意味がなくなったりしますか?
私がパソコンでする作業といえば、ほぼGoogle Chromeで完結しています。

よろしくおねがいします。

Aベストアンサー

質問者さんは恐らくLinuxについては初心者さんという前提で解答します。

>64GBのSSDを使うつもりなのですが
十分ですね。十分すぎます。

ウブンツをインストールしても4Gも使用しないでしょうから、後の60G使いたい放題でしょう。

>Windows8だと100か200は必要
絶対必要じゃありませんね。Windows8をインストールするのに必要は容量はせいぜい20G位でしょう。

あとは、アプリケーションや、データをワンサカ入れれば100や、200はいっぱいになってしまいますから、
そういう意味では、100でも200でも足りない可能性があります。

結局何がやりたいのかによります。

例えば、冷蔵庫を買うとして、冷凍室が400mlで足りるか否かは、どのように使用するかによりますよね?
ひとり暮らしなのか、家族4人で暮らすのか、もしくは飲食店で使用したいのか?

どうように、ウブンツで何をしたいのかによって、必要な容量が変わってきます。

ただ、ウブンツをインストールしてちょっと使ってみる程度であれば64Gもあれば十分です。

また、SSDにするのは正解です。無線LANだろうが、優先LANだろうが、同じ容量であればHDとSSDで比べれば
大抵の場合SSDのほうが早いです。つまりはPCのスペックがよくなりますので、
SSDを搭載できるのであれば、SSDにしたほうがいいです。

質問者さんは恐らくLinuxについては初心者さんという前提で解答します。

>64GBのSSDを使うつもりなのですが
十分ですね。十分すぎます。

ウブンツをインストールしても4Gも使用しないでしょうから、後の60G使いたい放題でしょう。

>Windows8だと100か200は必要
絶対必要じゃありませんね。Windows8をインストールするのに必要は容量はせいぜい20G位でしょう。

あとは、アプリケーションや、データをワンサカ入れれば100や、200はいっぱいになってしまいますから、
そういう意味では、100でも200でも足りない...続きを読む

Qapt-get install ****** でinstallしたものをuninstallするには?

御世話になります。
vncserverだけをinstallするつもりが
誤って
apt-get install vncとうってしまいました。
これをuninstallしたいのですが
どのようにすればよろしいでしょうか?

教えて下さい。

Aベストアンサー

# apt-get remove パッケージ名
では、設定ファイルは削除されずに残ります。

完全に削除するときは、
# apt-get --purge remove パッケージ名
です。

Qスワップ領域を持たない8GBメモリのパソコンを作る

CPU:fx-8350
マザボ:BIOSTAR A880G+
メモリ:8GB
HDD:2TB
OS:Fedora
ビデオカードなし

の手作りパソコンを作ろうと計画しています
メモリ容量が充分大きいので
スワップがおきて処理速度が低下することを防ぐために
スワップ領域を設けないようにしたいのですが何か支障があるでしょうか?

よろしくお願いします

Aベストアンサー

というか、Windowsの話ばかりするやつなんなの?ですね。

まず、メモリー足りてるのに、スワップが起きて速度低下という話題自体が
Windows特有な話題だったりします。

うちはSSD化でswap無し構成にしていますが
ピグチャンネルでなんらかのバグでメモリー食いつぶすので
とっさに転がってたUSB3.0メモリーをswapにしてみたりしました。
(その後埒があかないので、flash落とすようになりました)

で、今空いているけど、それ挿して、10分経たのち見た/proc/meminfoがこれ。
$ cat /proc/meminfo
MemTotal: 8072396 kB
MemFree: 271848 kB
Buffers: 122408 kB
Cached: 1304216 kB
SwapCached: 0 kB
Active: 6562244 kB
Inactive: 870916 kB
Active(anon): 6045292 kB
Inactive(anon): 195296 kB
Active(file): 516952 kB
Inactive(file): 675620 kB
Unevictable: 4 kB
Mlocked: 4 kB
SwapTotal: 7711132 kB
SwapFree: 7711132 kB

あっても使わないみたいです。ので別に、こだわる必要ないようにも思います。


なおWindowsではページングファイルの変更はちょっと手間がかかり
なんとOSの再起動を要求されるような噂まで聞かれます。驚きです。

対して、Linuxでのswapは、単独のパーティションとして作られますが
パーティション作成自体は、普通にパーティション操作すればいいので
インストール時にUSBメモリーを挿しておいて
これに設定して、インストール後、再起動でUSBメモリーを抜いておけばこれでOK。

エラーは出るのかどうか知らないくらい、気づきません。
dmesgとかに出ているようには思いますが…メモリー余ってればなんとも無い。
気になるなら/etc/fstabの該当行をコメントアウトすればいい。


手動でのswapパーティション作成は、fdiskやgpartedなどでパーティションを作成
パーティションIDを82に指定し、パーティションテーブルを再読み込み。

その後、該当パーティションを指定してmkswapを実行。
実際に、それを有効にするにはswaponコマンドでパーティションを指定して実行。
無効にするときはswapoffし、スワップアウトされていたデータが解放されるまでちょっと待ち。
(この時点でメモリー不足で強制終了されるソフトが出るかもしれません)


なお、swapパーティションは、複数指定し、インターリーブアクセスで機能させることもできますし
機器の耐久性や帯域の問題を無視すればUSBメモリーでも使えます。
USBやE-SATAのホットスワップ機器で、つけたり外したりも自由です。

でも、blkidでUUID調べて、UUID指定で/etc/fstabを記述しても
USBメモリーswapを挿しただけで、自動的にswaponされる…なんて仕組みは成立しないみたいです。
やろうと思えばcronとかでswapon -aさせとけばいいんですけどね…

というか、Windowsの話ばかりするやつなんなの?ですね。

まず、メモリー足りてるのに、スワップが起きて速度低下という話題自体が
Windows特有な話題だったりします。

うちはSSD化でswap無し構成にしていますが
ピグチャンネルでなんらかのバグでメモリー食いつぶすので
とっさに転がってたUSB3.0メモリーをswapにしてみたりしました。
(その後埒があかないので、flash落とすようになりました)

で、今空いているけど、それ挿して、10分経たのち見た/proc/meminfoがこれ。
$ cat /proc/meminfo
MemTotal: ...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング