Memcached调优

Jun 07, 2016 pm 04:31 PM
memcached オリジナル 全体 記事 チューニング

文章系本人原创,转载请保持完整性并注明出自 《四火的唠叨》 项目中有一个对实时响应性比较高的服务,引入了Memcached以减少延迟和减少数据库压力。但是期间遇到了一些问题,这里记录一些调优细节。? 客户端选择 最开始我使用的是 Memcached Java Client,

文章系本人原创,转载请保持完整性并注明出自 《四火的唠叨》

Memcached调优项目中有一个对实时响应性比较高的服务,引入了Memcached以减少延迟和减少数据库压力。但是期间遇到了一些问题,这里记录一些调优细节。?

客户端选择

  • 最开始我使用的是 Memcached Java Client,但是最后放弃了,放弃原因包括:
    • 有时会出现的“No Thread For Socket”异常,我记录在 这里;
    • 它不支持NOREPLY模式(在这种模式下,更新缓存的set操作可以不需要Memcached服务端响应,这使得set操作非常非常快)。
  • 现在我使用的是 XMemcached。

统计信息

可以通过nc命令向Memcached服务端发送消息来获取统计信息,例如:

echo "stats settings" | nc localhost 20200 | sort
ログイン後にコピー

但是,我更需要客户端的统计信息,尤其是缓存命中率,set操作成功率等等。所以在客户端添加了一个简单的统计模块。每次处理用户请求的过程中,通常有两次向Cache服务端的提交get请求,很多情况下还有两次set请求,合计消耗17ms,在把set请求改成NOREPLY模式以后,这个数减少到10ms以内。因此,对于实时性要求比较高的情形,请打开这个模式,或者干脆使用异步的set。

服务端参数

  • 可以使用-U来使用UDP传输,但是收效不大。
  • -k参数可以阻止换页操作发生,在内存足够的情况下对提高性能有益。
  • -C参数可以禁用CAS。
  • -t指定使用的线程数,如果你是多CPU、多核CPU,可以把这个值配成和总CPU核数一致。
  • -f参数,增长因子,存储大对象把它配大一点可以提高效率,配小一点可以减少浪费。

客户端参数

  • 在使用Memcached Java Client的时候:
    • 由于它会使用direct memory,一定不能加上DisableExplicitGC这个参数,否则就等着OOM吧;
    • 配置大一些的heap size可以提高L1 cache的命中率;
    • 把alive check置为false。
  • 对于实时性和响应性要求比较高的项目,需要做GC调优,主要是GC时延,比如配置MaxGCPauseMillis参数到一个可以接受的值,但是不是越小越好,减低时延的同时会降低吞吐量。
  • 有同事提了个建议,在客户端存放一个cache key的集合,可以在去cache server查询之前,先在本地查看一下是否有缓存记录(比如用 Bloom filter来实现),如果有,再去cache server查询。这个集合可以和实际的cache key有出入,也许一个小时同步一次就可以。但是实际上实现起来比较困难,本身key set的总量非常大,而且Memcached最初提供获取key iterator的接口返回的是一个限定大小key set的iterator,缺乏实际意义(这个接口在后来Memcached的版本中已经被废弃)。至于stats方法,它会把所有cache对象dump出来,只能小规模调试的时候使用。
  • 关于Nagle算法:Nagle的好处是可以批量处理请求,提高TCP包有效部分的大小,从而提高网络利用率,但是如果对每个请求处理时延要求很高的话请关闭。
  • 一定要指定socket timeout或者get/set timeout。

最后,有人做了一个几个Memcached客户端的综合的性能试验: 链接。

文章系本人原创,转载请保持完整性并注明出自 《四火的唠叨》

分享到:

你可能也喜欢:

  • Memcached调优 Issue record: “No thread for socket” about Memcached
  • Memcached调优 设计缓存框架需要关注的要素
  • Memcached调优 Ehcache详细解读
  • Memcached调优 OSCache框架源码解析
  • Memcached调优 Javascript Memoizer

Memcached调优

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

