女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

針對(duì)Ampere Altra處理器的MongoDB優(yōu)化指南

安晟培半導(dǎo)體 ? 來(lái)源:安晟培半導(dǎo)體 ? 2023-07-20 10:10 ? 次閱讀

概述

MongoDB 是一個(gè)流行的面向文檔的,跨平臺(tái)開(kāi)源 NoSQL 數(shù)據(jù)庫(kù)。其靈活的數(shù)據(jù)模型能支持存儲(chǔ)具有完整索引支持和復(fù)制的非結(jié)構(gòu)化數(shù)據(jù)。根據(jù) DB-Engines 的數(shù)據(jù),截至 2023 年 1 月,MongoDB 是第五大最受歡迎的數(shù)據(jù)庫(kù)。它是用 c++ 編寫(xiě)的,旨在為 web 應(yīng)用程序提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案。

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

01構(gòu)建先決條件

以高性能方式運(yùn)行應(yīng)用程序首先要正確構(gòu)建應(yīng)用程序并使用適當(dāng)?shù)木幾g器標(biāo)志。當(dāng)在 AmpereAltra處理器上從源碼開(kāi)始構(gòu)建并運(yùn)行應(yīng)用程序時(shí),我們建議使用 GCC 編譯器版本 10 或更高的版本。較新版本的編譯器往往對(duì)新的處理器特性有更好的支持,并結(jié)合了更高級(jí)的代碼生成技術(shù)。

我們的測(cè)試使用 CentOS Stream 8 作為操作系統(tǒng)

從 SCL 存儲(chǔ)庫(kù)下載并安裝了 GCC 11:

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

對(duì)于 Ubuntu 22.04 LTS 和 Debian 等其他操作系統(tǒng),GCC 11 也是可用的,可以直接從各自的存儲(chǔ)庫(kù)安裝。

02構(gòu)建和安裝

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

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

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

MongoDB 下載頁(yè)面:

https://github.com/mongodb/mongo

執(zhí)行以下步驟來(lái)安裝依賴項(xiàng)。

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 連接,請(qǐng)從各自的 git 存儲(chǔ)庫(kù)下載這些附加源代碼的最新代碼。

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+,并且必須安裝幾個(gè) Python 模塊,運(yùn)行命令:

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 支持許多編譯選項(xiàng),如 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 存儲(chǔ)引擎和 snappy 作為塊和日志壓縮器。請(qǐng)參考附錄中顯示的 mongodb.conf 文件配置服務(wù)器。

#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性能優(yōu)化

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

cachesizeGB

定義了內(nèi)部使用的緩存最大值,WiredTiger 將其適用于所有數(shù)據(jù)。

增加 cacheSizeGB 可以減少磁盤(pán) io 的影響,提高讀寫(xiě)性能。

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

Eviction 優(yōu)化

當(dāng)應(yīng)用程序接近最大緩存大小時(shí),WiredTiger 開(kāi)始清除,以防止內(nèi)存使用增長(zhǎng)過(guò)大,遵循“最近最少使用”算法。" eviction=(threads_min=X) "是正在運(yùn)行的 WiredTiger Eviction 工作線程的最小數(shù)量,取值必須在 1 到 20 之間。

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

#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 來(lái)控制存儲(chǔ)引擎同時(shí)處理的讀/寫(xiě)操作的數(shù)量。默認(rèn)值是 128,在大多數(shù)情況下都很有效的。如果 ticket 降為 0,則后續(xù)所有操作都排隊(duì)等待新的 ticket。長(zhǎng)時(shí)間運(yùn)行的操作可能會(huì)導(dǎo)致可用 ticket 的數(shù)量減少,從而降低系統(tǒng)的并發(fā)性。例如,增加 ticket 的配置值可以增加并發(fā)性。

#讀取當(dāng)前值
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 日志數(shù)據(jù)的壓縮類(lèi)型。壓縮操作會(huì)消耗額外的 CPU 資源,但也最小化了存儲(chǔ)消耗。

blockCompressor

指定集合數(shù)據(jù)的默認(rèn)壓縮。在創(chuàng)建集合時(shí),可以在每個(gè)集合的基礎(chǔ)上重置此設(shè)置。當(dāng)然壓縮操作會(huì)消耗額外的 CPU 資源,但也最小化了存儲(chǔ)消耗。

64K PAGESIZE

