メモリのファイルキャッシュについて。

OS X Yosemite 10.10.2 を使用しております。

例えばメモリ16GB 搭載のMac で約13GB のメモリがファイルキャッシュに使われることがあります。

ネットなどを拝見していると「ファイルキャッシュ」がOS の動作を遅くするような情報に遭遇することがあります。


そこで、ファイルキャッシュで動作が遅くなるのか調べているのですが、なかなか遅くなる状況に遭遇できません。

ファイルキャッシュで、どのような動作が遅くなるのか情報をお持ちの方がいらっしゃいましたら、提供をお願いいたします。


今のところ試したのはFinal Cut Pro X で30 分程度の時間がかかる動画の読み込みと、仮想環境のOS X Yosemite の起動時間を調べてみましたがファイルキャッシュが大量にある状態と空きメモリが大量にある状態で誤差程度の時間差しかありませんでした。

投稿日 2015/02/01 05:11

返信
返信: 45

2017/08/08 05:06 ni_ki への返信

今更ですが。

私はメモリ解放で動作が早くなるという点は、このトピックを立てた時から懐疑的です。このトピックを書き進むにあたり懐疑的から、ほぼ「効果がない」に意識が変化しました。それが正しいのではないかと裏付けてくれるように、大手(だと思う。)雑誌社のMac 雑誌でも否定的な記事が掲載されました。

しかしならがら

その後、諸々の体験をしているなかで「効果あることもあるかも」と思える状況を見つけました。検証はできていません。

それはメモリが富んでいない状況で仮想環境でmacOS を動かしているときです。我が家ではサーバーを仮想環境で動かしているのですが、この仮想環境で使用しているMac を再起動する際にも、の凄い時間がかかることがわかりました。再起動はOS のアップデートなど数ヶ月に一度なのですが、その際にどうやらスワップから大量に書き戻しているようです。そしてそれはゲストOS を終了するためのように見えます。

仮想環境を動かしていると皆様もご存知の通り大量にメモリを消費します。そして仮想環境で動いているOS もファイルキャッシュをしています。仮想環境で動いているOS にとってはいつでも解放できるファイルキャッシュですが、ホストOS からはキャッシュかどうか区別がありません。なのでスワップしてでも確保を続ける可能性が大きいです。

と取り留めもないですが、もしかすると仮想環境で使っているOS はホスト、ゲスト共にキャッシュを解放してから終了した方が早いのかもしれません。もっともゲストOS で使っている以上、解放してもホストOS にとっては結局同じことなのかもしれませんが。

2017/08/08 17:58 ni_ki への返信

4GB Memory / OS X Snow Leopard / VMware Fusion 3 環境で Windows XP SP3 32bit 仮想マシンを運用していた頃は、こまめなキャッシュ解放が非常に有効だった記憶があります。ただ、8GB Memory になってからは、キャッシュ解放をしなくなりました。

現在の 16GB Memory / macOS Sierra 10.12.6 / VMware Fusion 8.5.8 環境で Windows 10 Pro 64bit の運用状況をアクティビティモニタで見ていると、仮想環境&仮想マシン関係の使用メモリが絶えず増えたり減ったりを繰り返しております。VMware Fusion は、前のバージョンの 8 からだったかさらに前のバージョンの 7 からだったか OS X のメモリ管理に対応したと聞いております。メインメモリが潤沢になったことでキャッシュを気にすることは全く無くなりましたが、仮想環境も以前のようなメモリ喰いでは無くなりつつあるように思います。

2017/08/09 08:04 HAYAMA への返信

情報有難うございます。

OS X Snow Leopard の頃はキャッシュの解放の効果は諸々あったようですね。HAYAMA さんの書き込みを読んで気付いたのですが、仮想環境でもParallels とVMware だと挙動が違うかもしれませんね。当然なことでしたが失念しておりました。macOS Sierra 10.12.6 が出た後から仮想環境とホストOS を監視しているのですが、何故かホスト側のファイルキャッシュが増えず、思うように検証ができないでいます。前回、再起動した際には2GB ほどスワップがあり再起動に十分以上かかったのですが、今はスワップが少なく試しようがないです。