php-fpm を使用して高パフォーマンスのチューニングを行う方法 php-fpm を使用して高パフォーマンスのチューニングを行う方法 Jul 08, 2023 am 11:30 AM

php-fpm を使用して高パフォーマンスのチューニングを行う方法 PHP は、Web アプリケーションや動的 Web サイトの開発に広く使用されている、非常に人気のあるサーバーサイド スクリプト言語です。ただし、トラフィックが増加すると、PHP アプリケーションのパフォーマンスが低下する可能性があります。この問題を解決するには、php-fpm (FastCGIProcessManager) を使用して高性能チューニングを行うことができます。この記事では、php-fpm を使用して PHP アプリケーションのパフォーマンスを向上させる方法とコード例を紹介します。 1つ、

今すぐ Toutiao の記事を公開してお金を稼ぐにはどうすればよいですか?今すぐ Toutiao で記事を公開して収入を増やす方法! 今すぐ Toutiao の記事を公開してお金を稼ぐにはどうすればよいですか?今すぐ Toutiao で記事を公開して収入を増やす方法! Mar 15, 2024 pm 04:13 PM

1. 今すぐ Toutiao の記事を公開してどうやってお金を稼ぐことができますか?今すぐ Toutiao で記事を公開して収入を増やす方法! 1. 基本的な権利と利益の有効化: オリジナルの記事は広告によって利益を得ることができますが、利益を得るにはビデオが横画面モードでオリジナルである必要があります。 2. ファン100人の権利を有効化:ファン数が100人以上に達すると、マイクロヘッドライン、オリジナルQ&A作成、Q&Aから利益を得ることができます。 3. オリジナル作品にこだわる: オリジナル作品には記事、小見出し、質問などが含まれ、300 ワード以上であることが求められます。違法に盗用された作品をオリジナル作品として出版した場合、クレジットポイントが減点され、利益も差し引かれますのでご注意ください。 4. 垂直性:専門分野の記事を書く場合、分野を超えて自由に記事を書くことができず、適切な推薦が得られず、専門性や洗練度が得られず、ファンもつきにくいそして読者たち。 5. 活動: 高活動、

Memcached キャッシュ テクノロジを使用して PHP アプリケーションの CPU 使用率を最適化するにはどうすればよいですか? Memcached キャッシュ テクノロジを使用して PHP アプリケーションの CPU 使用率を最適化するにはどうすればよいですか? Jun 21, 2023 pm 05:07 PM

インターネットの発展に伴い、インターネット アプリケーションの分野では PHP アプリケーションがますます一般的になりました。ただし、PHP アプリケーションによる同時アクセスが多いと、サーバーの CPU 使用率が高くなり、アプリケーションのパフォーマンスに影響を与える可能性があります。 PHP アプリケーションのパフォーマンスを最適化するには、Memcached キャッシュ テクノロジが良い選択肢となっています。この記事では、Memcached キャッシュ テクノロジを使用して PHP アプリケーションの CPU 使用率を最適化する方法を紹介します。 Memcached キャッシュ テクノロジの概要 Memcached は、

Pagoda パネルを使用して Web サイトのパフォーマンス ストレス テストとチューニングを実行する方法 Pagoda パネルを使用して Web サイトのパフォーマンス ストレス テストとチューニングを実行する方法 Jun 21, 2023 pm 01:31 PM

インターネットの急速な発展に伴い、Web サイトのパフォーマンスがユーザー エクスペリエンスと SEO ランキングに与える影響は増大しています。 Web サイトのパフォーマンスを向上させるには、パフォーマンス ストレス テストとチューニングを実行して問題を特定し、最適化する必要があります。 Pagoda パネルは、人気のあるサービス管理パネルとして、便利でシンプルなパフォーマンス ストレス テストおよびチューニング ツールを提供します。以下では、Pagoda パネルを使用して Web サイトのパフォーマンス ストレス テストとチューニングを実行する方法を紹介します。 1. パフォーマンスストレステスト パフォーマンスストレステストとは、ユーザーのアクセスを模擬してWebサイトの負荷容量や応答速度をテストすることです。パゴダパネルでは、次のことができます。

