affinity

关于中断(补充中)

白昼怎懂夜的黑 提交于 2020-10-05 14:00:35
1.什么是中断? 中断是由硬件或软件所发送的一种称为IRQ(中断求救)的信号,CPU会对这一信号进行响应。 2.为什么引入中断? 中断在操作系统中有着特殊重要的地位,它是多道程序得以实现的基础,没有中断就没有多道程序。另一方面也是设备管理的基础,为了提高处理机的利用率和实现CPU与I/O设备并行执行,必需有中断的支持,是整个I/O系统的基础。 3.中断什么时候发生? (1)当I/O设备向CPU发来中断信号。 (2)CPU内部的事件,如:进程在运算中发生了上溢或下溢。或者程序出错:非法指令,地址越界,电源故障等。 4.中断发生时CPU做什么,中断机制做什么? 当CPU接收到中断请求时,会对该请求进行响应,然后转向中断处理程序,由它来执行相应的处理,处理完之后解除相应进程的阻塞状态。 中断机制主要进行如下操作: (1)测定是否有未相应的中断信号 每当设备完成一个数据块(可以是一个字符或者字)的读入或输出时,设备控制器就会向处理机发送一个中断请求信号,请求将要输入的数据传送到内存缓冲区或者将要输出的数据传送到设备控制器。 每次有一道指令执行后,处理机都会检测,是否存在未响应的上面提到的设备控制器所发出的中断信号。 有的话就会停止原有进程,准备转到中断处理程序,准备将处理机的控制权交给中断处理程序。反之继续执行下一条指令 (2)保护中断进程的CPU环境 上面提到要转交处理机的控制权

交易系统开发(六)——HFT高频交易

大憨熊 提交于 2020-10-03 03:38:20
交易系统开发(六)——HFT高频交易 一、高频交易简介 1、高频交易简介 高频交易(High Frequency Trading)是指从极为短暂的市场变化(市场的微观特性)中寻求获利的程序化交易,如某种证券买入价和卖出价差价的微小变化,或者某只股票在不同交易所之间的微小价差。 2、高频交易的特点 美国证券交易委员会SEC给出的高频交易的特点: (1)使用超高速的复杂计算机系统下单。 (2)使用co-location和直连交易所的数据通道。 (3)平均每次持仓时间极短。 (4)大量发送和取消委托订单。 (5)收盘时基本保持平仓(不持仓过夜)。 HFT的速度优势是指当交易所完成一笔交易,在通知所有交易者的时候,HFT因为在通信线路的上游,所以会比别人先看到交易确认信息,可以根据自己对交易确认信息的理解以及业务需求,增加或者撤掉自己的委托订单,但都是完全正常的交易操作,不存在任何恶意,并且由于交易确认信息是发送给所有人的,任何人都会对交易确认做出解读和反应,但只有在同一个时间粒度上工作的交易者之间才可能存在竞争。 3、高频交易的发展历史 1602年,阿姆斯特丹证券交易所成为世界上首个证券交易所。 17世纪,罗斯柴尔德家族使用信鸽传递消息,成功跨越国界在同一类证券价格上进行套利。 1983年,彭博(Bloomberg)获得美林证券公司(Merrill Lynch)3000万美元投资

CPU明明8个核,网卡为啥拼命折腾一号核?

此生再无相见时 提交于 2020-08-18 08:52:26
中断机制 我是CPU一号车间的阿Q,我又来了! 我们日常的工作就是不断执行代码指令,不过这看似简单的工作背后其实也并不轻松。 咱不能闷着头啥也不管一个劲的只管执行代码,还得和连接在主板上的其他单位打交道。经常保持联系的有键盘、鼠标、磁盘,哦对,还有网卡,这家伙最近把我惹到了,待会再说这事儿。 原以为内存那家伙已经够慢的了,没想到跟上面这几位通个信比他更慢,咱CPU工厂的时间一刻值千金,不能干等着,耽误工夫。后来厂里一合计,想了个叫 中断 的办法。 在我们车间装了个大灯,这些单位想联系我们办事儿,就先给我们发一个中断信号,大灯就会自动亮起。我们平时工作执行代码指令的时候,每执行一条指令就会瞅一眼看看大灯有没有亮起来。一旦发现灯亮了,就把手头的工作先放一边,去处理一下。 我们记性很差的,等会处理了完了还得回来接着原来的活继续干,为了等会回来还能接的起来,走之前得把当前执行的这个线程的各个寄存器的值,执行到哪里了等等这些信息都保存在这个线程的栈里去。 不过有时候我们在执行非常重要的事情的时候,就不想被他们打断。于是我们又在车间里那个 eflags寄存器 中设置了一个标记,如果是1我们才允许被打断,如果是0那就算天王老子找我们也不管了。 哦不对,还有一种不可以屏蔽的中断 NMI ,走得是绿色通道。不过我可不期望有这种事情发生,因为一般都没有好事,不是电源断电就是温度过高

SSD硬盘配置最佳实践

