吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

針對Ampere Altra系列處理器的Memcached優化指南

安晟培半導體 ? 來源:安晟培半導體 ? 2023-08-08 09:28 ? 次閱讀

概 述

Memcached是一個開源的內存鍵值數據存儲系統,通常用于緩存任意類型的小塊數據,如字符串,或數據庫和 API 調用結果中的對象。由于其基于內存的特性,Memcached 旨在通過在 RAM 中緩存數據和對象來加速動態 web 應用程序,并減少數據庫查找。它是云計算中最具開創性的緩存存儲之一,至今仍很受歡迎。

本指南的目的是描述在 AmpereAltra處理器上以最佳方式運行 memcached 的相關技巧。

構建先決條件

實現應用程序的高性能運行,首先要正確構建應用程序并使用適當的編譯器標志(flag)。在我們的例子中,當在 Ampere Altra 處理器上構建 memcached 時,我們建議使用 GCC 編譯器版本 10 或更新的版本從源代碼進行構建。較新的編譯器往往對新的處理器特性有更好的支持,并結合了更高級的代碼生成技術。

我們使用 CentOS8 作為我們本次優化測試的操作系統

從 SCL 存儲庫下載并安裝 GCC 10:

sudo yum -y install yum install scl-utils scl-utils-build 
sudo yum -y install gcc-toolset-10-gcc 
scl enable gcc-toolset-10 bash

對于其他操作系統,如 Ubuntu 20.04 LTS 和 Debian, GCC 10.2.1 也是可用的,可直接從相應的存儲庫安裝。

Libevent 是構建 memcached 所必需的,可以如下方式下載:

sudo yum install libevent-devel

構建和安裝