なお前回、ホストOS を再起動した際に十分以上再起動を遅延させたのはParallels Desktop らしいのはわかっています。しかもゲストOS のプロセスはすぐに終了できたのですが、Parallels 本体が終了せずホストOS が再起動できなかったようです。遅延している最中にスワップがどんどん減っていき、ほぼゼロになる頃にようやく再起動が起きるのが観察できました。

2015/02/01 12:19 ni_ki への返信

ni_ki様


おはようございます。いつも凄いサポートをされていてとてもリスペクトしています。


全くお力になれないのですが、私も是非教えて欲しいと思っていた事なのでコメントさせて頂きました。

apple storeなどでは、メモリ管理ソフトがかなり上位沢山きております。私も興味本位で FreeMan(有料ランキング上位) と言うアプリを購入したのですが、今の所使用場面がありません。先日macbookpro13(mem8G)を購入したので、使い道があるのかな?と少し期待をしているのですが、こういうアプリは知識のある方は基本的に百害あって一利なしと言われることが多いですよね。でも、沢山売れている様なので何か効用があって皆様買われているんだと思うわけなのですが、私はその辺りの理由が知りたいと思っております。知識は無いですが何かテストとかでしたら言って下されば時間がある時にやりますので、ご指示ください。

現在 iMac late2012 i7 3.4 :mem 32G:1T HDD:27inchモデル

  macbook pro late2014 i5 2.6:mem 8G:SSD256 Retinaモデル

があります。

2015/02/01 18:03 kai_markII への返信

kai_markII による書き込み:


沢山売れている様なので何か効用があって皆様買われているんだと思うわけなのですが、私はその辺りの理由が知りたいと思っております。

機械的な処理よりも人手によるきめ細かな処理の方が優れていること(信仰?)を確認したい。

機械(プログラム)より優れている自分を確認したい。

OSの開発者は多くのバグを放置する余り賢くない人達だと思っている。

2015/02/01 18:44 ni_ki への返信

当方FinalCutは使ってないし、ファイルキャッシュなど意識したこともないですが。


Final Cut Pro X で

動画のレンダリングをオンメモリで高速に行うために最大限に実メモリを確保してる

だけでしょ?


システムからみたらアプリケーションヒープだと思う。(実メモリにロックしてる)

ファイルキャッシュとはなんの関係もないと思う。

沢山売れている様なので何か効用があって皆様買われているんだと思うわけなのですが、

私はその辺りの理由が知りたいと思っております。


メモリ管理ソフトなんて私はなんにも使ってませんねぇ。

使うほうが副作用大きいと思う。


たぶんそういうのを買ってるのはWindowsからMacに移行してきた人で、

定期的にデフラグやるクセが未だに抜けてない?人なのでは?

unixのメモリ管理に慣れてる人はそんなメモリ解放ユーティリティなど金出して

まで買いませんよね。(コマンドラインでやれる範囲でやればいいだけのこと)


と思ってますが。

2015/02/02 00:03 xy への返信

ni_ki様の本題である「ファイルキャッシュで遅くなる事象の報告」でない事を先に謝罪します。

また、メモリ管理アプリに触れているのは、キャッシュやスワップが増える->遅くなる(ni_ki様はここの状況がキャッシュの場合の例を具体的に知りたいと言うことですよね)->そうだメモリ管理ソフトで解放しよう と言う流れなのでは無いのかと思っている為 ni_ki様に教えて頂きたいと思った次第です。お邪魔だと思うのであまり書き込まない様にします。(今回はせっかく私の質問に答えて頂いたお二人に返事をしたいので見逃してください。)


xy様

こんにちは。お世話になっております。

なるほど。自己満足であると言うご認識な訳ですね。やはり機能的な意味はないアプリケーションではあるけれども、自分の手で介入(それでもアプリに任せている訳ではありますが)した方が安心できると言う気持ちの問題と考えていらっしゃる(実際そうなのかもしれませんね)と言う事ですね。


亀どん様

こんにちは。

