几个cpu more /proc/cpuinfo |grep “physical id”|uniq|wc -l 每个cpu是几核(假设cpu配置相同) more /proc/cpuinfo |grep...查看CPU是几核 #cat /proc/cpuinfo |grep “cores”|uniq 4....查看CPU的主频 #cat /proc/cpuinfo |grep MHz|uniq # uname -a Linux euis1 2.6.9-55.ELsmp #1 SMP Fri Apr 20 17...‘ lm ‘ | wc -l 8 (结果大于0, 说明支持64bit计算. lm指long mode, 支持lm则是64bit) 如何获得CPU的详细信息: linux命令:cat /proc/cpuinfo...如果有两个逻辑CPU具有相同的”core id”,那么超线程是打开的。
在linux下可以通过指令 grep ‘physical id’ /proc/cpuinfo | sort -u | wc -l 来查看你的物理CPU个数 cpu核数 核数就是指CPU上集中的处理数据的...linux的cpu核心总数也可以在/proc/cpuinfo里面通过指令cat /proc/cpuinfo查看的到,其中的core id指的是每个物理CPU下的cpu核的id,能找到几个core id就代表你的计算机有几个核心...而当超线程开启后,逻辑CPU的个数是核数的两倍。实际上逻辑CPU的数量就是平时称呼的几核几线程中的线程数量,在linux的cpuinfo中逻辑CPU数就是processor的数量。...可以使用指令cat /proc/cpuinfo | grep “processor” | wc -l来查看逻辑CPU数。 知道上面这些,常说的几核几线程就好理解了。...有人也把它称之为16核,实际上在linux的/proc/cpuinfo中查看只有8核。
如果现在分别有两个线程运行在两个不同的核 Core 1 和 Core 2 上,内存中 i 的值为 1,这两个分别运行在两个不同核上的线程要对 i 进行加 1 操作,如果不加一些限制,两个核心同时从内存中读取...下面看看基于缓存一致性协议是如何进行读取和写入操作的, 假设现在有一个双核的 CPU,为了描述方便,简化一下只看其逻辑结构: ?...双核读取步骤:首先 Core 0 发出一条从内存中读取 a 的指令,从内存通过 BUS 读取 a 到 Core 0 的缓存中,然后将 Cache line 置为 E 状态,此时 Core 1 发出一条指令...假设此时 Core 0 核心需要对 a 进行修改了,首先 Core 0 会将其缓存的 a 设置为 M(修改)状态,然后通知其它缓存了 a 的其它核 CPU(比如这里的 Core 1)将内部缓存的 a 的状态置为...至此,变量 a 在 CPU 的两个核 Core 0 和 Core 1 中回到了 S(共享)状态了,以上只是简单的描述了一下大概的过程,实际上这些都是在 CPU 的硬件层面上去保证的,而且操作比较复杂。
2.逻辑CPU Linux用户对 /proc/cpuinfo 这个文件肯定不陌生. 它是用来存储cpu硬件信息的,信息内容分别列出了processor 0 – n 的规格。...ht) 备注一下:Linux下top查看的CPU也是逻辑CPU个数 3.CPU核数 一块CPU上面能处理数据的芯片组的数量、比如现在的i5 760,是双核心四线程的CPU、而 i5 2250 是四核心四线程的...CPU,一般来说,物理CPU个数×每颗核数就应该等于逻辑CPU的个数,如果不相等的话,则表示服务器的CPU支持超线程技术。...32 Intel(R) Xeon(R) CPU E7- 4820 @ 2.00GHz 【2】查看物理cpu个数:物理核心数是2核 [root@node1 ~]# cat /proc/cpuinfo...| grep "processor" |wc -l 32 【4】查看cpu是几核:cpu是8核 [root@node1 ~]# cat /proc/cpuinfo | grep "cores"|uniq
查看系统: cat /etc/os-release 结果为 centOS Linux 7 ?...查看核数和CPU: lscpu 40 个核,处理器为 Intel(R) Xeon(R) CPU E7-8891 v4 @ 2.80GHz , 64 位 ?
# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 # 查看物理CPU个数 cat /proc/cpuinfo|...grep "physical id"| sort| uniq| wc -l # 查看每个物理CPU中core的个数(即核数) cat /proc/cpuinfo| grep "cpu cores"|...uniq # 查看逻辑CPU的个数 cat /proc/cpuinfo| grep "processor"| wc -l #查看CPU信息(型号) cat /proc/cpuinfo | grep...name | cut -f2 -d: | uniq -c 一个物理封装的CPU(通过physical id区分判断)可以有多个核(通过core id区分判断)。...而每个核可以有多个逻辑cpu(通过processor区分判断)。 一个核通过多个逻辑cpu实现这个核自己的超线程技术。
总核数 = 物理CPU个数 X 每颗物理CPU的核数 查看物理CPU个数 cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l 查看每个物理...CPU中core的个数(即核数) cat /proc/cpuinfo| grep "cpu cores"| uniq 查看逻辑CPU的个数 cat /proc/cpuinfo| grep "processor...查看CPU信息(型号) cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 查看内存信息 cat /proc/meminfo
在网上搜一下,可以看到很多猫蛇战斗的照片,看来猫蛇之战是很多人都喜欢看的“精彩节目”。 ? (照片来自搜索引擎) 再来一张更清晰一些的。 ?...很多同行都知道,今天的CPU是运行在所谓的保护模式中,软件访问的内存空间都是虚拟空间。而且这个虚拟空间中的内容是分三六九等的,是分平民区和富人区的,是分道路和深坑的。...直到后来发现了内核中的一个神秘机制。这个机制是跨操作系统的,Windows中有,Linux也有,而且都是相同的名字,叫Probe。...ProbeForRead () 而Linux内核中的两个函数为: root@gedu-VirtualBox:/home/gedu/labs/linux-source...(https://elixir.bootlin.com/linux/v5.0-rc8/source/include/linux/uaccess.h) 在处理页错误的do_page_fault函数中
在Linux内核中关于进程或者线程的表示通常用task_struct,这个结构体中的用来表示CPU亲和性的是cpus_allowed位掩码。...同时Linux 内核API提供用于用户修改掩码来绑定CPU //用于绑定线程或者进程在某个CPU上运行 sched_set_affinity() // 查看线程或者进程在哪一个CPU运行 sched_get_affinity...CPU绑核适应的情况 计算密集型的进程 运行时间敏感、核心的进程 CPU进程或者线程独占 进程或者线程绑定到某个CPU Core,仍然可能会有线程或者进程切换的发生,如果想到达到进一步减少其他进程对于该进程或者线程影响...,可以采取把CPU Core从Linux内核调度中剥离出来。...Linux内核提供isolcpus,对于有4个CPU core的系统,在启动时候加入isolcpus=2,3,那么系统启动后将不会使用CPU3,CPU4.这里的不适用不是绝对的,但是可以通过taskset
从linux源码看epoll 前言 在linux的高性能网络编程中,绕不开的就是epoll。...(注:由于是tcp socket,所以这边sock->ops=inet_stream_ops,这个初始化的过程在我的另一篇博客>中,博客地址如下: https...可读事件到来 首先我们看下tcp数据包从网卡驱动到kernel内部tcp协议处理调用链: step1: 网络分组到来的内核路径,网卡发起中断后调用netif_rx将事件挂入CPU的等待队列,并唤起软中断...(soft_irq),再通过linux的软中断机制调用net_rx_action,如下图所示: ?...总结 epoll作为linux下非常优秀的事件触发机制得到了广泛的运用。其源码还是比较复杂的,本文只是阐述了epoll读写事件的触发机制,探究linux kernel源码的过程非常快乐^_^。
前言 在linux的高性能网络编程中,绕不开的就是epoll。和select、poll等系统调用相比,epoll在需要监视大量文件描述符并且其中只有少数活跃的时候,表现出无可比拟的优势。...的结构如下图所示: (注:由于是tcp socket,所以这边sock->ops=inet_stream_ops,这个初始化的过程在我的另一篇博客...可读事件到来 首先我们看下tcp数据包从网卡驱动到kernel内部tcp协议处理调用链: step1: 网络分组到来的内核路径,网卡发起中断后调用netif_rx将事件挂入CPU的等待队列,并唤起软中断...(soft_irq),再通过linux的软中断机制调用net_rx_action,如下图所示: 注:上图来自PLKA(>) step2: 紧接着跟踪next_rx_action...总结 epoll作为linux下非常优秀的事件触发机制得到了广泛的运用。其源码还是比较复杂的,本文只是阐述了epoll读写事件的触发机制,探究linux kernel源码的过程非常快乐_。
从Keynote的大会场这people mountain people sea场面看,小安感觉1万人确实不是吹出来的。 ?...今年的Black Hat设置了上百场专题演讲,内容涉及移动安全、加密技术、逆向工程、物联网等方方面面。从下面的议题列表上看,基本上涵盖了安全相关领域的各方面。 ?...可喜的是我们可以从演讲人列表上看到了越来越多的中文名字。有些是安全圈中大名鼎鼎的“网红”,也有些比较陌生。中国力量在全球安全舞台上正在扮演越来越重要的角色。 ?...下面小安从自己的视角为您总结出本届大会的几宗“最”: 最土豪的参展商 参加展会租个展位不是什么新鲜事,土豪公司无非也就是砸钱租个面积大点展位,布展炫酷点,再雇上几位show girl增加人气。...从抓拍的会场照片看,确实已是座无虚席。 ? ---- 不知不觉中今年的Black Hat就已经落幕了,不过好戏仍在上演。小安已经拿到了DefCon的badge,看看是不是很炫酷: ?
前不久在v2ex看到一个帖子,说腾讯云服务器CPU有水分,应该是这个人理解有误,我看那个帖子有一些网友回复挺专业的。...没用过他说的软件,好奇,分别用这2个软件测了一次,严谨点的话,应该多次测试取平均值,我没用多次测,毕竟很显然就是"此核非彼核"的问题,电脑说的几核跟云服务器说的几核不是一个概念,通常说的电脑几核跟云服务器几核是两回事...,电脑几核说的是内核数,云服务器几核说的是vCPU个数,即逻辑处理器个数。...而云服务器配置几核几G是msinfo32显示的逻辑处理器的个数和内存大小。...那里显示的40 图片.png 图片.png linux系统 比如80 vCPU的黑石,2颗CPU,每颗20个内核,每个内核2个逻辑处理器,共80个逻辑处理器 图片.png 1.查看颗数 grep
%id:空闲cpu %wa:cpu运行时在等待io的时间 %hi:cpu处理硬中断的数量 %si:cpu处理软中断的数量 %st:被虚拟机偷走的cpu 注:99.0 id,表示空闲CPU,即CPU未使用率...04/08/2019 _x86_64_ (1 CPU) 10:54:35 AM LINUX RESTART 11:00:02 AM CPU %user...在Linux系统监控的工具中,free命令是最经常使用的命令之一。...所以我们看linux,只要不用swap的交换空间,就不用担心自己的内存太少.如果常常swap用很多,可能你就要考虑加物理内存了.这也是linux看内存是否够用的标准....如果是应用服务器的话,一般只看第二行,+buffers/cache,即对应用程序来说free的内存太少了,也是该考虑优化程序或加内存了。
从linux源码看socket的close 笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情。...上篇博客讲了socket的阻塞和非阻塞,这篇就开始谈一谈socket的close(以tcp为例且基于linux-2.6.24内核版本) TCP关闭状态转移图: 众所周知,TCP的close过程是四次挥手...出现大量close_wait的情况 linux中出现大量close_wait的情况一般是应用在检测到对端fin时没有及时close当前连接。有一种可能如下图所示: ?...总结 linux内核源代码博大精深,阅读其代码很费周折。之前读>的时候由于有先辈引导和梳理,所以看书中所使用的BSD源码并不觉得十分费劲。...直到现在自己带着问题独立看linux源码的时候,尽管有之前的基础,仍旧被其中的各种细节所迷惑。希望笔者这篇文章能帮助到阅读linux网络协议栈代码的人。
总核数 = 物理CPU个数 X 每颗物理CPU的核数 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 # 查看物理CPU个数 cat /proc/cpuinfo| grep..."physical id"| sort| uniq| wc -l 这个服务器有两个物理CPU # 查看每个物理CPU中core的个数(即核数) cat /proc/cpuinfo| grep "cpu...cores"| uniq 每个CPU有16个核 # 查看逻辑CPU的个数 cat /proc/cpuinfo| grep "processor"| wc -l 这个服务器一共有64个逻辑CPU,也就是我们常说的线程数...# 查看CPU信息(型号) cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c # 如何查看Linux 内核 uname -a 也可以使用下面的命令来查看...Linux的内核 cat /proc/version # 查看内存情况 free -m -m会以兆为单位来显示服务器的内存 free -g -g会以g为单位来显示服务器的内存,这台服务器的内存为125GB
本文大部分讨论的是socket设置为block的情况,即setNonblock(false),仅在最后提及了nonblock socket(本文基于linux 2.6.32-431内核)。...kernel代码版本细微变化 值得注意的是,linux本身官方发布的2.6.32源码对于tcp_syn_retries2的解释和RFC并不一致(至少笔者阅读的代码如此,这个细微的变化困扰了笔者好久,笔者下载了和机器对应的内核版本后才发现代码改了...在timeout>0时,将socket设置为非阻塞,然后用select系统调用去模拟超时,而没有走linux本身的超时逻辑,如下图所示: 由于没有java并没有设置so_sndtimeo的选项,所以在...java的SocketInputStream的sockRead0超时时间 java的超时时间由SO_TIMOUT决定,而linux的socket并没有这个选项。...定时器超时事件发生的时间如上面几小节所述,和是否nonblock无关。nonblock的编程模式可以让应用层对这些事件做出响应。
从linux源码看socket(tcp)的timeout 前言 网络编程中超时时间是一个重要但又容易被忽略的问题,对其的设置需要仔细斟酌。...本文大部分讨论的是socket设置为block的情况,即setNonblock(false),仅在最后提及了nonblock socket(本文基于linux 2.6.32-431内核)。...在timeout>0时,将socket设置为非阻塞,然后用select系统调用去模拟超时,而没有走linux本身的超时逻辑,如下图所示: ?...java的SocketInputStream的sockRead0超时时间 java的超时时间由SO_TIMOUT决定,而linux的socket并没有这个选项。...定时器超时事件发生的时间如上面几小节所述,和是否nonblock无关。nonblock的编程模式可以让应用层对这些事件做出响应。
今天笔者就来从Linux源码的角度看下Server端的Socket在进行bind的时候到底做了哪些事情(基于Linux 3.10内核)。...这个特性在紧急重启以及线下调试的非常有用,建议开启。 SO_REUSEPORT SO_REUSEPORT是Linux在3.9版本引入的新功能。...2.CPU缓存行丢失 我们看下一般的Reactor线程模型, 明显的其单线程listen/accept会存在瓶颈(如果采用多线程epoll accept,则会惊群,加WQ_FLAG_EXCLUSIVE...鉴于此,Linux增加了SO_REUSEPORT,而之前bind中判断是否冲突的下面代码也是为这个参数而添加的逻辑: if(!reuseport || !...https://www.nginx.com/blog/socket-sharding-nginx-release-1-9-1/ 总结 Linux内核源码博大精深,一个看起来简单的bind系统调用竟然牵涉这么多
今天笔者就从Linux源码的角度看下Server端的Socket在进行Accept的时候到底做了哪些事情(基于Linux 3.10内核)。...关于epoll的原理可以看下笔者之前的博客《从linux源码看epoll》: https://www.cnblogs.com/alchemystar/p/13161781.html 在这里描述一下原因,...在accept_queue被填充后,由用户线程通过accept系统调用从队列中获取对应的fd 值得注意的是,当用户线程来不及处理的时候,内核会drop掉三次握手成功的连接,导致一些诡异的现象,具体可以看笔者的另一篇博客...,可以见笔者另一篇博客的详细分析 《从Linux源码看Socket(TCP)的listen及连接队列》: https://www.cnblogs.com/alchemystar/p/13845081.html...总结 Linux内核源码博大精深,每次扎进去探索时候都会废寝忘食,其间可以看到各种优雅的设计,在此分享出来,希望对读者有所帮助。
领取专属 10元无门槛券
手把手带您无忧上云