Linux内核与SMP(对称多处理)

news2025/1/16 3:48:04

什么 是SMP?

SMP的全称是“对称多处理“(Symmetrical Multi-Processing)技术,是指在一个计算机上汇集了一组处理器(多CPU),各CPU之间共享内存子系统以及总线结构。它是相对非对称多处理技术而言的、应用十分广泛的并行技术。在这种架构中,一台电脑不再由单个CPU组成,而同时由多个处理器运行操作系统的单一复本,并共享内存和一台计算机的其他资源。虽然同时使用多个CPU,但是从管理的角度来看,它们的表现就像一台单机一样。系统将任务队列对称地分布于多个CPU之上,从而极大地提高了整个系统的数据处理能力。所有的处理器都可以平等地访问内存、I/O和外部中断。在对称多处理系统中,系统资源被系统中所有CPU共享,工作负载能够均匀地分配到所有可用处理器之上。

另外你可能需要理解就是Non-Uniform Memory Access(NUMA)架构。每个处理器拥有自己的内存,访问共享内存时具有不同的访问延迟。

“可以通过多种方法提高 Linux 系统的性能,而其中最流行的一种是提高处理器的性能。一个明显的解决方案是使用具有更快时钟频率的处理器,但是对于任何特定技术来讲都存在一个物理极限,时钟频率也有这样的极限。当达到那个极限时,可使用 “越多越好” 的方法应用多处理器。不幸的是,多处理器的性能并不与单个处理器性能的总和成线性比例。”

Linux内核与SMP

Linux内核编译时,CONFIG_SMP配置项控制内核是否支持SMP.

现在的内核包从2.4.23以后就没有专门的SMP内核包,在安装Linux系统时,会自动监测,如果检查到了多个CPU或多核,超线程时,会自动安装两个Linux内核,其中一个是带SMP的,在GRUB引导列表里会出现两个内核选择,默认使用SMP引导.

如:

[root@goface ~]# cat /boot/grub/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/sda3
#          initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux AS (2.6.9-67.ELsmp)
	root (hd0,0)
	kernel /vmlinuz-2.6.9-67.ELsmp ro root=LABEL=/12
	initrd /initrd-2.6.9-67.ELsmp.img
title Red Hat Enterprise Linux AS-up (2.6.9-67.EL)
	root (hd0,0)
	kernel /vmlinuz-2.6.9-67.EL ro root=LABEL=/12
	initrd /initrd-2.6.9-67.EL.img
Redhat、CentOS、SUSE安装时都有支持smp的内核。
版本号-default: SUSE Linux kernel for uniprocessor machines <---- 默认选项,支持单处理器机器
  版本号-smp: SUSE Linux kernel that supports symmetric multiprocessing (multiple processor machines) and up to 4 GB of RAM <---- 支持4GB内存的对称
多处理器机器
  版本号-bigsmp: SUSE Linux kernel that supports symmetric multiprocessing and up to 64 GB of RAM <---- 支持64GB内存的对称多处理器机器

  Red Hat Linux/CentOS

  版本号.EL: Red Hat Linux kernel for uniprocessor machines <---- 支持单处理器机器
  版本号.ELhugemem: Red Hat Linux kernel that supports up to 64 GB of RAM <---- 支持64GB内存的对称多处理器机器
  版本号.ELsmp: Red Hat Linux kernel that supports symmetric multiprocessing (multiple processor machines) <---- 对称多处理器机器

查看CPU信息

[root@goface~]# cat /proc/cpuinfo
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 15
model		: 3
model name	: Intel(R) Xeon(TM) CPU 3.00GHz
stepping	: 4
cpu MHz		: 3000.605
cache size	: 1024 KB
physical id	: 0
siblings	: 2
core id		: 0
cpu cores	: 1
fdiv_bug	: no
hlt_bug		: no
f00f_bug	: no
coma_bug	: no
fpu		: yes
fpu_exception	: yes
cpuid level	: 5
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm constant_tsc pni monitor ds_cpl cid xtpr
bogomips	: 6003.74

processor	: 1
vendor_id	: GenuineIntel
cpu family	: 15
model		: 3
model name	: Intel(R) Xeon(TM) CPU 3.00GHz
stepping	: 4
cpu MHz		: 3000.605
cache size	: 1024 KB
physical id	: 0
siblings	: 2
core id		: 0
cpu cores	: 1
fdiv_bug	: no
hlt_bug		: no
f00f_bug	: no
coma_bug	: no
fpu		: yes
fpu_exception	: yes
cpuid level	: 5
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm constant_tsc pni monitor ds_cpl cid xtpr
bogomips	: 6000.36

