cpu参数

性能分析报告

泄露秘密 提交于 2020-01-19 22:20:31
性能测试工具CPU profiler(gperftools) 编译安装gperftools gperftools是一个工具包,CPU profiler是其中的工具之一,用于程序性能分析。要使用CPU profiler就要先编译安装gperftools,下面是简单的编译安装过程. 从github下载gperftools源码并解压wgethttps://github.com/gperftools/gperftools/archive/gperftools-2.7.tar.gztarxvf gperftools-2.7.tar.gz# 解压文件夹改名mvgperftools-gperftools-2.7 gperftools-2.7cdgperftools-2.7./autogen.sh./configuremake-j8# 安装到系统文件夹sudomakeinstall 注意:在64位操作系统下需要libunwind支持,如果没有安装libunwind,还要先编译安装libunwind。 使用cpu profiler 根据CPU profiler的官方说明(https://gperftools.github.io/gperftools/cpuprofile.html),对一个程序进行测试是很简单的。 只要加上-lprofiler对程序重新编译一次,再执行程序就可以了

OpenCL介绍

你。 提交于 2020-01-19 13:59:45
  OpenCL(全称Open Computing Language,开放运算语言)是第一个面向异构系统通用目的并行编程的开放式、免费标准,也是一个统一的编程环境,便于软件开发人员为高性能计算服务器、桌面计算系统、手持设备编写高效轻便的代码,而且广泛适用于多核心处理器(CPU)、图形处理器(GPU)、Cell类型架构以及数字信号处理器(DSP)等其他并行处理器,在游戏、娱乐、科研、医疗等各种领域都有广阔的发展前景。 基本信息   OpenCL是一个为异构平台编写程序的框架,此异构平台可由CPU,GPU或其他类型的处理器组成。OpenCL由一门用于编写kernels (在OpenCL设备上运行的函数)的语言(基于C99)和一组用于定义并控制平台的API组成。OpenCL提供了基于任务分割和数据分割的并行计算机制。   OpenCL类似于另外两个开放的工业标准OpenGL和OpenAL,这两个标准分别用于三维图形和计算机音频方面。OpenCL扩展了GPU用于图形生成之外的能力。OpenCL由非盈利性技术组织Khronos Group掌管。 历史发展   OpenCL最初苹果公司开发,拥有其商标权,并在与AMD,IBM,英特尔和NVIDIA技术团队的合作之下初步完善。随后,苹果将这一草案提交至Khronos Group。   2008年6月的WWDC大会上,苹果提出了OpenCL规范

Spring Boot项目中使用 TrueLicense 生成和验证License(服务器许可)

筅森魡賤 提交于 2020-01-19 04:33:22
icense,即版权许可证,一般用于收费软件给付费用户提供的访问许可证明。根据应用部署位置的不同,一般可以分为以下两种情况讨论: 应用部署在开发者自己的云服务器上。这种情况下用户通过账号登录的形式远程访问,因此只需要在账号登录的时候校验目标账号的有效期、访问权限等信息即可。 应用部署在客户的内网环境。因为这种情况开发者无法控制客户的网络环境,也不能保证应用所在服务器可以访问外网,因此通常的做法是使用服务器许可文件,在应用启动的时候加载证书,然后在登录或者其他关键操作的地方校验证书的有效性。 注:限于文章篇幅,这里只讨论代码层面的许可限制,暂不考虑逆向破解等问题。此外,在下面我只讲解关键代码实现,完整代码可以参考: gitee.com/zifangsky/L… 二 使用 TrueLicense 生成License (1)使用 Spring Boot 构建测试项目ServerDemo,用于为客户生成License许可文件: 注:这个完整的Demo项目可以参考: gitee.com/zifangsky/L… i)在pom.xml中添加关键依赖: de.schlichtherle.truelicense truelicense-core 1.33 provided 复制代码 ii)校验自定义的License参数: TrueLicense的 de.schlichtherle.license

Spring Boot项目中使用 TrueLicense 生成和验证License(服务器许可)

大兔子大兔子 提交于 2020-01-19 04:30:06
一 简介 License,即版权许可证,一般用于收费软件给付费用户提供的访问许可证明。根据应用部署位置的不同,一般可以分为以下两种情况讨论: 应用部署在开发者自己的云服务器上。这种情况下用户通过账号登录的形式远程访问,因此只需要在账号登录的时候校验目标账号的有效期、访问权限等信息即可。 应用部署在客户的内网环境。因为这种情况开发者无法控制客户的网络环境,也不能保证应用所在服务器可以访问外网,因此通常的做法是使用服务器许可文件,在应用启动的时候加载证书,然后在登录或者其他关键操作的地方校验证书的有效性。 注:限于文章篇幅,这里只讨论代码层面的许可限制,暂不考虑逆向破解等问题。此外,在下面我只讲解关键代码实现,完整代码可以参考: gitee.com/zifangsky/L… 二 使用 TrueLicense 生成License (1)使用Spring Boot构建测试项目ServerDemo,用于为客户生成License许可文件: 注:这个完整的Demo项目可以参考: gitee.com/zifangsky/L… i)在pom.xml中添加关键依赖: <dependency> <groupId>de.schlichtherle.truelicense</groupId> <artifactId>truelicense-core</artifactId> <version>1.33<

