問題タブ [memcachier]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - キーと値のペアを非同期に設定して Rails.cache.write を改善する
Rails.cache.write
現在、dalli を使用してmemcachierクラウドにアイテムを書き込む際のパフォーマンスを改善することを考えています。
キャッシュに関連するスタックは、現在次のとおりです。
heroku, memcachier heroku addon, dalli 2.6.4, rails 3.0.19
パフォーマンス監視に newrelic を使用しています。
現在、「アクティブな学生」のリストを必要とするリクエストを処理するコントローラーからメソッドが呼び出されたBusinessUser
ときに、インスタンスで表される特定のログイン ユーザーの「アクティブな学生」を取得しています。active_students
newrelic を調べた後、基本的に memcachier に重要な値を設定することで、アプリの大きなパフォーマンス ヒットを 1 つ絞り込みました。毎回平均225ミリ秒かかります。さらに、memcache キー値を設定するとメイン スレッドがブロックされ、最終的にリクエスト キューが中断されるようです。明らかに、これは望ましくありません。特に、キャッシング戦略の要点がパフォーマンスのボトルネックを減らすことである場合はなおさらです。
さらに、プレーン dalli と Rails.cache.write を使用してキャッシュ ストレージのベンチマークを行い、同じ値の 1000 個のキャッシュ セットを使用しました。
通常の dallicache.set
では、2.066113 秒を使用して 1000 エントリをキャッシュに書き込み、平均cache.set
時間は 2.06 ミリ秒です。
ではRails.cache.write
、2.108364 秒を使用して 1000 エントリをキャッシュに書き込み、平均Rails.cache.write
時間は 2.11 ミリ秒です。
⇒ memcachier の問題ではなく、単に保存しようとしているデータの量に問題があるようです。
#fetch メソッドのドキュメントによると、キャッシュセットをwrite
別read
のスレッドまたはワーカーにスローしたい場合、それは私が行きたい方法ではないようです。そして自明のことですが、私は非同期で読みたくないのです。
Rails.cache.write
キーの値を設定するときに、ワーカーにスローすることでボトルネックを減らすことはできますか? または、より一般的には、実行するたびにメインスレッドをブロックしないように、これを行うためのより良いパターンはありRails.cache.write
ますか?
ruby-on-rails - memcachier と通常の Rails.cache を使用する利点
この記事に出くわしましたhttps://devcenter.heroku.com/articles/memcachier
キャッシュをmemcachierに保存する主な利点は何ですか。
サーバー自体でのキャッシュと比較して、キャッシュに他のサービスを使用する利点は何ですか?
Railsで低レベルでキャッシュする場合、特に利点はありますか??
ruby-on-rails - heroku へのデプロイ時に memcachier(memcached) エラーが発生しました
Gemfile の ruby のバージョンは v2.1.2 で、rails のバージョンは 4.1.1 です。
と、こんなものがあります。
すでに memcachier アドオンを追加しています。しかし、レールコードをherokuにデプロイすると、このエラーが発生しました。
これの理由は何ですか?どうすれば回避できますか?
ruby-on-rails - require 'dalli' はコンソールで false を返しますが、それは gemfile にあります
https://devcenter.heroku.com/articles/memcachier#rubyに従ってください
memcachier と dalli gems を追加し、バンドル インストールを行いました
次に、コンソールを実行しました
そして私はタイプした
false を返します
理由はわかりませんが、ステージングおよび本番環境でもこれを行います
node.js - Heroku ワーカー Dyno memcachem
私は 3 つの dyno を使用する Heroku アプリを持っています。1 つの Web と 2 つのワーカー dyno です。ダイノ間通信には memcachier を選択します。すべては nodejs を使用して実装されます。
Web-Dyno は memcacher サービスに問題なく接続でき、魅力的に動作しますが、worker dyno に接続しようとすると失敗し、TCP 接続がリセットされます。
サービスに接続する方法は、Web-Dyno で既に機能している方法と同じです。
問題はどこだ?
このコード:
web-dyno では動作しますが、worker-dyno では動作しません。
php - heroku PHP セッションにアプリを再デプロイすると消える
Heroku にセッションを使用する Symfony アプリがあります (例: ユーザーのログイン状態を維持するため)。
memcachier を構成しました (heroku addons
コマンドの出力):
.user.ini
また、プロジェクトのルートに次の内容のファイルを作成しました。
composer.json
また、次の要件に追加しましたext-memcached
。
したがって、経由でインスタンスにログインしheroku run bash
、memcahed モジュールがインストールされているかどうかを確認すると、すべて問題ないようです (nginx および php5-fpm を介して実行された phpinfo() も同じ構成値を返します)。
ただし、インスタンスを検査しheroku run bash
て実行すると、設定してもsession.save_handlerが残っているphp -i | grep session
ことがわかりますfiles
.user.ini
session.save_handler = memcached
.user.ini
では、実際の構成で構成が有効にならないのはなぜphp.ini
でしょうか?