[root@goface ~]# grep -c ^processor /proc/cpuinfo
2

Linux内核报错与SMP

在国外论坛上看到有人说他的服务器内核报错如下:

kernel panic – not syncing: Fatal exception in interrupt
BUG: warning at arch/i386/kernel/smp.c:547/smp_call_function()

最后得知他的服务器只有一块CPU。可以在grub设置启动不启用SMP。

解决方法:

#vi /boot/grub/grub.conf
title=Linux
root (hd0,0)
kernel /boot/vmlinuz ... nosmp
initrd /boot/initrd ...
kernel行添加nosmp参数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/74389.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

两行代码自动压缩ViT模型!模型体积减小3.9倍,推理加速7.1倍

Transformer模型及其变体&#xff0c;因其更优的注意力机制能力和长时依赖等特性&#xff0c;已成为自然语言处理 (NLP)、语音识别 (ASR)、计算机视觉 (CV)等领域的主流序列建模结构。根据PaperWithCode网站ObjectDetectiononCOCOtest-dev专栏数据&#xff0c;检测任务中Transf…

嵌入式:ARM处理器的工作状态

文章目录Thumb技术介绍Thumb的技术概述Thumb的技术实现Thumb技术的特点ARM处理器工作状态Thumb2技术介绍评价Thumb技术介绍 ARM的RISC体系结构的发展中已经提供了低功耗、小体积、高性能的方案。而为了解决代码长度的问题&#xff0c;ARM体系结构又增加了&#xff34;变种&…

微信小程序实现圆形菜单弹出选中动画

vector-effect是SVG中十分冷门的属性&#xff0c;相信大多数小伙伴都没有了解过&#xff0c;说句实话&#xff0c;在这次重学SVG之前&#xff0c;这个属性我连听都没听说过。 不过&#xff0c;冷门不重要&#xff0c;重要的是管用&#xff0c;尤其是以后在面对相应场景下&…

RISC-V SIG 推出基于openEuler 的下游发行版 Eulaceura

近日&#xff0c;openEuler RISC-V SIG 推出了一款基于 openEuler 的发行版-Eulaceura。这是首个基于 openEuler 开发的 RISC-V 架构的发行版&#xff0c;给 RISC-V 的开发者开箱即用的 RISC-V 系统环境&#xff0c;方便开发者进行各种创新项目的开发与验证。Eulaceura 目前提供…

【数据结构】队列的实现

目录队列的概念队列的结构声明队列的初始化数据入队判断队列是否为空队列出数据获取队头获取队尾获取队列长度摧毁队列队列的概念 只允许从一端插入数据&#xff0c;另一端出数据。 队头:出数据的一端叫队头。 队尾:入数据的一端叫队尾。 通俗地说&#xff0c;就是把栈的数据结…

用技术记录世界杯2022

用技术记录世界杯【2022】 文章目录用技术记录世界杯【2022】前言1 项目介绍2 实验复现2.1 关于项目2.2 数据准备2.3 特征工程3 我的感受前言 Hi&#xff0c;我是Ding Jiaxiong&#xff0c;好久不见(bushi&#xff0c;早上才更新了博客)&#xff0c; 今天是2022 年12月 8日 2…

未部署ssl证书,您的账号、密码或被窃取!

浏览网页查找信息时&#xff0c;您有没有注意到有些网站的网址是以https&#xff1a;//开头的&#xff0c;有些网址是http&#xff1a;//开头&#xff1f;有时还会显示一个突出的警告页面&#xff0c;表明网站是“不安全的”可能会窃取您的账号、密码&#xff0c;骗取财产等。 …

Mybatis-Plus的@Version注解:使用updateBatchById方法引发的问题

正常情况下&#xff0c;我们想要的是&#xff0c;当乐观锁不对的时候要一个反馈&#xff0c;例如&#xff1a;版本号不一致&#xff0c;请刷新页面重新获取数据。 在没有Version注解的时候&#xff0c;一般我们会进行显示校验。例如下图&#xff1a; updateById方法使用演示 …

数商云SRM供应商系统售后模块解析 | 助力汽修企业打造高效SRM服务管理体系

随着我国汽车保有量的持续增长&#xff0c;汽车维修行业不断地向社会化方向发展&#xff0c;汽修行业从产品型的行业转变为服务型行业&#xff0c;成为一个社会化的、人才专业型、技术密集型的和相对独立的行业&#xff0c;发展势头迅猛&#xff0c;据统计&#xff0c;我国的汽…