內(nèi)核 PAGESIZE 建議設(shè)置為 64K。可以使用命令“getconf PAGESIZE”來(lái)確定。PAGESIZE 是一個(gè)內(nèi)存頁(yè)的大小,以字節(jié)為單位,在編譯內(nèi)核時(shí)配置。使用較大的頁(yè)面可以減少將虛擬頁(yè)面地址轉(zhuǎn)換為物理頁(yè)面地址的硬件延遲。延遲的減少是由于硬件翻譯緩存(如 translation lookaside buffer,TLB)的效率得到了提高。因?yàn)橛布D(zhuǎn)換緩存只有有限數(shù)量的條目,所以使用更大的頁(yè)面大小會(huì)增加緩存中每個(gè)條目可以轉(zhuǎn)換的虛擬內(nèi)存量。這不但增加了應(yīng)用程序可以訪問(wèn)的內(nèi)存量,而且不會(huì)導(dǎo)致硬件轉(zhuǎn)換延遲。

Transparent Huge Pages

透明大頁(yè)(Transparent Huge Pages, THP)是一種 Linux 內(nèi)存管理系統(tǒng),它通過(guò)使用更大的內(nèi)存頁(yè),減少了在具有大量?jī)?nèi)存的機(jī)器上 TLB(Translation Lookaside Buffer)查找的開(kāi)銷(xiāo)。然而,在啟用 THP 的情況下,數(shù)據(jù)庫(kù)工作負(fù)載通常表現(xiàn)不佳,因?yàn)樗鼈兺哂邢∈瓒沁B續(xù)的內(nèi)存訪問(wèn)模式。在 Linux 上運(yùn)行 MongoDB 時(shí),應(yīng)該禁用 THP 以獲得最佳性能。

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

大多數(shù)類(lèi) unix 操作系統(tǒng),包括 Linux 和 macOS,都提供了在每個(gè)進(jìn)程和每個(gè)用戶的基礎(chǔ)上限制和控制系統(tǒng)資源(如線程、文件和網(wǎng)絡(luò)連接)使用的方法。這些“限制”可以防止單個(gè)用戶使用過(guò)多的系統(tǒng)資源。有時(shí),這些限制的默認(rèn)值比較低,這可能會(huì)在正常的 MongoDB 操作過(guò)程中導(dǎo)致許多問(wèn)題。

要為這些版本配置 ulimit 值,請(qǐng)創(chuàng)建一個(gè)名為?/etc/security/limits.d/99-mongodb-nproc.conf? 的文件,并添加新值以提高該進(jìn)程的限制閾值。

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)、內(nèi)核 pid 限制(kernel.pid_max)、每個(gè)進(jìn)程的最大線程數(shù)(kernel.threads-max)和每個(gè)進(jìn)程的最大內(nèi)存映射區(qū)域數(shù)(vm.max_map_count)。對(duì)于大型系統(tǒng),以下值是不錯(cuò)的參考值:

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

開(kāi)始調(diào)優(yōu)并使用吞吐量-性能配置文件

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

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19813

    瀏覽量

    233614
  • 數(shù)據(jù)庫(kù)
    +關(guān)注

    關(guān)注

    7

    文章

    3901

    瀏覽量

    65787
  • 開(kāi)源
    +關(guān)注

    關(guān)注

    3

    文章

    3616

    瀏覽量

    43494
  • nosql
    +關(guān)注

    關(guān)注

    0

    文章

    39

    瀏覽量

    10258
  • Ampere
    +關(guān)注

    關(guān)注

    1

    文章

    81

    瀏覽量

    4671

原文標(biāo)題:安博士講堂|針對(duì) Ampere? Altra? 處理器的 MongoDB 優(yōu)化指南

