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

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

고성능 튜닝을 위해 php-fpm을 사용하는 방법 고성능 튜닝을 위해 php-fpm을 사용하는 방법 Jul 08, 2023 am 11:30 AM

고성능 튜닝을 위해 php-fpm을 사용하는 방법 PHP는 웹 애플리케이션 및 동적 웹 사이트를 개발하는 데 널리 사용되는 매우 널리 사용되는 서버 측 스크립팅 언어입니다. 그러나 트래픽이 증가하면 PHP 애플리케이션의 성능이 저하될 수 있습니다. 이 문제를 해결하기 위해 고성능 튜닝을 위해 php-fpm(FastCGIProcessManager)을 사용할 수 있습니다. 이 기사에서는 php-fpm을 사용하여 PHP 애플리케이션의 성능을 향상시키는 방법을 소개하고 코드 예제를 제공합니다. 하나,

오늘 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 패널을 통해 웹 사이트 성능 스트레스 테스트 및 조정을 수행하는 방법 Pagoda 패널을 통해 웹 사이트 성능 스트레스 테스트 및 조정을 수행하는 방법 Jun 21, 2023 pm 01:31 PM

인터넷의 급속한 발전으로 인해 웹사이트 성능은 사용자 경험과 SEO 순위에 점점 더 많은 영향을 미치고 있습니다. 웹사이트의 성능을 향상시키기 위해서는 성능 스트레스 테스트와 튜닝을 수행하여 문제를 찾아 최적화해야 합니다. 인기 있는 서비스 관리 패널인 Pagoda Panel은 편리하고 간단한 성능 스트레스 테스트 및 튜닝 도구를 제공합니다. 다음은 Pagoda 패널을 통해 웹 사이트 성능 스트레스 테스트 및 조정을 수행하는 방법을 소개합니다. 1. 성능 스트레스 테스트 성능 스트레스 테스트는 사용자 접속을 시뮬레이션하여 웹사이트의 로드 용량과 응답 속도를 테스트하는 것입니다. Pagoda 패널에서는 다음을 수행할 수 있습니다.

Go 언어 웹사이트 접속 속도 향상을 위한 튜닝 방법에 대한 자세한 설명 Go 언어 웹사이트 접속 속도 향상을 위한 튜닝 방법에 대한 자세한 설명 Aug 26, 2023 pm 07:27 PM

Go 언어 웹 사이트 접속 속도 향상을 위한 튜닝 방법에 대한 자세한 설명 요약: 빠르게 발전하는 인터넷 시대에 웹 사이트 접속 속도는 사용자가 웹 사이트를 선택하는 중요한 요소 중 하나가 되었습니다. 이 글에서는 네트워크 요청 최적화, 캐시 사용, 동시 처리 등의 실무 경험을 포함하여 Go 언어를 사용하여 웹 사이트 액세스 속도를 최적화하는 방법을 자세히 소개합니다. 이 기사에서는 독자가 이러한 최적화 기술을 더 잘 이해하고 적용하는 데 도움이 되는 코드 예제도 제공합니다. 1. 네트워크 요청 최적화 웹사이트 개발에서 네트워크 요청은 불가피한 연결 고리입니다. 그리고 네트워크 요청을 최적화하면

LLM을 미세 조정하는 방법 혁신: PyTorch의 기본 라이브러리 토치튠의 혁신적인 기능과 애플리케이션 가치에 대한 포괄적인 해석 LLM을 미세 조정하는 방법 혁신: PyTorch의 기본 라이브러리 토치튠의 혁신적인 기능과 애플리케이션 가치에 대한 포괄적인 해석 Apr 26, 2024 am 09:20 AM

인공 지능 분야에서 LLM(대형 언어 모델)은 연구 및 응용 분야에서 점점 더 새로운 핫스팟이 되고 있습니다. 그러나 이러한 거대 기업을 효율적이고 정확하게 조정하는 방법은 업계와 학계가 항상 직면한 중요한 과제였습니다. 최근 PyTorch 공식 블로그에는 TorchTune에 대한 기사가 게재되어 큰 관심을 끌었습니다. LLM 튜닝 및 설계에 초점을 맞춘 도구인 TorchTune은 과학적 특성과 실용성으로 높은 평가를 받고 있습니다. 이 기사에서는 독자들에게 포괄적이고 심층적인 이해를 제공하기 위해 LLM 튜닝에서 TorchTune의 기능, 특징 및 적용을 자세히 소개합니다. 1. TorchTune의 탄생 배경과 의의, 딥러닝 기술과 딥러닝 모델(LLM)의 발전

Linux 시스템의 시스템 튜닝 및 성능 테스트를 수행하는 방법 Linux 시스템의 시스템 튜닝 및 성능 테스트를 수행하는 방법 Nov 07, 2023 am 11:33 AM

운영 체제 성능 최적화는 효율적인 시스템 작동을 보장하는 핵심 중 하나입니다. Linux 시스템에서는 시스템의 최상의 성능을 보장하기 위해 다양한 방법을 통해 성능 튜닝 및 테스트를 수행할 수 있습니다. 이 기사에서는 Linux 시스템의 시스템 튜닝 및 성능 테스트를 수행하는 방법을 소개하고 해당하는 특정 코드 예제를 제공합니다. 1. 시스템 튜닝 시스템 튜닝은 시스템의 다양한 매개변수를 조정하여 시스템 성능을 최적화하는 것입니다. 다음은 몇 가지 일반적인 시스템 조정 방법입니다. 1. 커널 매개변수를 수정합니다. Linux 시스템의 커널 매개변수는 시스템 작동을 제어합니다.

GPT-4는 하이브리드 대형 모델을 사용합니까? 연구에 따르면 MoE+ 지침 조정이 실제로 대형 모델의 성능을 향상시키는 것으로 나타났습니다. GPT-4는 하이브리드 대형 모델을 사용합니까? 연구에 따르면 MoE+ 지침 조정이 실제로 대형 모델의 성능을 향상시키는 것으로 나타났습니다. Jul 17, 2023 pm 04:57 PM

GPT-4의 출현 이후 뛰어난 언어 이해 능력, 생성 능력, 논리적 추론 능력 등 강력한 출현 능력에 사람들은 놀랐습니다. 이러한 기능을 통해 GPT-4는 기계 학습 분야에서 가장 최첨단 모델 중 하나가 되었습니다. 그러나 OpenAI는 지금까지 GPT-4의 기술적 세부 사항을 공개하지 않았습니다. 지난달 조지 호츠(George Hotz)는 AI 기술 팟캐스트인 LatentSpace와의 인터뷰에서 GPT-4를 언급하며 GPT-4가 실제로는 하이브리드 모델이라고 밝혔습니다. 구체적으로 George Hotez는 GPT-4가 8개의 전문가 모델로 구성된 통합 시스템을 사용하며 각 전문가 모델에는 2,200억 개의 매개변수(GPT-3의 1,750억 개의 매개변수보다 약간 더 많음)가 있다고 말했습니다.

See all articles