本文主要讨论在高实时要求、高效能计算、DPDK等领域,Linux如何让某一个线程排他性独占CPU;独占CPU涉及的线程、中断隔离原理;以及如何在排他性独占的情况下,甚至让系统的timer tick也不打断独占任务,从而实现最低的延迟抖动。
进程或者线程绑定到某个CPU Core,仍然可能会有线程或者进程切换的发生,如果想到达到进一步减少其他进程对于该进程或者线程影响,可以采取把CPU Core从Linux内核调度中剥离出来。Linux内核提供isolcpus,对于有4个CPU core的系统,在启动时候加入isolcpus=2,3,那么系统启动后将不会使用CPU3,CPU4.这里的不适用不是绝对的,但是可以通过taskset命令来设置
其实,在进行ROS2/ROS1程序编写的时候,通常需要启动很多节点,有时候大于60+节点也非常常见的。
为了提高缓存命中率,提高虚拟机性能,可以将vCPU绑定到指定的物理CPU去执行。具体设置步骤如下: 在宿主机操作系统启动时将用于虚拟机的CPU独立出来,使其上只运行vCPU线程,QEMU进程和少数的管理进程。设置方法即是在内核启动参数中加入: isolcpus=0,1 例如在grub.cfg下面的配置如下: menuentry 'Fedora (3.13.6-200.fc20.x86_64) 20 (Heisenbug)' --class fedora --class gnu-linux -
今天客户反应NVIDIA TX2NX模组在MaxN模式下,可以看到6个CPU,但只有4个CPU在工作。我们请客户跑了一下Jtop,并截图:
开发人员在高性能系统的性能调优过程中,经常会碰到各种背景的噪声干扰, 从而使得收集的数据不够精确。本文主要从CPU 以及Linux操作系统的角度来分析各种噪声的来源以及消除方法。最终的目标是搭建基准平台,在特定的cpu上实现”0”干扰。
之前我们介绍了一个非常优秀的细粒度控制JAVA线程的库:java thread affinity。使用这个库你可以将线程绑定到特定的CPU或者CPU核上,通过减少线程在CPU之间的切换,从而提升线程执行的效率。
最近的OpenStack nova版本增加了对实时实例的支持,即提供实时应用所需的确定性和性能保证的实例。这项工作在OpenStack Ocata发行版中最终标记为完成。
前段时间有哥们在vpp群里分享了基于VPP的src/plugins/linux-cp/插件复制的一个临时插件lcpng,作者做了很多方面的验证和修改,并且后期计划合入到vpp主分支上去。本文主要基于ubuntu20.4.3lts系统搭建环境,验证一下基于lcpng插件和frr bgpd配合测试。
通过上篇文章的学习,我们学会了如何查看当前 cgroup 的信息,如何通过操作 /sys/fs/cgroup 目录来动态设置 cgroup,也学会了如何设置 CPU shares 和 CPU quota 来控制 slice 内部以及不同 slice 之间的 CPU 使用时间。本文将继续探讨对 CPU 使用时间的限制。
嵌入式Linux系统中,Linux直接管理所有CPU。默认情况下,系统的目标是提高吞吐率,而不是实时性。为了保证实时性,可以根据应用场景,对CPU实行更加精确的控制。常见的办法有,进程CPU隔离、CPU亲和、中断CPU亲和、进程优先级。
近期在做Android双系统开发和维护工作,可能以后也不会涉及到这块了,做个记录!刚接触还是很难的,所以以后有同学如果能做到这块,不要着急,任何技术都是需要时间积累,就这么三两个月能开始修改内核的代码,多少还是觉得有些意思的!
概述 数据平面开发套件(DPDK)可提供高性能的数据包处理库和用户空间驱动程序。自Open vSwitch(OVS)2.4版 (http://openvswitch.org/releases/NEWS-2.4.0)起,我们将可在OVS中使用DPDK优化的vHost路径。OVS自2.2版起开始提供DPDK支持。 将DPDK与OVS结合使用可为我们带来诸多性能优势。与其他基于DPDK的应用相同,我们可以在OVS中看到网络包吞吐量显著提升,延迟显著降低。 此外,DPDK包处理库还对OVS内的多个性能热点区域进行了
邮件中提到在2020年2月8号的一封邮件中也提出bihash的在查询过程中返回value数值为-1的情况。
本文主要介绍在KVM虚拟机中如何进行配置调整可以最大限度地提高 VPP 应用程序的数据包处理性能。
之前使用FFT运算、C程序编译,网络通信作为负载,测试了AMD Embedded R2000 在Linux下的实时性能。
实时虚拟化听起来有点矛盾,但是它确实是有用的(在某些条件下),并且为 Linux 内核的灵活性又提供了一个强有力的证明。KVM2015 论坛的前两个演讲就详细的讨论了实时虚拟化。第一个演讲者是 Rik
系统设计得再好,如不能及时完成业务处理也不行。为什么不同业务有不同优化需求,以及常见的优化方式和问题有哪些。
不进入这个行当,很少会知道,人们对低延时的渴求。专业人士为了低延时,做过各种各样的努力。以往我们将数据库的某些SQL从秒级优化到毫秒级,至少会在心底里欢呼一下,百倍提升!但在这个行业,人们为了减少1毫秒,可以做出什么疯狂的事情呢?
熟悉docker的用户,一定用过docker cpuset的能力,用来指定docker container启动时绑定指定的cpu和memory node。
思科VPP(Vector Packet Processing)是一款由思科开发的商用代码,后来其开源版本被加入到Linux基金会的FD.io项目中,并成为该项目的核心。本期我们继续讲解思科VPP24.02系列专题,本期我们讲述如何运行vpp软件
在centos7的/sys/fs/cgroup下面可以看到与cpu相关的有cpu,cpuacct和cpuset 3个subsystem。cpu用于对cpu使用率的划分;cpuset用于设置cpu的亲和性等,主要用于numa架构的os;cpuacct记录了cpu的部分信息。对cpu资源的设置可以从2个维度考察:cpu使用百分比和cpu核数目。前者使用cpu subsystem进行配置,后者使用cpuset subsystem进程配置。首先看cpu subsystem的用法
赖滨,腾讯云高级工程师,7+年专注于操作系统相关技术。目前负责腾讯云原生OS的研发,以及OS/虚拟化的性能优化工作。 导语 调度器(Scheduler)子系统是内核的核心子系统之一,负责系统内 CPU 资源的合理分配,需要能处理纷繁复杂的不同类型任务的调度需求,还需要能处理各种复杂的并发竞争环境,同时还需要兼顾整体吞吐性能和实时性要求(本身是一对矛盾体),其设计与实现都极具挑战。 为了能够理解 Linux 调度器的设计与实现,我们将以 Linux kernel 5.4 版本(TencentOS Serve
本文主要介绍了我在阅读《深入浅出DPDK》,《DPDK应用基础》这两本书中所划下的知识点
导语 2017年7月7日-8日,ArchSummit全球架构师峰会在深圳召开。ArchSummit全球架构师峰会是InfoQ中国团队推出的面向高端技术管理者、架构师的技术大会,展示新技术在行业应用中的最新实践。腾讯技术工程事业群(TEG)数据平台部的高级工程师甘恒通作为演讲嘉宾,发表了主题为“腾讯信鸽实时精准推送系统的演进与实践”的演讲,以下为现场演讲内容的整理稿。 演讲主题:腾讯信鸽实时精准推送系统的演进与实践 演讲嘉宾:腾讯TEG数据平台部 甘恒通 大家好,我是甘恒通,来自腾讯TEG数据平台部。我
网卡中断 获取网卡设备所有中断 [root@PowerCycle_1_DL380G7 ~]# cat /proc/interrupts|grep -iw eth0 52: 12403 2 13291 26 14094 20 13577 32 14576 21 13772 29 PCI-MSI-edge eth0-0 53:
"鹅厂网事"由深圳市腾讯计算机系统有限公司技术工程事业群网络平台部运营,我们希望与业界各位志同道合的伙伴交流切磋最新的网络、服务器行业动态信息,同时分享腾讯在网络与服务器领域,规划、运营、研发、服务等层面的实战干货,期待与您的共同成长。 网络平台部以构建敏捷、弹性、低成本的业界领先海量互联网云计算服务平台,为支撑腾讯公司业务持续发展,为业务建立竞争优势、构建行业健康生态而持续贡献价值! 小编:还有1天就大年夜拉,期待大年夜晚上的微信红包,总有种要中大奖的感觉,所以这几天小编勤加苦练微信摇一摇,小编膏药已贴
针对海量的网络流量,转发性能是我们最关键的一个方面,那构建高性能的后台服务器有哪些关键的技术和需要注意的地方。
若上面的操作是在vmware上操作,需要加上上面额外的参数pmu=off,为了规避vmware的bug。若不加会报下面的错误:
针对海量的网络流量,转发性能是我们最关键的一个方面,那构建高性能的后台服务器有哪些关键的技术和需要注意的地方,今天邀请了后台开发同学童琳和郑胜利来和大家一起谈谈。 一、引言 随着互联网的高速发展,内容量的提升以及对内容智能的需求、云产业的快速突起,作为互联网的计算基石服务器的形态以及使用成为了炙手可热的话题,全球各家大型互联网公司都持续的在服务器平台上有非常大的动作,譬如facebook的OCP等,而整个服务器的生态链也得到了促进和发展。随着服务器硬件性能的提升和网络硬件的开放,传统PC机的处理性能甚者可
最近很多人在讨论OpenStack,我也想写点东西。思来想去,云计算范畴实在广泛,自然就聊点最近话题异常火热,让广大云计算从业者爱之深、痛之切,想说一声爱你,不容易的OpenStack吧。
内核引导参数大体上可以分为两类:一类与设备无关、另一类与设备有关。与设备有关的引导参数多如牛毛,需要你自己阅读内核中的相应驱动程序源码以获取其能够接受的引导参数。比如,如果你想知道可以向 AHA1542 SCSI 驱动程序传递哪些引导参数,那么就查看 drivers/scsi/aha1542.c 文件,一般在前面 100 行注释里就可以找到所接受的引导参数说明。大多数参数是通过"__setup(... , ...)"函数设置的,少部分是通过"early_param(... , ...)"函数设置的,逗号前的部分就是引导参数的名称,后面的部分就是处理这些参数的函数名。
我们在Linux中使用自带的gcc和g++编译器进行编译的程序是针对X86架构的。而我们开发板大多都是ARM或者其他架构的开发板,我们就需要编译出针对其他架构的程序。
centos系统内核如何升级,有些小伙伴在使用centos系统时可能会遇到网卡不能使用,亮度不能调节,触摸板不能识别,等等问题,这些都是内核版本过低而导致,只需要把内核升级一下就可以, 下面为大家分享一下centos系统内核升级方法。
arm-none-linux-gnueabi-gcc是 Codesourcery 公司(目前已经被Mentor收购)基于GCC推出的的ARM交叉编译工具。可用于交叉编译ARM系统中所有环节的代码,包括裸机程序、u-boot、Linux kernel、filesystem和App应用程序。使用时,按照主机平台,可以下载以下任一版本中的一个,结果是一样的:
本文是为那些没有接触过Linux系统的人写的。了解Linux系统对于一个技术来人员可谓是必须的(即便不是和计算机直接相关的),而对于广大普通用户而言,只了解Windows虽然已经足够,不过来了解一下Linux这个系统我想还是有益处的(虽然很难立马显现)。 下面我就用一问一答的简单形式带大家初步了解Linux是什么: Q:用一句话概括Linux? A : linux是一个操作系统,就和windows一样。 要了解linux,请先了解开放源代码运动。这是由理查德·斯托曼先生在上世纪80年代发起的一项运动。其主要
本文是为那些没有接触过Linux系统的人写的。了解Linux系统对于一个技术来人员可谓是必须的(即便不是和计算机直接相关的),而对于广大普通用户而言,只了解Windows虽然已经足够,不过来了解一下Linux这个系统我想还是有益处的(虽然很难立马显现)。
状态为 deinstall 即已经卸载,如果觉得看着不舒服的话可以使用 purge 连配置文件里一起彻底删除,清理内核列表
当Linux在1991年8月25日诞生时,它不过是当时21岁的Linus Torvalds的一个爱好。今天,Linux社区估计有超过8600万的强大用户。
Linux服务(Linux services)对于每个应用Linux的用户来说都很重要。关闭不需要的服务,可以让Linux运行的更高效,但并不是所有的Linux服务都可以关闭。今天安装了一次CentOs Linux,发现Linux启动的时候启动了好多服务,大部分都不知道是干什么的。因此着重了解了一下那些Linux服务(Linux services)可以关闭,那些Linux服务(Linux services)不能随意关闭。 在关闭Linux服务之前,需要了解一些概念: 什么是Linux服务/后台进程(Linu
需要分别清楚header和image,可以直接用apt-get remove来清除。
Oracle 11g RAC中,发现oc4j以及gsd服务都处于offline状态,这是Oracle 11g RAC默认情形。即便如此,并不影响数据库的使用,因为 oc4j 是用于WLM 的一个资源, WLM在 11.2.0.2 才可用。GSD则是用于支持dbca,srvctl,oem等的交互工具。本文描述将这两个服务切换到online。
有些小伙伴在使用Linux系统时可能会遇到网卡不能使用,亮度不能调节,触摸板不能识别,等等问题,这些都是内核版本过低而导致,只需要把内核升级一下就可以, 下面为大家分享一下Linux系统内核升级方法。
1991 年的 8 月 25 日,来自芬兰赫尔辛基大学的 Linus Torvalds 用 Minix 操作平台建立了一个新的操作系统内核,并把它发回 Minix Usenet 新闻组。此时,年仅 21 岁的大学生 Linus 不会意识到,自己当做兴趣爱好开发的一个小项目会在 29 年后发展成统治世界的庞大操作系统内核。
Linux 与 Linux 内核其实是不一样的,关于这个问题,我在之前的一篇文章中讲过(《Linux,Unix,GNU 到底有什么样的渊源?》)。Linux 的内核是由 Linus Torvalds 在1991年首次编写。它是操作系统的核心,包括设备驱动、文件系统、进程管理、网络通信等。但是操作系统光有内核,用户是没有办法操作的,所以很多厂商和 Linux 社区就在内核之上开发了很多工具,比如我们常用的 GNome桌面,FireFox浏览器、GIMP 图片编辑器等等。Linux 内核和这些应用一起打包后就被称作 Linux 发行版本。Linux 有很多的发行版本,我在之前的文章中(《这么多Linux版本,你究竟该怎么选择?》),对不同的版本做过比较。
操作系统堪称是IT皇冠上的明珠,Linux阅码场专注Linux操作系统内核研究, 它的文章云集了国内众多知名企业一线工程师的心得,畅销著作有《linux设备驱动开发详解 》等。
在现在的生活,生产,研究等领域,Linux已经无所不在,从我们使用的手机,车载设备,到服务器,桌面电脑等,Linux已经成为这个世界方方面面的基石。尤其对于参与技术有关工作的你学习Linux是必须的,那么,该如何有效的学习呢?Linux从诞生至今,已经是一个非常庞大且复杂的系统,下图是Linux系统代码行数的统计(参考linuxcounter):
文 | 糖豆 图 | 来源网络 糖豆贴心提醒,本文阅读时间6分钟,文末有秘密! Linux cat命令 cat 命令用于连接文件并打印到标准输出设备上。 Linux chattr命令 Linux chattr命令用于改变文件属性。 Linux chgrp命令 Linux chgrp命令用于变更文件或目录的所属群组。 在UNIX系统家族里,文件或目录权限的掌控以拥有者及所属群组来管理。您可以使用chgrp指令去变更文件与目录的所属群组,设置方式采用群组名称或群组识别码皆可。 Linux chmo
领取专属 10元无门槛券
手把手带您无忧上云