广告
返回顶部
首页 > 资讯 > 数据库 >Mongodb 使用numactl 启动
  • 921
分享到

Mongodb 使用numactl 启动

2024-04-02 19:04:59 921人浏览 安东尼
摘要

一、NUMA介绍在介绍nuMactl之前,需要先说说NUMA是什么,这样才能更好的理解numactl。  NUMA(Non UnifORM Memory Access Architecture)字

一、NUMA介绍

在介绍nuMactl之前,需要先说说NUMA是什么,这样才能更好的理解numactl。

  NUMA(Non UnifORM Memory Access Architecture)字面直译为"非一致性内存访问",对于linux内核来说最早出现在2.6.7版本上。这种特性对于当下大内存+多CPU为潮流的X86平台来说确实会有不少的性能提升,但相反的,如果配置不当的话,也是一个很大的坑.

  非统一内存访问(NUMA)是一种用于多处理器的电脑记忆体设计,内存访问时间取决于处理器的内存位置。 在NUMA下,处理器访问它自己的本地存储器的速度比非本地存储器(存储器的地方到另一个处理器之间共享的处理器或存储器)快一些。NUMA架构在逻辑上遵循对称多处理(SMP)架构。 它是在二十世纪九十年代被开发出来的,开发商包括Burruphs (优利系统), Convex Computer(惠普),意大利霍尼韦尔信息系统(HISI)的(后来的Group Bull),Silicon Graphics公司(后来的硅谷图形),Sequent电脑系统(后来的IBM),通用数据(EMC), Digital (后来的Compaq ,HP)。 这些公司研发的技术后来在类Unix操作系统中大放异彩,并在一定程度上运用到了windows NT中。

首次商业化实现基于NUMA的Unix系统的是对称多处理XPS-100系列服务器,它是由VAST公司的Dan Gielen为HISI设计的。 这个架构的巨大成功使HISI成为了欧洲的顶级Unix厂商。

  NUMA通过提供分离的存储器给各个处理器,避免当多个处理器访问同一个存储器产生的性能损失来试图解决这个问题。对于涉及到分散的数据的应用(在服务器和类似于服务器的应用中很常见),NUMA可以通过一个共享的存储器提高性能至n倍,而n大约是处理器(或者分离的存储器)的个数。

最早Intel在Nehalem架构上实现了NUMA,取代了在此之前一直使用的FSB前端总线的架构,用以对抗AMD的HyperTransport技术。一方面这个架构的特点是内存控制器从传统的北桥中移到了CPU中,排除了商业战略方向的考虑之外,这样做的方法同样是为了实现NUMA.

   Intel的NUMA解决方案,Litrin始终认为它来自本家的安藤。他的模型有点类似于mapReduce。放弃总线的访问方式,将CPU划分到多个node中,每个node有自己独立的内存空间。各个node之间通过高速互联通讯,通讯通道被成为QuickPath Interconnect即QPI。

二、numactl介绍

numactl - Control NUMA policy for processes or shared memory   #官方介绍
翻译:控制进程或共享内存的NUMA策略

Linux提供了一个手工调优的命令numactl(默认不安装),首先你可以通过它查看系统的numa状态

#numactl --hardware 
available: 2 nodes (0-1)
node 0 cpus: 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30
node 0 size: 16290 MB
node 0 free: 11947 MB
node 1 cpus: 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31
node 1 size: 16384 MB
node 1 free: 14282 MB
node distances:
node   0   1 
  0:  10  21 
  1:  21  10 
此系统共有2个node,各领取16个CPU和16G内存。

这里假设我要执行一个java param命令,此命令需要12G内存;一个python param命令,需要16G内存。
最好的优化方案时Python在node0中执行,而java在node1中执行,那命令是:
#numactl --cpubind=0 --membind=0 python param
#numactl --cpubind=1 --membind=1 java param
当然,也可以自找没趣进行如下配置:
#numactl --cpubind=0 --membind=0,1 java param

通过numastat命令可以查看numa状态
注:numastat - Show per-NUMA-node memory statistics for processes and the operating system
中文翻译:显示进程和操作系统的每个NUMA节点内存统计信息
# numastat
                           node0           node1
numa_hit             61086587932     25494360922
numa_miss              101325832     28581785059
numa_foreign         28581785059       101325832
interleave_hit             28949           28518
local_node           61086561129     25494416828
other_node             101352635     28581729153

other_node过高意味着需要重新规划numa.

三、使用numactl启动mongoDB

#numactl --interleave=all /opt/app/monGodb/bin/mongod -f /etc/mongodb.conf
即分配所有的node供其使用,这也是官方推荐的用法。

四、使用普通用户启动mongodb

关闭
#su - mongodb -s /bin/bash -c "/opt/app/mongodb/bin/mongod -f /opt/app/mongodb/etc/mongodb.conf --shutdown"
启动
#su - mongodb -s /bin/bash -c "numactl --interleave=all /opt/app/mongodb/bin/mongod -f /opt/app/mongodb/etc/mongodb.conf"


