memchachedのようなキャッシュサーバを使う場面についての質問です。
キャッシュサーバは、データベースへの問い合わせ結果をキャッシュとしてメモリ上に保存しておきたい時に使いますよね?
でも例えばphpアプリケーションを作っているとして、サーバ上で動いているphpのプロセスが一つしかなくて、メモリの容量もデータベースの容量と同じくらいの場合は、わざわざキャッシュサーバを使わなくても、osが勝手にメモリ上にキャッシュしておいてくれるから、キャッシュサーバは必要ないのかなと思ったのですがどうでしょうか?
逆にfastCGIとかを使っていて、そのサーバーで複数のphpプロセスが動作するようになっている場合は、一つのプロセスが使えるメモリの量が減って、データベースのデータがキャッシュに乗る量も減り、複数のプロセスが同じデータをキャッシュすることも発生するから、キャッシュサーバを使って複数プロセスでキャッシュを共有する必要が出てくるのかなと思ったのですがどうでしょうか?
認識が間違っていたら教えて頂けると幸いです????♂️
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
キャッシュサーバは、データベースへの問い合わせ結果をキャッシュとしてメモリ上に保存しておきたい時に使いますよね?
メモリにキャッシュしたい時に使います
サーバ上で動いているphpのプロセスが一つしかなくて、メモリの容量もデータベースの容量と同じくらいの場合は、わざわざキャッシュサーバを使わなくても、osが勝手にメモリ上にキャッシュしておいてくれるから、キャッシュサーバは必要ないのかなと思ったのですがどうでしょうか?
OS
のキャッシュは全く目的が違います
それはphpから見てもDBから見ても都合良く保存しておいてくれるタイプのキャッシュではありません
そのサーバーで複数のphpプロセスが動作するようになっている場合は、一つのプロセスが使えるメモリの量が減って
確かに減りはしますが、プロセスが常にMAXのメモリ容量を確保し続ける訳じゃないので微々たるものです
全く気にする必要はありません
投稿2021/07/17 09:55
総合スコア6426
0
自己解決
この記事によると、ただosの既存の機能でメモリにキャッシュするのと、インメモリデータベースでは、性能にかなりの違いがあるそうですキャッシュの大きいRDB vs インメモリデータベース、性能がどれだけ違うのか調べてみると
追記
結論
おそらく、プロセスが一つだろうと複数だろうとメモリ上にキャッシュされるディスクの量は変わらないものと思われます。
理由
「大規模サービス技術入門」という本に、データベースサーバを立ち上げて、しばらくするとメモリ上にデータベースのデータがキャッシュされて、システムが高速化されると書かれています。
じゃあメモリ上のどこにディスクデータが保存されるかというと、おそらくこのディスクキャッシュ上に保存されるのだと思います。ディスクキャッシュ
自分は各プロセスが持つメモリ上の領域に、毎回ディスクデータを読み込んでくるのかと当初は思っていて、今回の質問をしたのですが、良く考えると各プロセスが独自にディスクのデータをキャッシュしていたら、そのプロセスが終了した時点で、そのキャッシュもクリアされるので、永遠にキャッシュが最適化されることは起こり得ないですね。
追記
file base cache で検索
https://stackoverflow.com/questions/3148076/which-is-faster-better-for-caching-file-system-or-memcached
投稿2021/07/17 09:20
編集2021/09/10 07:16総合スコア37
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/17 12:02
2021/07/17 12:20
2021/07/17 12:23
2021/07/17 12:47
2021/07/17 13:34
2021/07/17 13:52
2021/07/18 00:00
2021/07/18 01:33
0
キャッシュサーバは、データベースへの問い合わせ結果をキャッシュとしてメモリ上に保存しておきたい時に使いますよね?
それだけとは限りません。セッションデータのような、データベースに永続させる必要がない種類のデータを置くのにも使います。
投稿2021/07/17 09:15
総合スコア146018
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/17 09:18
2021/07/17 09:24
2021/07/17 09:27
2021/07/17 09:27
2021/07/17 10:57
2021/07/17 11:21
2021/07/17 12:00
2021/07/17 12:17
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/17 10:34
2021/07/17 10:45
2021/07/17 10:49
2021/07/17 11:20
2021/07/17 12:10
2021/07/17 12:16
2021/07/17 12:46
2021/07/17 12:53 編集
2021/07/17 12:55
2021/07/17 13:01
2021/07/17 16:26
2021/07/18 01:30