跨主机访问——docker

当你有若干个容器之后,你可能就希望实现容器的跨机部署访问了,比如aspnetcore在一台host上,mysql在另外一个host上,如果要实现这样的功能,需要你 借助docker自带的overlay网络模型了。 一: overlay网络模型 要想快速的搭建overlay网络,你可以通过docker默认的swarm集群…

代码随想录Day45|70.爬楼梯(进阶)、322.零钱兑换、279.完全平方数

文章目录70.爬楼梯&#xff08;进阶&#xff09;322.零钱兑换279.完全平方数70.爬楼梯&#xff08;进阶&#xff09; 文章讲解&#xff1a;代码随想录 (programmercarl.com) 题目链接&#xff1a;programmercarl 题目&#xff1a; 假设你正在爬楼梯。需要 n 阶你才能到达楼…

【C#基础学习】第十六章、枚举

目录 枚举 1.枚举的补充 1.1底层类型 1.2 设置显式值 1.3 枚举成员赋值顺序 2.位标志 2.1 Flags特性 枚举 枚举的定义&#xff1a; 枚举是由程序员自定义的值类型。它只有一种类型成员&#xff1a;命名的整数值常量。枚举成员都有一个底层类型的常量值。第一个枚举成员的…

【场景削减】拉丁超立方抽样方法场景削减(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Linux搭建RabbitMQ集群环境

文章目录环境说明Erlang安装下载安装包安装验证RabbitMQ安装下载安装包安装启动RabbitMQ设置开机自动启动安装管理界面创建用户登录管理界面集群配置前提条件构建erlang集群高可用镜像集群配置环境说明 操作系统&#xff1a;CentOS7Erlang版本&#xff1a;21.3RabbitMQ版本&am…

信而泰耦合测试-网络测试仪实操

一、耦合测试原理 1.产生背景​ 常用测试无线设备过程中&#xff0c;将无线设备置于屏蔽箱中&#xff0c;通过无线网卡连接并运行iperf等类似软件的方式检测所述无线设备的吞吐量。 相关技术中将所述无线设备置于所述屏蔽箱中的检测方法&#xff0c;由于所述屏蔽箱存在信号反…

【C语言】字符串函数(二)

目录 一、strncpy函数(字符串拷贝) 1、strncpy函数的用途 2、strncpy函数的使用 二、strncat函数(字符串追加) 1、strncat函数的用途 2、strncat函数的使用 三、strncmp函数(两个字符串比较) 1、strncmp函数的用途 2、strncmp函数的使用 四、strstr函数(查找字符串) 1、strstr函…

2022年底总结(被阿里捞的第1、2、3...次)

前言 自从去年因为个人原因没有去阿里淘系&#xff0c;后面有几次阿里同学问我有没有意向去阿里上班。其实我内心是很激动的&#xff0c;在人才库能被捞也是别人的认可&#xff0c;这个是值得骄傲的&#xff0c;然后需要继续保持自己专研技术的精神以及不断进步的意识。 当然博…

ChatGPT 大智近妖,从宇宙人生到手搓光刻机,从哄女友到写年终总结我们聊得非常开心,反而让人越来越忧心

文章目录宇宙人生问&#xff1a;你觉得人生的意义是什么&#xff1f;问&#xff1a;你觉得思维意识到底是什么问&#xff1a;我之前的两个问题大概有多少人问过你&#xff1f;问&#xff1a;宇宙的边界在哪里&#xff1f;手搓狠活怎么实现量子计算怎么制造一个光刻机怎么制作核…

多谐振荡器

三个非门首尾相接形成环&#xff0c;在理想情况下&#xff0c;无法形成振荡 门一定是存在传输延迟时间的&#xff0c;所以当高电平变成低电平的时候&#xff0c;必然会经过传输延迟时间 所以当反过来发生翻转的时候&#xff0c;经过了三倍的状态延迟时间 震荡的周期是六个传输…

基于SARIMA、XGBoost和CNN-LSTM的时间序列预测对比

利用统计测试和机器学习分析和预测太阳能发电的性能测试和对比 本文将讨论通过使用假设测试、特征工程、时间序列建模方法等从数据集中获得有形价值的技术。我还将解决不同时间序列模型的数据泄漏和数据准备等问题&#xff0c;并且对常见的三种时间序列预测进行对比测试。 介…