您可能感兴趣的文档:

--结束END--

本文标题: Mongodb 使用numactl 启动

本文链接: https://www.lsjlt.com/news/34890.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Mongodb 使用numactl 启动
    一、NUMA介绍在介绍numactl之前,需要先说说NUMA是什么,这样才能更好的理解numactl。  NUMA(Non Uniform Memory Access Architecture)字...
    99+
    2022-10-18
  • Docker使用supervisor启动MongoDB
      Docker的学习中不断的进行完善、不断的学习,把一些原有的方法进行优化。镜像下载地址:        &nbs...
    99+
    2022-10-18
  • MongoDB—mongodb启动问题
    https://blog.csdn.net/vivianXuejun/article/details/78809655 https://www.bt.cn/bbs/forum.phpmod=viewthread&tid=20728...
    99+
    2022-01-21
    MongoDB—mongodb启动问题
  • 怎么使用cmd启动mongodb服务
    要使用cmd启动MongoDB服务,可以按照以下步骤操作:1. 打开命令提示符(cmd)窗口。2. 切换到MongoDB安装目录的`...
    99+
    2023-08-23
    cmd mongodb
  • 怎么用cmd启动mongodb
    cmd中查看mongodb版本的方法:1、在win桌面通过快捷键【win+r】打开运行窗口;2、输入“cmd”打开命令行模式;3、在命令行模式下输入命令切换到mongodb的bin目录;4、最后输入“mongo”指令即可启动mongod服务...
    99+
    2022-10-24
  • MongoDB启动脚本
    今天研究mongodb,搭建时候发现源码包没提供启动脚本,便顺手写了一个方便使用。[root@controller mongodb]# cat /etc/init.d/mong...
    99+
    2022-10-18
  • MongoDB 自动启动脚本
    安装好mongodb之后,一直是如下启动,指定dbpath,logpath,验证auth等./mongod --dbpath=/usr/bin/mongodb/mongodb/data ...
    99+
    2022-10-18
  • linux如何启动mongodb
    这篇文章主要为大家分析了linux如何启动mongodb的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“linux如何启动mongodb”的知识吧。Mongo...
    99+
    2023-06-28
  • MongoDB服务的启动
    mongo启动配置文件:在mongo.conf:port=27017dbpath=/usr/local/mongodb/data/logpath=/usr/local/mongodb/log/mongodb...
    99+
    2022-10-18
  • centos7如何启动mongodb
    centos7中启动mongodb的方法:1、打开centos7终端;2、输入“service mongod start”命令启动mysql服务即可。具体操作步骤:在centos7系统桌面中使用快捷键【Ctrl+Alt+T】打开centos...
    99+
    2022-10-18
  • mongodb怎么重新启动
    要重新启动MongoDB,可以按照以下步骤操作:1. 打开命令行终端(Linux或MacOS为终端窗口,Windows为命令提示符窗...
    99+
    2023-08-24
    mongodb
  • mongodb服务启动脚本
    #!/bin/sh # #mongod - Startup script for mongod # # chkconfig: -&nbs...
    99+
    2022-10-18
  • 怎样安装启动MongoDB
    怎样安装启动MongoDB,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。地址:https://www.mongodb.com/downlo...
    99+
    2022-10-18
  • Mongodb的启动和停止
    1、Mongod的启动1.1、Mongod的启动选项    Mongod有许多可配置的选项,在命令行运行mongod --help可以查看所有选项,常用的选项如下:序...
    99+
    2022-10-18
  • mongodb启动很慢:[initandlisten] fo
    故障现象 mongodb启动后,等了几十分钟还一直没启动完成,单节点副本集,状态一直处于startup 原因分析:查看mongod的错误日志,发现:[initandlisten] found 1 index...
    99+
    2022-10-18
  • mongodb启动方法小结
    目录1.mongodb的几种启动方法2.关闭mongodb2.0前台运行:2.1后台运行:1.mongodb的几种启动方法 启动Mongodb服务有两种方式,前台启动或者Daemon...
    99+
    2022-11-12
  • linux下mongodb如何启动
    在Linux下启动 MongoDB,可以按照以下步骤进行操作:1. 打开终端。2. 使用 `cd` 命令切换到 MongoDB 的安...
    99+
    2023-08-30
    linux mongodb
  • Mongodb Ubuntu下安装以及自启动启动方法
    今天抽了点时间在Ubuntu13.10下安装了下Mongodb数据库,现在记下安装操作方法以及自动启动的方法:1. apt-get update  更新软件库 2.&...
    99+
    2022-10-18
  • mongodb怎么启动端口号
    要启动MongoDB并指定端口号,你可以使用以下命令:```mongod --port ```其中,``是你希望MongoDB实例监...
    99+
    2023-08-30
    mongodb
  • MongoDB启动参数(待翻译)
    ./mongod --helpOptions:General options:  -h [ --help ]             &...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作