首頁 資料庫 mysql教程 Memcached调优

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 Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1327
25
PHP教程
1273
29
C# 教程
1253
24
如何使用php-fpm進行高效能調優 如何使用php-fpm進行高效能調優 Jul 08, 2023 am 11:30 AM

如何使用php-fpm進行高效能調優PHP是一種非常流行的伺服器端腳本語言,廣泛用於開發網頁應用程式和動態網站。然而,隨著訪問量的增加,PHP應用程式的效能可能會受到影響。為了解決這個問題,我們可以使用php-fpm(FastCGIProcessManager)來進行高效能調優。本文將介紹如何使用php-fpm來提升PHP應用程式的效能,並提供程式碼範例。一、

今日頭條發布文章怎麼有收益?今日頭條發布文章獲得更多收益方法! 今日頭條發布文章怎麼有收益?今日頭條發布文章獲得更多收益方法! Mar 15, 2024 pm 04:13 PM

一、今日頭條發布文章怎麼有收益?今日頭條發布文章獲得更多收益方法! 1.開通基礎權益:原創文章選擇投放廣告可獲得收益,影片必須原創橫屏才會有收益。 2.開通百粉權益:粉絲量達百粉以上,微頭條、原創問答創作及問答均可獲得收益。 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是一

提升Go語言網站存取速度的調優實務詳解 提升Go語言網站存取速度的調優實務詳解 Aug 26, 2023 pm 07:27 PM

提升Go語言網站存取速度的調優實務詳解摘要:在高速發展的網路時代,網站存取速度成為使用者選擇網站的重要因素之一。本文將詳細介紹如何使用Go語言進行網站的存取速度調優,包括優化網路請求、使用快取、並發處理等方面的實務經驗。文章還將提供程式碼範例,幫助讀者更好地理解和應用這些優化技術。一、優化網路請求在網站開發中,網路請求是不可避免的環節。而優化網路請求,能夠

如何進行Linux系統的系統調優與效能測試 如何進行Linux系統的系統調優與效能測試 Nov 07, 2023 am 11:33 AM

作業系統的效能最佳化是確保系統高效運作的關鍵之一。在Linux系統中,我們可以透過各種方法進行效能調優和測試,以確保系統的最佳效能表現。本文將介紹如何進行Linux系統的系統調優與效能測試,並提供對應的特定程式碼範例。一、系統調優系統調優是透過調整系統的各項參數,來最佳化系統的效能。以下是一些常見的系統調優方法:1.修改核心參數Linux系統的核心參數控制系統運

修改MD5後是否算為原創內容? 修改MD5後是否算為原創內容? Feb 19, 2024 pm 08:04 PM

修改md5後算原創嗎在網路時代,創作原創內容成為了一種重要的價值與資源。然而,隨之而來的就是對原創性的質疑與侵權行為。為了防止盜版和抄襲,許多人嘗試使用不同的方法來保護自己的原創作品。其中一個常用的方法就是使用MD5演算法對作品進行修改,以達到「演算法保護」的作用。 MD5(MessageDigestAlgorithm5)是一種常用的訊息摘要演算法,它能

GPT-4使用混合大模型?研究證明MoE+指令調優確實讓大模型效能超群 GPT-4使用混合大模型?研究證明MoE+指令調優確實讓大模型效能超群 Jul 17, 2023 pm 04:57 PM

自從GPT-4問世以來,人們一直驚艷於它強大的湧現能力,包括優秀的語言理解能力、生成能力、邏輯推理能力等等。這些能力讓GPT-4成為機器學習領域最前線的模型之一。然而,OpenAI至今未公開GPT-4的任何技術細節。上個月,喬治・霍茲(GeorgeHotz)在接受一家名為LatentSpace的AI技術播客的採訪時提到了GPT-4,並稱GPT-4其實是一個混合模型。具體來說,喬治・霍茲稱GPT-4採用由8個專家模型組成的整合系統,每個專家模型都有2,200億個參數(比GPT-3的1750億參數量略多

革新LLM微調之道:全方位解讀PyTorch原生庫torchtune的創新力量與應用價值 革新LLM微調之道:全方位解讀PyTorch原生庫torchtune的創新力量與應用價值 Apr 26, 2024 am 09:20 AM

在人工智慧領域,大語言模型(LLMs)正日益成為研究和應用的新熱點。然而,如何有效率、精準地對這些龐然大物進行調優,一直是業界和學術界面臨的重要挑戰。近期,PyTorch官方部落格發布了一篇關於TorchTune的文章,引起了廣泛關注。 TorchTune作為一個專注於LLMs調優設計的工具,其科學性和實用性備受讚譽。本文將詳細介紹TorchTune的功能、特點及其在LLMs調優中的應用,以期為讀者提供一個全面而深入的了解。一、TorchTune的誕生背景與意義深度學習技術的發展與深度學習模型(LLM

See all articles