色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

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

安晟培半導體 ? 來源:安晟培半導體 ? 2023-07-20 10:10 ? 次閱讀

概述

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

本指南的目的是描述在 AmpereAltra處理器上以最佳方式運行 MongoDB 的一些技術參考

01構建先決條件

以高性能方式運行應用程序首先要正確構建應用程序并使用適當的編譯器標志。當在 AmpereAltra處理器上從源碼開始構建并運行應用程序時,我們建議使用 GCC 編譯器版本 10 或更高的版本。較新版本的編譯器往往對新的處理器特性有更好的支持,并結合了更高級的代碼生成技術。

我們的測試使用 CentOS Stream 8 作為操作系統

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

yum -y install scl-utils scl-utils-build 
yum -y install gcc-toolset-11.aarch64 
scl enable gcc-toolset-11 bash

對于 Ubuntu 22.04 LTS 和 Debian 等其他操作系統,GCC 11 也是可用的,可以直接從各自的存儲庫安裝。

02構建和安裝

MongoDB 可以從操作系統包管理器提供的存儲庫中安裝,也可以直接從源代碼構建。全面的 MongoDB 安裝指南可以在官方文檔中找到。我們建議從源代碼安裝,以獲得更好的靈活性,以及控制和配置特定模塊的能力。

為了構建針對 AmpereAltra處理器家族優化的 MongoDB,可以在編譯階段添加可以利用硬件特性的額外編譯選項。用于編譯的 MongoDB 源代碼可以從 MongoDB 下載頁面獲得。本指南使用穩定版本 MongoDB 6.0.3。從源代碼安裝需要某些庫和附加模塊,它們將被編譯成二進制文件。

MongoDB 安裝指南:https://github.com/mongodb/mongo/blob/master/docs/building.md

MongoDB 下載頁面:

https://github.com/mongodb/mongo

執行以下步驟來安裝依賴項。

yum -y install libcurl-devel python39 python39-devel openssl-devel
yum -y install zlib-devel git wget xz-devel
yum -y groupinstall "Development Tools"

要支持 https 連接,請從各自的 git 存儲庫下載這些附加源代碼的最新代碼。