Go言語Webサイトのアクセス速度を向上させるためのチューニング方法を詳しく解説 Go言語Webサイトのアクセス速度を向上させるためのチューニング方法を詳しく解説 Aug 26, 2023 pm 07:27 PM

Go 言語の Web サイトのアクセス速度を向上させるためのチューニング方法の詳細な説明 要約: 急速に発展するインターネット時代において、Web サイトのアクセス速度はユーザーが Web サイトを選択する重要な要素の 1 つとなっています。この記事では、Go言語を使用してWebサイトのアクセス速度を最適化する方法を、ネットワークリクエストの最適化、キャッシュの使用、同時処理の実践体験を含めて詳しく紹介します。この記事では、読者がこれらの最適化手法をより深く理解し、適用できるようにするためのコード例も提供します。 1. ネットワーク リクエストの最適化 Web サイト開発において、ネットワーク リクエストは避けられないリンクです。ネットワークリクエストを最適化すると、

LLM を微調整する方法の革新: PyTorch のネイティブ ライブラリ torchtune の革新的な力と応用価値の包括的な解釈 LLM を微調整する方法の革新: PyTorch のネイティブ ライブラリ torchtune の革新的な力と応用価値の包括的な解釈 Apr 26, 2024 am 09:20 AM

人工知能の分野では、大規模言語モデル (LLM) が研究と応用においてますます新たなホットスポットになりつつあります。ただし、これらの巨大なシステムを効率的かつ正確に調整する方法は、産業界と学術界が常に直面している重要な課題です。最近、PyTorch 公式ブログに TorchTune に関する記事が掲載され、広く注目を集めました。 LLM のチューニングと設計に焦点を当てたツールとして、TorchTune はその科学的性質と実用性が高く評価されています。この記事では、LLM チューニングにおける TorchTune の機能、特長、および応用について詳しく紹介し、読者に包括的かつ深い理解を提供したいと考えています。 1. トーチチューンの誕生背景と意義、深層学習技術と深層学習モデル(LLM)の開発

Linux システムのシステム チューニングとパフォーマンス テストを実行する方法 Linux システムのシステム チューニングとパフォーマンス テストを実行する方法 Nov 07, 2023 am 11:33 AM

オペレーティング システムのパフォーマンスの最適化は、効率的なシステム運用を確保するための鍵の 1 つです。 Linux システムでは、システムの最高のパフォーマンスを確保するために、さまざまな方法でパフォーマンスのチューニングとテストを実行できます。この記事では、Linux システムのシステム チューニングとパフォーマンス テストを実行する方法を紹介し、対応する具体的なコード例を示します。 1. システムチューニング システムチューニングとは、システムのさまざまなパラメータを調整することにより、システムのパフォーマンスを最適化することです。 1. カーネル パラメータを変更する Linux システムのカーネル パラメータは、システムの動作を制御します。

GPT-4はハイブリッド大型モデルを使用していますか?研究により、MoE+ 命令チューニングにより大規模モデルのパフォーマンスが実際に向上することが証明されています GPT-4はハイブリッド大型モデルを使用していますか?研究により、MoE+ 命令チューニングにより大規模モデルのパフォーマンスが実際に向上することが証明されています Jul 17, 2023 pm 04:57 PM

GPT-4 の出現以来、人々は、優れた言語理解能力、生成能力、論理的推論能力などを含む、その強力な創発能力に驚かされてきました。これらの機能により、GPT-4 は機械学習の分野で最も最先端のモデルの 1 つとなります。ただし、OpenAIはこれまでのところGPT-4の技術的な詳細を明らかにしていない。先月、George Hotz 氏は、LatentSpace と呼ばれる AI テクノロジー ポッドキャストのインタビューで GPT-4 について言及し、GPT-4 は実際にはハイブリッド モデルであると述べました。具体的には、George Hotez 氏は、GPT-4 は 8 つのエキスパート モデルで構成される統合システムを使用しており、各モデルには 2,200 億個のパラメーター (GPT-3 の 1,750 億個のパラメーターよりわずかに多い) があると述べました。

See all articles