私もそのwindowsからmacに移行してきた人なのですが、windowsではあまりメモリ管理ソフトって使わない方が多い様な気がするのですがいかがでしょうか。ですが、なんとなく言わんとされている意味は解りました。xy様と同様で自分で何か作業をしないと不安になってしまうから、精神安定剤のデフラグの様にメモリ管理ソフトで管理している感が欲しいからという事でしょうか。

亀どん様は非常に詳しい方で人為的にメモリを管理する方法がコマンドラインで行っていると言うことですが、その作業を私を含めた無知層はメモリ管理アプリに頼ると言う考え方はできるでしょうか?(その正常な管理の仕方の機能をどのメモリ管理アプリが持っているかは別として)もし、亀どん様が行われている様なターミナルからの操作をアプリが行っている場合は一定の効果があると考えて宜しいのでしょうか?

お金を出してまで・・・については知識が無い者はそれをお金を対価にかなえる(アプリ)訳ですので、そこはお見逃しください。

私は現在どんなタイミングでメモリの解放をすると効果があるのか、またその事にはどんな効果があるのか(軽くなるんだろうとは思いますが)と言う事が解っていません。

ただ、freemanと言うアプリをメニューバーに置いていると、円グラフが真っ黒になっていきなんかボタンを押さなきゃ・・・みたいな気持ちになります。(笑)

ですが、解放ボタンを押してもそれほどの量のメモリを解放する訳ではありませんし、数十秒後には元の状況に戻ります。


メモリ管理アプリが売れている事の要因として、ni_ki様が探されている"遅くなるから"導入されている方が多いのではないのかな?と勝手に想像しています。私もメモリキャッシュが〜とかのサイトを良く見かけます。そこで一定の効果が出ているから売れているのだと勝手に思っているのですが、私自身はどのように使ったら効果があるのかが今のところ良く解らないのです。


長文な上に少し本題とずれている発言をお許しください。

2015/02/02 01:39 kai_markII への返信

iMac から送信


2015/02/02 17:04、kai_markII <discussions@apple.co.jp> のメッセージ:


(今回はせっかく私の質問に答えて頂いたお二人に返事をしたいので見逃してください。)

本題と関係のある話ですから問題ないです^^

それで大変申し訳ないのですが、私のMac が一台故障モードに入ったので、Reply が遅くなります。短い文ならiPhone で書けるのですが、このトピックの件は文章が長くなるので申しわけありません。

2015/02/02 02:02 kai_markII への返信

こんにちは


確かにOS9の頃はメモリの断片化、細分化が激しかったしOSの仮想記憶も

イマイチだったので、貴重なメモリを有効活用するためにそういうユーティリティは

使いましたし効果ありました。 OS9ユーザはメモリの断片化をいつも気にしてたし、

Windowsユーザはデフラグを毎週のように気にしてた。。。(笑)


数十秒後には元の状況に戻ります。

つまり、今はOS(カーネル)がそういう風にメモリを上手に使っている。

それをわざわざ人間の手で邪魔するようなアプリを金出して購入する

のはやめといたほうがいい、、と思うのです。(まさに百害あって一利なし)


だから私は

purgeくらいは知ってるけど、人為的にメモリ解放しよう

などど考えたことはありません。最近ではswapがどのくらい

起きてるか? 
すら興味なくなりました。

そのくらいメモリ管理もディスク管理も人の手でヘタにイジるような領域では

なくなったと感じてます。


ただ、、ディスク管理やメモリ管理のユーティリティ類は持ってたほうが安心、

という風潮/感覚が今でもあるのは否定しません。

それがこの種のアプリが上位ランクの理由ではないでしょうか。

(昔効果あったし、数百円で安いし、安定するカモ?速度上がるカモ?)


で、なんにも効果ない、と。(笑)


キャッシュファイルに関しては壊れたキャッシュや古いキャッシュを参照してて

不具合が起こってた、、って事は今でもありますよね。

(でもこれはファイルキャッシュの肥大で遅くなるとかの話とは別の問題ですよね。)


ではでは。

2015/02/02 04:49 亀どん への返信

ni_ki様へ

是非聞いてみたかった事なので、許可してくださりありがとうございます。macのトラブル大変そうですが、ni_ki様ならすぐに直せちゃうんだろうとあまり心配してなくてすいませんが、がんばってください。