git clone [https://github.com/mongodb/mongo](https://github.com/mongodb/mongo)
git checkout -b myr6.0.3.rc2 r6.0.3-rc2

需要 Python 3.7+,并且必須安裝幾個 Python 模塊,運行命令:

python3 -m pip install -r etc/pip/compile-requirements.txt

編譯

diff a/src/mongo/db/stats/counters.h b/src/mongo/db/stats/counters.h
224a225,226
>   static_assert(sizeof(decltype(_together)) <= stdx::hardware_constructive_interference_size,
>          "cache line spill");

python3 buildscripts/scons.py 支持許多編譯選項,如 CC, CFLAGS 等。

# get help of scons, such as define CXX=, CC= 
python3 buildscripts/scons.py -h
# Note: configure g++ and gcc path
# --force-jobs is CPU core number
python3 buildscripts/scons.py --force-jobs=8040 DESTDIR=

MongoDB 配置

在本指南中,MongoDB 被配置為使用 WiredTiger 存儲引擎和 snappy 作為塊和日志壓縮器。請參考附錄中顯示的 mongodb.conf 文件配置服務器。

#start the server
$MongoDB_Install_Dir/bin/mongod --config mongod_conf --storageEngine wiredTiger
#stop the server
$MongoDB_Install_Dir/bin --config mongod_conf --shutdown

03性能優化

有數百種設置可以改變 MongoDB 的功能和性能。下面列出的只是一些可以使用的更常見的調節變量。推薦參考 MongoDB 文檔了解所有設置詳情。

cachesizeGB

定義了內部使用的緩存最大值,WiredTiger 將其適用于所有數據。

增加 cacheSizeGB 可以減少磁盤 io 的影響,提高讀寫性能。

使用“db.serverStatus(). wiredtiger”命令檢查“maximum bytes configured”(cacheSizeGB或默認設置配置的最大緩存大小)和“bytes current in the cache”(當前緩存中的數據大小)。

Eviction 優化

當應用程序接近最大緩存大小時,WiredTiger 開始清除,以防止內存使用增長過大,遵循“最近最少使用”算法。" eviction=(threads_min=X) "是正在運行的 WiredTiger Eviction 工作線程的最小數量,取值必須在 1 到 20 之間。

" eviction=(threads_max=X) "是正在運行的WiredTiger Eviction工作線程的最大數量。取值必須在 1 到 20 之間。這應該與 MongoDB 的 threads_min 設置相匹配。

#get
db.adminCommand({getParameter: 1, wiredTigerEngineRuntimeConfig: "eviction"})
{
 wiredTigerEngineRuntimeConfig: 'eviction=(threads_min=4,threads_max=8)',
 ok: 1
}
#set
db.adminCommand({setParameter: 1, wiredTigerEngineRuntimeConfig: "eviction=(threads_min=4,threads_max=8)"})

concurrentTransactions

iredTiger 使用 ticket 來控制存儲引擎同時處理的讀/寫操作的數量。默認值是 128,在大多數情況下都很有效的。如果 ticket 降為 0,則后續所有操作都排隊等待新的 ticket。長時間運行的操作可能會導致可用 ticket 的數量減少,從而降低系統的并發性。例如,增加 ticket 的配置值可以增加并發性。

#讀取當前值
db.serverStatus().wiredTiger.concurrentTransactions
{
 write: { out: 0, available: 128, totalTickets: 128 },
 read: { out: 0, available: 128, totalTickets: 128 }
}


#修改值
db.adminCommand({setParameter: 1, wiredTigerConcurrentWriteTransactions: 256})
{ was: 0, ok: 1 }


db.adminCommand({setParameter: 1, wiredTigerConcurrentReadTransactions: 256})
{ was: 0, ok: 1 }

journalCompressor

指定用于壓縮 WiredTiger 日志數據的壓縮類型。壓縮操作會消耗額外的 CPU 資源,但也最小化了存儲消耗。

blockCompressor

指定集合數據的默認壓縮。在創建集合時,可以在每個集合的基礎上重置此設置。當然壓縮操作會消耗額外的 CPU 資源,但也最小化了存儲消耗。

64K PAGESIZE

內核 PAGESIZE 建議設置為 64K。可以使用命令“getconf PAGESIZE”來確定。PAGESIZE 是一個內存頁的大小,以字節為單位,在編譯內核時配置。使用較大的頁面可以減少將虛擬頁面地址轉換為物理頁面地址的硬件延遲。延遲的減少是由于硬件翻譯緩存(如 translation lookaside buffer,TLB)的效率得到了提高。因為硬件轉換緩存只有有限數量的條目,所以使用更大的頁面大小會增加緩存中每個條目可以轉換的虛擬內存量。這不但增加了應用程序可以訪問的內存量,而且不會導致硬件轉換延遲。

Transparent Huge Pages

透明大頁(Transparent Huge Pages, THP)是一種 Linux 內存管理系統,它通過使用更大的內存頁,減少了在具有大量內存的機器上 TLB(Translation Lookaside Buffer)查找的開銷。然而,在啟用 THP 的情況下,數據庫工作負載通常表現不佳,因為它們往往具有稀疏而非連續的內存訪問模式。在 Linux 上運行 MongoDB 時,應該禁用 THP 以獲得最佳性能。

echo never > /sys/kernel/mm/transparent_hugepage/enabled

大多數類 unix 操作系統,包括 Linux 和 macOS,都提供了在每個進程和每個用戶的基礎上限制和控制系統資源(如線程、文件和網絡連接)使用的方法。這些“限制”可以防止單個用戶使用過多的系統資源。有時,這些限制的默認值比較低,這可能會在正常的 MongoDB 操作過程中導致許多問題。

要為這些版本配置 ulimit 值,請創建一個名為?/etc/security/limits.d/99-mongodb-nproc.conf? 的文件,并添加新值以提高該進程的限制閾值。

echo "* soft  fsize    unlimited" | sudo tee -a /etc/security/limits.conf
echo "* hard  fsize    unlimited" | sudo tee -a /etc/security/limits.conf
echo "* soft  cpu     unlimited" | sudo tee -a /etc/security/limits.conf
echo "* hard  cpu     unlimited" | sudo tee -a /etc/security/limits.conf
echo "* soft  as      unlimited" | sudo tee -a /etc/security/limits.conf
echo "* hard  as      unlimited" | sudo tee -a /etc/security/limits.conf
echo "* soft  memlock   unlimited" | sudo tee -a /etc/security/limits.conf
echo "* hard  memlock   unlimited" | sudo tee -a /etc/security/limits.conf
echo "* soft  nofile    64000" | sudo tee -a /etc/security/limits.conf
echo "* hard  nofile    64000" | sudo tee -a /etc/security/limits.conf
echo "* soft  nproc    64000" | sudo tee -a /etc/security/limits.conf
echo "* hard  nproc    64000" | sudo tee -a /etc/security/limits.conf

為您的部署配置足夠的文件句柄(fs.file-max)、內核 pid 限制(kernel.pid_max)、每個進程的最大線程數(kernel.threads-max)和每個進程的最大內存映射區域數(vm.max_map_count)。對于大型系統,以下值是不錯的參考值:

sysctl -w vm.max_map_count = 98000
sysctl -w kernel.pid_max = 64000
sysctl -w kernel.threads-max = 64000
sysctl -w vm.max_map_count=128000
sysctl -w net.core.somaxconn=65535

開始調優并使用吞吐量-性能配置文件

tuned-adm profile throughput-performance

04附錄

MongoDB conf file

processManagement:
  fork: true
net:
  bindIp: %SERVER%
  port: %PORT%
storage:
  dbPath: %DATA_ROOT%/%PORT%
  engine: wiredTiger
  wiredTiger:
   engineConfig:
     journalCompressor: snappy
     cacheSizeGB: 30
   collectionConfig:
     blockCompressor: snappy


systemLog:
  destination: file
  path: "%DATA_ROOT%/%PORT%/mongod.log"
  logAppend: true
storage:
  journal:
   enabled: true

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

    關注

    68

    文章

    19259

    瀏覽量

    229653
  • 數據庫
    +關注

    關注

    7

    文章

    3794

    瀏覽量

    64362
  • 開源
    +關注

    關注

    3

    文章

    3309

    瀏覽量

    42471
  • nosql
    +關注

    關注

    0

    文章

    39

    瀏覽量

    9997
  • Ampere
    +關注

    關注

    1

    文章

    66

    瀏覽量

    4541

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

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

收藏 人收藏

    評論

    相關推薦

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

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

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

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

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

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

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

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

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

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

    128核云原生新力作:Ampere? Altra? Max性能參數公布,提升50%!

    Ampere Altra Max的實驗室的測試結果顯示,在進行AES-256-gcm加密計算時,它可以加密的數據塊比Ampere Altra多出57%,所用密鑰大小從16到16K字節不
    發表于 03-15 17:12 ?2248次閱讀

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

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

    Ampere? Altra? Max 對比測試數據公布,性能能效雙領先

    ,軟件架構得以重建,就如同搬進新家時,家具需要因地制宜重新擺放。 ? 2020 年,面向云計算的新時代,Ampere Computing 設計并推出了第一款云原生處理器——80 核?Ampere??
    的頭像 發表于 04-02 11:30 ?4052次閱讀
    <b class='flag-5'>Ampere</b>? <b class='flag-5'>Altra</b>? Max 對比測試數據公布,性能能效雙領先

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

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

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

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

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

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

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

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

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

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

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

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

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

    ,‘芯’未來”的主題,Ampere 在本次活動上展示了基于 Ampere Altra 系列處理器的一系列平臺。憑借高性能、低功耗、可擴展性等卓越特性,基于
    的頭像 發表于 09-21 09:13 ?880次閱讀
    主站蜘蛛池模板: 亚洲一区在线观看视频| 国产亚洲精品久久无亚洲| 毛片TV网站无套内射TV网站| 亚洲人成77777| 国产成人拍精品免费视频爱情岛 | 果冻传媒免费观看| 无人区日本电影在线观看高清| 成人免费肉动漫无遮网站| 欧美精品AV无码一区二区| 99re在这里只有精品| 麻豆精品国产剧情观看| 中文字幕无码亚洲字幕成A人蜜桃| 九热这里只有精品| 亚洲永久精品ww47app| 黑色丝袜在线观看| 亚洲精品第一页中文字幕| 国产香蕉视频| 亚洲精品国偷拍自产在线观看蜜臀| 国产日韩亚洲专区无码| 亚洲AV美女成人网站P站| 国产免费福利在线视频| 午夜看片网| 国产手机在线精品| 亚洲AV午夜福利精品香蕉麻豆| 国产欧美精品一区二区色综合| 武侠艳妇屈辱的张开双腿| 国产嫩草在线观看| 亚洲精品电影久久久影院| 蝴蝶中文娱乐| 一本之道高清www在线观看 | 亚洲视频在线观看不卡| 精品久久久久中文字幕| 伊人久久亚洲精品一区| 久久亚洲精品2017| 91原创在线| 青青草干免费线观看| 动漫H片在线观看播放免费| 丝瓜视频樱桃视频在线观看免费| 国产精品久久大陆| 亚洲国产AV无码综合在线| 精品久久久99大香线蕉|