芯片封装类型图鉴[zz]

岁酱吖の 提交于 2020-01-18 22:00:06
转自: http://xnian.com/2009/07/1614.html 封装大致经过了如下发展进程: 结构方面:DIP封装(70年代)->SMT工艺(80年代 LCCC/PLCC/SOP/QFP)->BGA封装(90年代)->面向未来的工艺(CSP/MCM) 材料方面:金属、陶瓷->陶瓷、塑料->塑料; 引脚形状:长引线直插->短引线或无引线贴装->球状凸点; 装配方式:通孔插装->表面组装->直接安装 一.TO 晶体管外形封装 TO(Transistor Out-line)的中文意思是“晶体管外形”。这是早期的封装规格,例如TO-92,TO-92L,TO-220,TO-252等等都是插入式封装设计。近年来表面贴装市场需求量增大,TO封装也进展到表面贴装式封装。 TO252和TO263就是表面贴装封装。其中TO-252又称之为D-PAK,TO-263又称之为D2PAK。 D- PAK封装的MOSFET有3个电极,栅极(G)、漏极(D)、源极(S)。其中漏极(D)的引脚被剪断不用,而是使用背面的散热板作漏极(D),直接焊 接在PCB上,一方面用于输出大电流,一方面通过PCB散热。所以PCB的D-PAK焊盘有三处,漏极(D)焊盘较大。 二. DIP 双列直插式封装 DIP(DualIn-line Package)是指采用双列直插形式封装的集成电路芯片,绝大多数中小规模集成电路

JVM之GC算法的实现(垃圾回收器)

懵懂的女人 提交于 2020-01-18 08:17:22
上一节: 《JVM之GC算法》 知道GC算法的理论基础,我们来 看看 具体的实现。只有落地的理论,才是真理。 一、JVM垃圾回收器的结构 JVM虚拟机规范对垃圾收集器应该如何实现没有规定,因为没有最好的垃圾收集器,只有最适合的场景。 图中展示了7种作用于不同分代的收集器,如果两个收集器之间存在连线,则说明它们可以搭配使用。虚拟机所处的区域则表示它是属于新生代还是老年代收集器。 7种:serial收集器、parnew收集器、parallel scavenge收集器、serial old 收集器、parallel old收集器、cms收集器、g1收集器(整堆收集器)、 串行收集:单垃圾收集线程,进行收集工作,用户进程需要等待 并行收集:工作原理与串行一样,只是在收集垃圾时是多条线程同时进行,收集的效率在一般情况下自然高于单线程。 并发收集:指用户线程与垃圾收集线程同时工作(并发:同一时间间隔)。用户程序在继续运行,而垃圾收集程序运行在另一个CPU上。 吞吐量:吞吐量就是CPU中用于运行用户代码的时间与CPU总消耗时间的比值(吞吐量 = 运行用户代码时间 / (运行用户代码时间 + 垃圾收集时间)) 1、Serial收集器 Serial(串行)收集器:最基本,最古老的收集器,只有一个线程进行垃圾收集器的工作,并且在进行垃圾收集工作时需要暂停其他工作线程(stop the word)

[转帖]KVM性能测试报告

坚强是说给别人听的谎言 提交于 2020-01-17 22:52:10
KVM性能测试报告 http://openskill.cn/article/88 本测试试图找出以下问题的答案: 1. 虚拟机相对于物理机性能损失有多严重(CPU/MEM/NET/DISK) 2. 对于多个虚拟机,KVM 对资源的分配是否公正 3. 找出性能最好的物理机磁盘类型和虚拟机磁盘类型及参数 A) 物理机使用 ext4 的最优化设置 ➔ 使用 raw 磁盘的最优性能设置 ➢ cache类型 • none • writeback • writethrough ➢ 驱动类型 • ide • virtio ➔ 使用 qcow2 磁盘的最优性能设置 ➢ cache类型 • none • writeback • writethrough ➢ 驱动类型 • ide • virtio ➢ 是否preallocation ➔ 比较得出使用 ext4 的虚拟机磁盘类型最优化设置 B) 物理机使用xfs磁盘的最优化设置 ➔ 使用 raw 磁盘的最优性能设置 ➢ cache类型 1. none 2. writeback 3. writethrough ➢ 驱动类型 1. ide 2. virtio ➔ 使用 qcow2 磁盘的最优性能设置 ➢ cache类型 1. none 2. writeback 3. writethrough ➢ 驱动类型 1. ide 2. virtio ➢