亀どん様

お返事ありがとうございます。

なにか納得ができた気がします。私は 最近macの動作重いな ->メモリをチェックするとキャッシュやスワップ多い!->メモリ管理のソフトを使おう!

と言う流れだと思っていたのですが、実際はmacの動作は特別重くなっていないが、以前からmacを使用して居た方はOS9の頃からの刷り込みでこの手のアプリが必要と思っていて、またその様なベテランの方からの情報が流れ、新規の方も有用だと思い込む。また、私のようにwindowsからmacに移動して来た方はデフラグだークリーンアップだーと気にしていた方々が、macにしたらやること無くて何かしないと正常に動くわけが無い。そうだメモリを管理しよう。と言う傾向があり、OSXでは必要性が無いのに、なんとなく多くの方が信じている都市伝説的な事になっていると言う事でしょうか。

なるほど!と思う反面、反対の立場の意見(必要だとか有用だとか)も聞いてみたい気持ちもあります。都市伝説だけでappstoreで現在(2/2)2位(FreeMan)と言うのも何か・・・不思議です。

2015/02/02 09:06 kai_markII への返信

kai_markII さんによる書き込み:


是非聞いてみたかった事なので、許可してくださりありがとうございます。

このコミュニティの書き込みは許認可製では無いので問題無いです^^; たぶん。

すぐに直せちゃうんだろうとあまり心配してなくてすいませんが、がんばってください。

恐らくハードウェアの故障なので、修理以外には手が無いと思われる状況です^^;;


それで最初の書き込みで明記していなかったので誤解を与えていると思いますが、恐らく少なくともOS X Yosemite ではメモリ解放アプリケーションは一般的な環境では効果無いと思っております。なので何故、「ファイルキャッシュのメモリ解放を再起動以外に手動で行なう必要があるのか」と言う点で私が知らない事象があるのかどうかが、このトピックの主題とさせて頂きたいです。今までのトピックでこれについ有効なReply を頂いたことがありませんので。

2015/02/02 15:48 ni_ki への返信

ni_ki様


おはようございます。ThunderboltのHDDの件での故障なのですね。失礼しました。生憎ThunderboltHDDを持っていない上に知識もないのでお力になれず申し訳ございません。


話題の方向を少し変えてしまった様で少し心苦しいのですが、ni_ki様も恐らく世間でながれている「メモリキャッシュでmacが遅くなる」事象について何か具体的な例が欲しいと言う事は、OSXのメモリの管理方法に問題がある可能性がありそれを確認したいと言う事だと思うので、そこを疑っている方がメモリ解放アプリを使用していると言う可能性が多いと考えているので、少し違いますが大きくベクトルはずれていないと思っています。


ni_ki様、xy様、亀どん様共にメモリ解放ソフトでは遅くなる事象を解決出来ないと言う立場なのは理解しております。

私は"解らない(というより無知)"と言う立場で、こんな売れているのだから何か有用な使い道があるのではないかと言う立場です。(少しやはり意味のないアプリなのか・・・と思っていたりしますが)

App Storeで"memory"で検索した場合、かなりの数のメモリ解放アプリが見つかります。(ざっと見ただけでも25以上恐らくもっと多くあります)その中で私が購入したFreeMan(2/3現在有料ランク1位)はどの位売れているのか解りませんが、少なくともGarageBandなどのappleの人気アプリよりも売れています。価格が違う上にそもそも用途が全く違うので比較の意味がありませんが500円になったGarageBandより需要のあるアプリだと言う事が解ります。

FreeManのレビューも評価も高く、非常に有効ですとのコメントを多くみられます。(もちろん中にはス○マの可能性もあるのでしょうが)

この状況が先に書きました"都市伝説"だけでの状況なのか・・・やはり何かメリットがあるのではと考えているのですが・・・。

ただ、xy様がおっしゃっていた通り自分の手でメンテナンスしたいと言う信仰の様な(意味がないとは解っているが可能性にかける)気持ちがあるのも理解はしています。(私も少しありますWindows使ってたのでデフラグとかレジストリとか・・・心配です(笑))