文章出處:【微信號(hào):AmpereComputing,微信公眾號(hào):安晟培半導(dǎo)體】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Ampere推出業(yè)內(nèi)首款擁有最多內(nèi)核數(shù)量的云原生處理器系列

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

    業(yè)界首款!Ampere發(fā)布有80個(gè)核心的ARM處理器

    今天晚上,Ampere發(fā)布了Ampere Altra處理器,官方稱(chēng)這是業(yè)界首款80核服務(wù)處理器
    的頭像 發(fā)表于 03-04 10:11 ?2731次閱讀

    Ampere發(fā)布業(yè)內(nèi)首款80核ARM架構(gòu)64位處理器Altra 并已開(kāi)始向云服務(wù)和邊緣計(jì)算客戶出樣

    高性能計(jì)算公司Ampere今日發(fā)布了業(yè)內(nèi)第一款80核ARM架構(gòu)64位處理器Altra,其用于服務(wù)、數(shù)據(jù)中心產(chǎn)品,目標(biāo)是與Intel、AMD所代表的x86陣營(yíng)競(jìng)爭(zhēng)。
    發(fā)表于 03-04 11:33 ?1503次閱讀

    Ampere全新推出業(yè)界首款80核服務(wù)處理器Ampere Altra?處理器

    安晟培半導(dǎo)體科技有限公司(Ampere Computing)于今日正式發(fā)布全新一代Ampere Altra?處理器,此款產(chǎn)品是業(yè)界首款搭載80個(gè)內(nèi)核數(shù)量的服務(wù)
    發(fā)表于 03-05 07:53 ?1473次閱讀

    安晟培半導(dǎo)體Ampere Altra處理器推出,應(yīng)用于云和邊緣計(jì)算數(shù)據(jù)中心中

    3月4日消息,據(jù)國(guó)外媒體報(bào)道,安晟培半導(dǎo)體科技有限公司(Ampere Computing,簡(jiǎn)稱(chēng)“安晟培半導(dǎo)體”)發(fā)布Ampere Altra處理器,這是業(yè)界首款搭載80個(gè)內(nèi)核數(shù)量的服務(wù)
    的頭像 發(fā)表于 03-04 17:03 ?3318次閱讀

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

    Ampere Altra Max的實(shí)驗(yàn)室的測(cè)試結(jié)果顯示,在進(jìn)行AES-256-gcm加密計(jì)算時(shí),它可以加密的數(shù)據(jù)塊比Ampere Altra多出57%,所用密鑰大小從16到16K字節(jié)不
    發(fā)表于 03-15 17:12 ?2407次閱讀

    詳細(xì)解說(shuō)Ampere Altra性能測(cè)試與結(jié)果對(duì)比

    現(xiàn)代云對(duì)更高的性能,更好的可擴(kuò)展性,能源效率的需求在不斷增長(zhǎng)。去年年初發(fā)布的業(yè)內(nèi)首款云原生處理器AmpereAltra,以全新設(shè)計(jì)以滿足現(xiàn)代云的需求,具有令人矚目的整數(shù)性能,高內(nèi)核數(shù)和出色的能源效率等特點(diǎn),Ampere Altra
    的頭像 發(fā)表于 03-24 15:13 ?7807次閱讀
    詳細(xì)解說(shuō)<b class='flag-5'>Ampere</b> <b class='flag-5'>Altra</b>性能測(cè)試與結(jié)果對(duì)比

    Ampere? Altra? Max 對(duì)比測(cè)試數(shù)據(jù)公布,性能能效雙領(lǐng)先

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

    Ampere Altra處理器實(shí)現(xiàn)Arm架構(gòu)運(yùn)行虛擬機(jī)

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

    HPE正式發(fā)布搭載Ampere云原生處理器的HPE ProLiant RL300 Gen11平臺(tái)

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

    Ampere全新AmpereOne系列處理器,多達(dá)192個(gè)單線程Ampere

    強(qiáng)調(diào)Ampere憑借過(guò)去Ampere AltraAmpere Altra Max處理器創(chuàng)建了云
    發(fā)表于 05-23 11:44 ?723次閱讀

    Ampere發(fā)布AmpereOne系列處理器,單顆處理器支持最高192個(gè)物理核心

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

    Ampere Altra系列處理器的鎖和內(nèi)存序

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

    針對(duì)Ampere Altra系列處理器的Memcached優(yōu)化指南

    Memcached 是一個(gè)開(kāi)源的內(nèi)存鍵值數(shù)據(jù)存儲(chǔ)系統(tǒng),通常用于緩存任意類(lèi)型的小塊數(shù)據(jù),如字符串,或數(shù)據(jù)庫(kù)和 API 調(diào)用結(jié)果中的對(duì)象。由于其基于內(nèi)存的特性,Memcached 旨在通過(guò)在 RAM 中緩存數(shù)據(jù)和對(duì)象來(lái)加速動(dòng)態(tài) web 應(yīng)用程序,并減少數(shù)據(jù)庫(kù)查找。它是云計(jì)算中最具開(kāi)創(chuàng)性的緩存存儲(chǔ)之一,至今仍很受歡迎。
    的頭像 發(fā)表于 08-08 09:28 ?919次閱讀

    基于Ampere Altra 系列處理器的一系列平臺(tái)為 AI 高效賦能

    ,‘芯’未來(lái)”的主題,Ampere 在本次活動(dòng)上展示了基于 Ampere Altra 系列處理器的一系列平臺(tái)。憑借高性能、低功耗、可擴(kuò)展性等卓越特性,基于
    的頭像 發(fā)表于 09-21 09:13 ?1115次閱讀