Memcached wiki 上的安裝指南(https://github.com/memcached/memcached/wiki/Install)有關于在 Debian/Ubuntu 和 Redhat/Fedora 上安裝 Memcached 的說明。源代碼可在 memcached 項目頁面上獲得。我們建議使用最新的穩定版本。

memcached 項目頁面

可以使用以下命令下載 Memcached。

wget https://memcached.org/latest 
#you might need to rename the file 
tar -zxf memcached-1.x.x.tar.gz 
cd memcached-1.x.x

在繼續為 Memcached 配置構建選項之前,讓我們添加一些特定于 Ampere Altra 處理器的編譯器標志:

./configure CFLAGS="-O3 -march=native -mcpu=neoverse-n1" --prefix=/usr/local/memcached 
make && make test && sudo make install

KERNEL 優化

眾所周知,Memcached 占用大量網絡資源,為了獲得良好的性能,內核和網卡(NIC)的調優是必要的。

大多數內核調優配置可以通過 sysfs 文件系統修改數據結構來設置。但是,有些調整可能需要重新編譯內核。一般的內核優化措施是設置操作系統使用 64 KB 的頁面大小。這將提高 Ampere Altra 處理器上的翻譯暫置緩沖區(TLB)的效率。

查看系統上正在使用的頁面大小:

getconf PAGESIZE

對于 64 KB 的頁面大小,預期返回值 65536。如果不是這樣,請檢查 CONFIG_ARM64_64K_PAGES 是否已應用于內核配置文件,重新編譯并安裝內核,然后重新啟動。

CONFIG_ARM64_64K_PAGES=y

TUNED PROFILES

考慮到大量的內核配置選項,有時使用預定義的優化配置文件來匹配您的使用場景會更容易。Tuned 就是這樣一種調優服務,它可以通過設置調優配置文件來配置操作系統來提高性能。

以 CentOS 8 為例,如果 Memcached 的吞吐量是所關注的主要指標,我們建議使用吞吐量-性能(throughput-performance)的 Tuned Profile。該配置文件將 CPU 調控器(governors)設置為性能模式,這樣可以減少調度延遲,最大化 I/O 吞吐量,并減少交換度值(swappiness),所有這些都可以顯著提高性能。

對于 Ubuntu,如果它不是操作系統安裝的一部分,則可能需要單獨安裝 tuned profile。

sudo apt-get update -y 
sudo apt-get install -y tuned

為了改進 Ampere Altra 處理器上的內核調度延遲,我們建議通過更新 Tuned Profile 文件中的相應設置,將 sched_wakeup_granularity_ns 更改為 5000。

PROFILE_FILE=/usr/lib/tuned/throughput-performance/tuned.conf 
sed -i 's/sched_wakeup_granularity_ns = 15000000/sched_wakeup_granularity_ns = 5000/g' $PROFILE_FILE

然后使用以下命令啟用吞吐量-性能(throughput-performance)的 Tuned Profile:

tuned-adm profile throughput-performance

網絡設置

像 Memcached 這樣的應用程序通常被調優為在高吞吐量下運行,同時保持嚴格的服務水平協議(SLA)。p.99 延遲通常是一個常見的標準。為了考慮此類 SLA 的要求,我們建議調優內核 TCP/IP 設置,因為傳入的請求是通過 TCP 連接建立的。

我們在 Memcached 測試中使用的 TCP/IP 調優設置列表如下:

echo 9999999 > /proc/sys/net/core/somaxconn 


echo 4194304 > /proc/sys/net/core/rmem_max 


echo 4194304 > /proc/sys/net/core/wmem_max 


echo 4194304 > /proc/sys/net/core/rmem_default 


echo 4194304 > /proc/sys/net/core/wmem_default 


echo "4096 87380 4194304" > /proc/sys/net/ipv4/tcp_rmem 


echo "4096 87380 4194304" > /proc/sys/net/ipv4/tcp_wmem 


echo "4096 87380 4194304" > /proc/sys/net/ipv4/tcp_mem 


echo 250000 > /proc/sys/net/core/netdev_max_backlog 


echo 50 > /proc/sys/net/core/busy_read 


echo 50 > /proc/sys/net/core/busy_poll 


echo 3 > /proc/sys/net/ipv4/tcp_fastopen 


echo 0 > /proc/sys/kernel/numa_balancing 


echo 0 > /proc/sys/net/ipv4/tcp_timestamps 


echo 1 > /proc/sys/net/ipv4/tcp_low_latency 


echo 0 > /proc/sys/net/ipv4/tcp_sack 


echo 1 > /proc/sys/net/ipv4/tcp_syncookie

除了內核 TCP/IP 設置之外,我們還需要確保應用程序能夠利用大多數網卡(NIC)內置的硬件卸載功能,例如 Generic-Receive-Offload,它可以聚合屬于同一流的多個傳入數據包,以及 large - receive - offload,它可以將屬于同一連接的傳入 TCP/IP 數據包合并到一個大的接收段中,然后將其傳遞給內核。

具體操作如下:

ethtool -K  gro on 
ethtool -K  lro on

對于像 Memcached 這樣的網絡綁定(network-bound)工作負載,強烈建議將網卡中斷(irq)分布在多個核心上,以避免出現瓶頸。參考文檔 2 是關于 SMP IRQ 關聯的一個非常好的參考。

建議使用以下命令檢查網卡支持的硬件通道數量,以確保通道數量與網卡的通道容量匹配:

ethtool -l  
sudo ethtool -L  combined 

MEMCACHED 配置

Memcached 本身是可以做些調優來更好地匹配實際應用環境。調優它的一個很好的起點是 Memcached 內置的統計功能。可以通過使用 telnet 連接到 memcached 并運行它來研究統計數據:

telnet localhost 11211 


Connected to localhost. 


Escape character is '^]'. 


telnet> stats 


STAT pid 23599 


STAT uptime 675 


STAT time 1211439587 


STAT version 1.2.5 


STAT pointer_size 32 


STAT rusage_user 1.404992 


STAT rusage_system 4.694685 


STAT curr_items 32 


STAT total_items 56361 


STAT bytes 2642 


STAT curr_connections 53 


STAT total_connections 438 


STAT connection_structures 55 


STAT cmd_get 113482 


STAT cmd_set 80519 


STAT get_hits 78926 


STAT get_misses 34556 


STAT evictions 0 


STAT bytes_read 6379783 


STAT bytes_written 4860179 


STAT limit_maxbytes 67108864 


STAT threads 1 


END

get_hits 和 get_misses 值特別重要,它們可用于計算 Memcached 的緩存命中/未命中比率。像 Memcached 這樣的內存緩存的經驗法則是將緩存命中率保持在 90% 以上。

清除值(evictions value)計算從緩存中清除的未過期項的數量,以便為新項騰出空間。清除次數過多可能表明緩存過度使用或分配的內存量不足。

最后,Memcached 線程的數量可能是影響 Memcached 總體性能的一個設置。對于像 Ampere Altra 系列處理器這樣的高核數處理器,我們建議在研究性能擴展時增加線程數量以使用盡可能多的核。極高的線程數可能導致鎖爭用,從而降低性能。在啟動 Memcached 時,可以通過使用 -t 選項來更改線程數。

在生產環境中對 Memcached 這樣的應用程序進行微調需要對其用法和端到端軟件堆棧有深入的了解。我們希望本指南中討論的設置可以幫助提高 Memcached 的性能,并建議參考這里提供的所有配置選項,以更好地匹配您的使用。

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19409

    瀏覽量

    231207
  • 操作系統
    +關注

    關注

    37

    文章

    6896

    瀏覽量

    123758
  • 編譯器
    +關注

    關注

    1

    文章

    1642

    瀏覽量

    49291
  • Memcached
    +關注

    關注

    0

    文章

    13

    瀏覽量

    7040
  • Ampere
    +關注

    關注

    1

    文章

    70

    瀏覽量

    4566

原文標題:安博士講堂|針對 Ampere??Altra? 系列處理器的 Memcached 優化指南

文章出處:【微信號:AmpereComputing,微信公眾號:安晟培半導體】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Ampere推出業內首款擁有最多內核數量的云原生處理器系列

    Ampere Altra系列提供了解決各種工作負載的靈活性,并且Ampere正在與生態系統中的伙伴合作,以滿足客戶的特定需求。
    發表于 06-28 16:44 ?1550次閱讀

    業界首款!Ampere發布有80個核心的ARM處理器

    今天晚上,Ampere發布了Ampere Altra處理器,官方稱這是業界首款80核服務處理器
    的頭像 發表于 03-04 10:11 ?2640次閱讀

    Ampere發布業內首款80核ARM架構64位處理器Altra 并已開始向云服務和邊緣計算客戶出樣

    高性能計算公司Ampere今日發布了業內第一款80核ARM架構64位處理器Altra,其用于服務、數據中心產品,目標是與Intel、AMD所代表的x86陣營競爭。
    發表于 03-04 11:33 ?1378次閱讀

    Ampere全新推出業界首款80核服務處理器Ampere Altra?處理器

    安晟培半導體科技有限公司(Ampere Computing)于今日正式發布全新一代Ampere Altra?處理器,此款產品是業界首款搭載80個內核數量的服務
    發表于 03-05 07:53 ?1367次閱讀

    安晟培半導體Ampere Altra處理器推出,應用于云和邊緣計算數據中心中

    3月4日消息,據國外媒體報道,安晟培半導體科技有限公司(Ampere Computing,簡稱“安晟培半導體”)發布Ampere Altra處理器,這是業界首款搭載80個內核數量的服務
    的頭像 發表于 03-04 17:03 ?3200次閱讀

    詳細解說Ampere Altra性能測試與結果對比

    現代云對更高的性能,更好的可擴展性,能源效率的需求在不斷增長。去年年初發布的業內首款云原生處理器AmpereAltra,以全新設計以滿足現代云的需求,具有令人矚目的整數性能,高內核數和出色的能源效率等特點,Ampere Altra
    的頭像 發表于 03-24 15:13 ?7466次閱讀
    詳細解說<b class='flag-5'>Ampere</b> <b class='flag-5'>Altra</b>性能測試與結果對比

    Ampere Altra處理器實現Arm架構運行虛擬機

     近日,微軟推出了基于 Ampere Altra 云原生處理器的 Azure 虛擬機(VM)。
    的頭像 發表于 04-10 10:16 ?3511次閱讀

    HPE正式發布搭載Ampere云原生處理器的HPE ProLiant RL300 Gen11平臺

    在今年的 HPE Discover 2022 全球峰會上,HPE 宣布正式發布搭載 Ampere AltraAmpere Altra Max 云原生
    的頭像 發表于 07-13 11:40 ?2266次閱讀

    Ampere Computing發布全新AmpereOne系列處理器,192個自研核

    2023 年 5 月 19 日,中國北京——Ampere Computing 宣布推出全新 AmpereOne 系列處理器,該處理器擁有多達 192 個單線程
    的頭像 發表于 05-19 11:04 ?1321次閱讀

    Ampere全新AmpereOne系列處理器,多達192個單線程Ampere

    強調Ampere憑借過去Ampere AltraAmpere Altra Max處理器創建了云
    發表于 05-23 11:44 ?547次閱讀

    Ampere發布AmpereOne系列處理器,單顆處理器支持最高192個物理核心

    AmpereOne出現以前,Ampere Altra系列最多128核心,新的AmpereOne則是從136核起步,最多192核心。所以,AmpereOne可以看做是Ampere
    發表于 06-02 10:43 ?699次閱讀
    <b class='flag-5'>Ampere</b>發布AmpereOne<b class='flag-5'>系列</b><b class='flag-5'>處理器</b>,單顆<b class='flag-5'>處理器</b>支持最高192個物理核心

    Ampere Altra系列處理器的鎖和內存序

    的 Arm 版本在功能上可以很好地工作,但隨著核心數量的增加和鎖的爭用更加頻繁,預計性能會受到影響。Ampere AltraAmpere Altra Max 支持 LSE,并配備
    的頭像 發表于 06-07 17:36 ?1546次閱讀
    <b class='flag-5'>Ampere</b> <b class='flag-5'>Altra</b><b class='flag-5'>系列</b><b class='flag-5'>處理器</b>的鎖和內存序

    全新AmpereOne系列處理器,一款192核的云原生CPU

    這個基于自研內核打造的產品與之前的產品不會存在任何的兼容問題,因為AmpereOne系列處理器Ampere Altra系列
    發表于 06-08 11:50 ?996次閱讀
    全新AmpereOne<b class='flag-5'>系列</b><b class='flag-5'>處理器</b>,一款192核的云原生CPU

    針對Ampere Altra處理器的MongoDB優化指南

    MongoDB 是一個流行的面向文檔的,跨平臺開源 NoSQL 數據庫。其靈活的數據模型能支持存儲具有完整索引支持和復制的非結構化數據。根據 DB-Engines 的數據,截至 2023 年 1 月,MongoDB 是第五大最受歡迎的數據庫。它是用 c++ 編寫的,旨在為 web 應用程序提供可擴展的高性能數據存儲解決方案。
    的頭像 發表于 07-20 10:10 ?625次閱讀

    基于Ampere Altra 系列處理器的一系列平臺為 AI 高效賦能

    ,‘芯’未來”的主題,Ampere 在本次活動上展示了基于 Ampere Altra 系列處理器的一系列
    的頭像 發表于 09-21 09:13 ?947次閱讀
    威尼斯人娱乐网网上百家乐的玩法技巧和规则 | 百家乐庄闲比率| 女优百家乐的玩法技巧和规则| 博盈| 百家乐官网怎样出千| 百家乐视频游戏金币| 大发888游戏平台888| 百家乐官网做中介赚钱| 太原百家乐官网的玩法技巧和规则| 百家乐8点直赢| 金尊国际娱乐| 网络百家乐官网公式打法| 真人百家乐代理分成| 真人棋牌游戏| 犹太人百家乐官网的玩法技巧和规则 | 大发888开户注册网站| 百家乐官网9点| 百家乐小路单图解| 嵩明县| 做生意门口对着通道| 全讯网新3| 大家旺百家乐官网娱乐城| 百家乐官网平台开户哪里优惠多 | 平注打百家乐的方法| 伟德国际博彩| 百家乐视频下载| 东方太阳城| 百家乐官网导航| 大发888娱乐真钱游戏 下载| 揭秘百家乐官网百分之50| 网络百家乐打揽| 百家乐官网赌王有哪些| 张家港百家乐赌博| 罗城| 豪博百家乐现金网| 一二博娱乐| 网上百家乐注册彩金| 六安市| 百家乐庄闲赢负表| 百家乐官网账号变动原因| 百家乐娱乐网官网网|