DMA、TCM与Cache介绍

末鹿安然 提交于 2020-01-17 12:46:10
【转】https://blog.csdn.net/qq_20880415/article/details/89036066 DMA DMA=Direct Memory Access。这是一种通过硬件实现的数据传输机制。简单的说,就是不在CPU的参与下完成数据的传输。 DMA是一种硬件设备。这种设备的工作原理是这样的: ——首先CPU告诉DMA设备,要有一堆数据需要传输,为了效率而请它出马。(DMA请求) ——DMA收到CPU的消息,开始准备。此时CPU把数据源地址、数据目标地址、传输数据量、传输模式等等参数告诉它。(DMA初始化) ——DMA初始化完,向CPU发送消息“借你的总线用一用,我要开始传输数据了!”(总线出借,DMA启动) ——CPU收到消息后,暂时切断自己与总线的联系。DMA开始传输数据。(DMA数据) ——DMA传输完数据之后,向CPU发送消息“搞定了!总线还给你。”(总线归还) ——CPU说:“干得好!老将出马一个顶俩!辛苦了,你先歇着吧。”DMA设备停止。CPU该干啥干啥。 由于是硬件实现的,所以DMA的速度非常快。快到什么程度呢?在DS上,尤其是数据量非常大的时候,相比于CPU当中介,效率能够提高一百万倍以上。 由于DMA的速度是如此之快,所以大量的数据传输,一般都要求使用DMA。 TCM TCM=Tightly Coupled Memory,是一种高速缓存

白话Elasticsearch67-不随意调节jvm和thread pool的原因&jvm和服务器内存分配的最佳实践

♀尐吖头ヾ 提交于 2020-01-17 09:36:52
文章目录 不随意调节jvm和thread pool的原因 jvm gc threadpool jvm和服务器内存分配的最佳实践 jvm heap分配 将机器上少于一半的内存分配给es 不要给jvm分配超过32G内存 在32G以内的话具体应该设置heap为多大? 对于有1TB内存的超大内存机器该如何分配? swapping 不随意调节jvm和thread pool的原因 es中有很多的配置都让大家忍不住去调优,因为也许大家都太过于迷恋性能优化了,都认为优化一些配置可以大幅度提升性能,就感觉性能调优像个魔法一样,是个万能的东西。但是其实99.99%的情况下,对于es来说,大部分的参数都保留为默认的就可以了。因为这些参数经常被滥用和错误的调节,继而导致严重的稳定性问题以及性能的急剧下降。 jvm gc jvm使用垃圾回收器来释放掉不用的内存,千万不要去调节默认的垃圾回收行为。es默认用的垃圾回收器是CMS。CMS回收器是并发式的回收器,能够跟应用程序工作线程并发工作,最大程度减少垃圾回收时的服务停顿时间。但是CMS还是会有两个停顿阶段,同时在回收特别大的heap时也会有一些问题。尽管有一些缺点,但是CMS对于要求低延时请求响应的软件来说,还是最佳的垃圾回收器,因此官方的推荐就是使用CMS垃圾回收器。 有一种最新的垃圾回收器叫做G1。G1回收器可以比CMS提供更少的回收停顿时间

资源管理(k8s)Resource(上)

人盡茶涼 提交于 2020-01-17 09:35:09
资源管理(k8s)Resource(上) 文章目录 资源管理(k8s)Resource(上) 初识 核心设计 如何使用 极限测试 内存过小会怎么样 修改limits限制内存/CPU过大会怎么样 把requests 内存/CPU调大会怎么样 把 requests 内存变成10g启动三个副本 初识 硬件是万物的基础,跟大多技术一样kubenetes 也需要 CPU 内存 GPU 持久化存储 gpu用的不多这里不说 这里假设一个场景: 一个集群里面有很多node节点,kubectl 会搜集所有node信息,这些信息就包括 内存,CPU 。现在需要在集群上跑一个占用20G内存的应用,他会调度到一个满足这条件的机器上,所以kubernetes 会先收集node节点信息,安排一个适合的节点,如果这个时候出现一个bug疯狂的占用内存,这个使用就出现了 资源限制 。 核心设计 cpu和内存都可以对两个参数的设置 Requests 容器希望被分配到可以完全保证的一个资源量 。 什么用:他会给调度器一个值,调度器根据值参与到调度器策略的计算。从而给我们找到最适合的节点。 Limits 是容器使用资源的上限。 当资源不足,发生资源竞争,会参考这个值进行计算,从而作出进一步的决策。把哪个应用杀掉。这是资源限制的策略。 如何使用 我们这里针对pod 做资源限制🚫。需求在yaml配置文件增加