もしも、この様なアプリを使っている方々がすべて信仰の様な気持ちで使われていたら、答えが出ない(水掛け論になる)と思うのですが、詳しい方々が検証されるととても意味がある様な気がします。

2015/02/02 17:24 kai_markII への返信

HDDの回転速度が1万rpmを越えたあたりからデフラグは却って逆効果と言われるようになりましたね(連続するセクタの読み取りで取りこぼしが起きるので、連続するセクタのデータ読出しがかえって遅くなる。再生系チップの処理速度がどの程度まで追いついているかもよりますけど)。

SDDだと、デフラグは劣化を促進するので、デフラグしないほうがいいというか、してはいけない。


また、OSXのファイルシステムにはファイル配置を動的に最適化する機能が組み込まれているので、デフラグは却って良くない。

(WindowsのNTFSにも入っているんじゃなかろうか、全くの推測ですけど)


ということで、もうデフラグは忘れた方がいいと思いますよ。

2015/02/02 18:18 kai_markII への返信

私も、意味がないので不要論の立場なんですが…。

アプリの使い方によっては、多少、効果がある場合もあります。


例えば、FirefoxでWebページをタブで200〜300個位、開いていると、使用メモリ量が2GBに近づいて、極端に動作が遅くなる場合があります。

また、Web上の不要な広告を消してくれるFirefoxアドオンのAdblock Plusを導入していて、iFrameを多用しているページを開いていると、少ないタブ数でも極端にメモリを喰われます。

そのまま無理矢理Firefoxを使い続けると、他のアプリの動作も遅くなり、大抵の場合は、その後Firefoxが落ちます。

このような状態の時にメモリ管理ソフトを使用すると、Firefoxが確保していたメモリが解放されて、確かに動作は軽くなります。

ただ、Firefoxは軽くなっても、同時に起動していた他のアプリに影響が出る事があるので、諸刃の剣なのですが…。

しかも、そのままの状態でFirefoxを使い続ければ、また同じ状態になりますので、一時しのぎですし…。

それなら、Firefoxのアドレスバーに「about:memory」と入力してメモリ管理画面を表示させたり、Firefox用アドオンのFree Memoryを使ってメモリを解放したほうが、Firefoxだけに作用するので他への影響が避けられますから、よりベターだとは思います。

Firefox 32以降は、この辺りも、多少、改善されていますけれどね。


まあ、極端な事例ですけれど、こういう事もあるという事で。


でも、個人的にはメモリ管理ソフトは不要だと思います。

アプリの作りが、そのユーザーの使い方に合っていない場合に、それを無理矢理メモリ管理ソフトで是正するのは、どうなんでしょう…。

2015/02/02 18:59 ni_ki への返信

*** メモリ解放ソフトウェアについて ***


私も以前はメモリ解放ソフトウェアを使っていた時期がありました。その頃は実メモリが 4GB で、メモリ喰いの仮想環境を使用している時に動作が緩慢になった際キャッシュ解放を行っていました。しかし、実メモリが 8GB になった時点でその必要性が無くなり、メモリ解放ソフトウェアを使用しなくなりました。現在、実メモリが 16GB となり OS X Yosemite 自体が(私個人の感覚では)メモリ管理をきちっとやってくれていますので、キャッシュ解放の必要性は無いと感じています。


*** VMware Fusion 7 仮想環境実行時の OS X Yosemite のメモリ管理について ***


仮想環境を起動する前使用メモリが 9.5GB だったのに対し、VMware Fusion 7 を起動した時点で使用メモリが 9.7GB 、Windows 8.1 Pro 仮想マシンを起動した時点で使用メモリが 12.7GB 、Windows 上で Web 閲覧やファイル操作を行って使用メモリが 14.9GB となりました。その後、Windows 8.1 Pro 仮想マシンをシャットダウンさせると使用メモリは 9.7GB になり、VMware Fusion 7 を終了させると使用メモリが 9.5GB に戻りました。少なくとも VMware Fusion 7 仮想環境使用時には、OS X Yosemite のキャッシュ管理はきちんと作動していると考えられます。OS X Snow Leopard ではこのようなスムーズなキャッシュ解放がなされなかったように記憶しております。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

メモリのファイルキャッシュについて。

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。