不打扰是莪最后的温柔 提交于 2020-08-18 05:30:35
本文原创作者杜霆,京东商城基础平台部MySQL DBA,经作者同意发表于本人博客,如需转载需经本人同意。 一、测试背景 服务器升级SSD后,速度和性能没有得到应有的提升,原因是没有正确使用SSD,主要是raid、linux、mysql数据库等相关参数没有正确的配置,本文对SSD的相关参数进行了对比性能测试,根据相关资料以及测试结果得出相关结论,了解实用场景以及对应优势。 二、测试环境 主机:172.20.166.52 Cpu:32 * Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz 内存:129G 操作系统:CentOS release 6.6 Sysbench:Sysbench 0.5 SSD硬盘:800G*6 raid5 主机:172.20.166.23 Cpu:32 * Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz 内存:129G 操作系统:CentOS release 6.6 Sysbench:Sysbench 0.5 SSD硬盘:800G*6 raid10 /raid0 三、测试工具及内容 使用Sysbench对相同硬件、软件环境的raid、linux、mysql等相关参数进行io性能测试、mysql性能测试,对比io性能。 IO性能测试Sysbench参数: 参数名称 参数值 file-block

你真的了解负载均衡中间件nginx吗?

一世执手 提交于 2020-08-17 08:37:50
前言 nginx可所谓是如今最好用的软件级别的负载均衡了。通过nginx的高性能,并发能力强,占用内存下的特点,可以搭建高性能的代理服务。同时nginx还能作为web服务器,反向代理,动静分离服务器。十分的方便好用,今天让我来一起看看,你真的了解nginx吗? Nginx 简介 Nginx 概述 Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,特点是占有内存少,并发能力强,事实上nginx 的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用 nginx 网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。 Nginx 作为 web 服务器 Nginx 可以作为静态页面的 web 服务器,同时还支持 CGI 协议的动态语言,比如 perl、php 等。但是不支持 java。Java 程序只能通过与 tomcat 配合完成。Nginx 专为性能优化而开发, 性能是其最重要的考量,实现上非常注重效率,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数。 https://lnmp.org/nginx.html 正向代理 Nginx 不仅可以做反向代理,实现负载均衡。还能用作正向代理来进行上网等功能。 正向代理:如果把局域网外的 Internet 想象成一个巨大的资源库,则局域网中的客户端要访问 Internet

遇到问题---pod使用pvc存储时报错---had volume affinity conflict

十年热恋 提交于 2020-08-12 08:59:08
遇到问题 使用yaml创建mysql服务时使用pvc作为持久存储,使用的yaml如下: storageclass.yml kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: nfs provisioner: kubernetes.io/no-provisioner mysql-pv.yml apiVersion: v1 kind: PersistentVolume metadata: name: mysql-pv spec: capacity: storage: 1Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain storageClassName: nfs nfs: path: /nfsdata/mysql-pv server: 172.28.2.210 mysql-pvc.yml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mysql-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi storageClassName: nfs mysql.yml

CPU明明8个核,网卡为啥拼命折腾一号核?

你。 提交于 2020-08-09 06:52:57
中断机制 我是CPU一号车间的阿Q,我又来了! 我们日常的工作就是不断执行代码指令,不过这看似简单的工作背后其实也并不轻松。 咱不能闷着头啥也不管一个劲的只管执行代码,还得和连接在主板上的其他单位打交道。经常保持联系的有键盘、鼠标、磁盘,哦对,还有网卡,这家伙最近把我惹到了,待会再说这事儿。 原以为内存那家伙已经够慢的了,没想到跟上面这几位通个信比他更慢,咱CPU工厂的时间一刻值千金,不能干等着,耽误工夫。后来厂里一合计,想了个叫中断的办法。 在我们车间装了个大灯,这些单位想联系我们办事儿,就先给我们发一个中断信号,大灯就会自动亮起。我们平时工作执行代码指令的时候,每执行一条指令就会瞅一眼看看大灯有没有亮起来。一旦发现灯亮了,就把手头的工作先放一边,去处理一下。 我们记性很差的,等会处理了完了还得回来接着原来的活继续干,为了等会回来还能接的起来,走之前得把当前执行的这个线程的各个寄存器的值,执行到哪里了等等这些信息都保存在这个线程的栈里去。 不过有时候我们在执行非常重要的事情的时候,就不想被他们打断。于是我们又在车间里那个eflags寄存器中设置了一个标记,如果是1我们才允许被打断,如果是0那就算天王老子找我们也不管了。 哦不对,还有一种不可以屏蔽的中断NMI,走得是绿色通道。不过我可不期望有这种事情发生,因为一般都没有好事,不是电源断电就是温度过高

将容器组调度到指定的节点

拈花ヽ惹草 提交于 2020-08-09 02:55:09
概述 在 Kubernetes,您可以限定 Pod 只能在特定的节点上运行,或者优先选择在特定的节点上运行。通常您并不需要这样做,而应该交由 kubernetes 调度程序根据资源使用情况自动地为 Pod 分配节点。但是少数情况下,这种限定仍然是必要的,例如: 确保某些 Pod 被分配到具有固态硬盘的节点 将相互通信频繁的两个 Pod 分配到同一个高可用区的节点 Kubernetes 一共提供了四种方法,可以将 Pod 调度到指定的节点上,这些方法从简便到复杂的顺序如下: 指定节点 nodeName 节点选择器 nodeSelector Kubernetes 推荐用法 Node isolation/restriction Affinity and anti-affinity 本文后续章节逐个描述了他们的用法 # 指定节点 nodeName nodeName 是四种方法中最简单的一个,但是因为它的局限性,也是使用最少的。nodeName 是 PodSpec 当中的一个字段。如果该字段非空,调度程序直接将其指派到 nodeName 对应的节点上运行。 通过 nodeName 限定 Pod 所运行的节点有如下局限性: 如果 nodeName 对应的节点不存在,Pod 将不能运行 如果 nodeName 对应的节点没有足够的资源,Pod 将运行失败,可能的原因有:OutOfmemory