cpu参数

JVM探秘:垃圾收集器

前提是你 提交于 2020-01-06 23:15:34
本系列笔记主要基于《深入理解Java虚拟机: JVM 高级特性与最佳实践 第2版》,是这本书的读书笔记。 垃圾收集器 垃圾收集算法是是内存回收的方法论,垃圾收集器是内存回收的具体实现。不同的虚拟机会有不同的垃圾收集器的实现,我们主要讨论的是默认的HotSpot虚拟机,这个虚拟机包含的垃圾收集器如下图; 如上图所示,一共有7种垃圾收集器,如果两个垃圾收集器之间有双箭头连线,则两个垃圾收集器可搭配使用。上面是新生代的收集器,下面是老年代的收集器。每个垃圾收集器都有各自适合的使用场景。 Serial 收集器 Serial 是一个“单线程”的 新生代 收集器,使用 复制 算法,它只会使用一个CPU或者一条收集器线程去完成垃圾收集工作,并且它在垃圾收集时,必须 暂停所有其他的工作线程 ,直到它收集结束。“Stop The World”会在用户不可见的情况下,把用户的工作线程全部停掉,这往往是令人难以接受的。 下图是 Serial/Serial Old 收集器运行示意图: 上图中,新生代是 Serial 收集器采用 复制 算法,老年代是 Serial Old 收集器采用 标记-整理 算法。Serial虽然是一个缺点鲜明的收集器,但它依然是虚拟机在Client模式下的默认收集器,它也有优点,比如简单高效(与其他收集器单线程相比),对于单个CPU来说,Serial由于没有线程交互的开销,效率比较高

MySQL优化总结

点点圈 提交于 2020-01-06 22:45:11
前言 优化有风险,涉足需谨慎!!! 1、优化可能带来的问题? 优化不总是对一个单纯的环境进行,还很可能是一个复杂的已投产的系统。 优化手段本来就有很大的风险,只不过我们可能没有能力意识到和预见到! 任何的技术可以解决一个问题,但必然存在带来一个问题的风险! 对于优化来说解决问题而带来的问题,控制在可接受的范围内才是有成果,保持现状或出现更差的情况都是失败。 2、优化的需求 稳定性和业务的持续性,通常比性能更重要。 优化不可避免涉及到变更,变更就有风险。 优化使性能变好,维持和变差使等概率事件。 切记优化,应该是各部门协同参与的工作,任何单一部门都不能对数据库进行优化。 所有优化工作,是由业务需要驱使的。 3、优化由谁参与 在进行数据库优化时,应该由DBA、业务部门代表、应用程序设计人员、应用程序开发人员、运维等相关人员共同参与。 4、优化思路 在数据库优化上由两个主要方面:即安全与性能。 安全:数据可持续性。 性能:数据的高性能访问。 5、优化的范围有哪些? 存储、主机和操作系统方面: 主机架构稳定性; I/O规划及配置; Swap交换分区; OS内核参数和网络问题; 应用程序方面; 应用程序稳定性; SQL语句性能; 串行访问资源; 性能欠佳会话管理; 这个应用适不适合用MySQL; 数据库优化方面: 内存; 数据库结构(物理&逻辑); 实例配置; 注:不管是在设计系统

nginx入门

笑着哭i 提交于 2020-01-06 20:56:44
nginx特点 占用cpu/内存资源少,相对apache并发处理能力强;nginx采用epoll事件响应模式,apache使用遍历select模式。 nginx安装 yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel 安装 pcre? nginx 要在 rewrite 时要解析正则表达式 ,PCRE 是正则解析库 //下载tar包 wget http://nginx.org/download/nginx-1.13.7.tar.gz tar -xvf nginx-1.13.7.tar.gz 抹去nginx的版本,该步非必需;有时我们打开一个网站的时候会显示404,后面跟一个nginx1.7之类的信息,去掉后外部就看不到nginx的版本了,安全 [root@phoenix nginx-1.13.7]# cat src/core/nginx.h /* * Copyright (C) Igor Sysoev * Copyright (C) Nginx, Inc. */ #ifndef _NGINX_H_INCLUDED_ #define _NGINX_H_INCLUDED_ #define nginx_version 1013007 #define NGINX_VERSION "1.13.7"

自适应学习率调整:AdaDelta

孤者浪人 提交于 2020-01-06 20:40:54
本文转载自: https://www.cnblogs.com/neopenx/p/4768388.html 作者:neopenx 转载请注明该声明。 Reference: ADADELTA: An Adaptive Learning Rate Method 超参数 超参数(Hyper-Parameter)是困扰神经网络训练的问题之一,因为这些参数不可通过常规方法学习获得。 神经网络经典五大超参数: 学习率(Leraning Rate)、权值初始化(Weight Initialization)、网络层数(Layers) 单层神经元数(Units)、正则惩罚项(Regularizer|Normalization) 这五大超参数使得神经网络更像是一门实践课,而不是理论课。 懂神经网络可能只要一小时,但是调神经网络可能要几天。 因此,后来Vapnik做SVM支持向量机的时候,通过巧妙的变换目标函数,避免传统神经网络的大部分超参数, 尤其是以自适应型的支持向量替代人工设置神经元,这使得SVM可以有效免于过拟合之灾。 传统对抗这些超参数的方法是经验规则( Rules of Thumb )。 这几年,随着深度学习的推进,全球神经网络研究者人数剧增,已经有大量研究组着手超参数优化问题: ★深度学习先锋的RBM就利用Pre-Traning自适应调出合适的权值初始化值。

芯片封装类型图鉴[zz]

放肆的年华 提交于 2020-01-05 01:25:40
转自: 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)是指采用双列直插形式封装的集成电路芯片,绝大多数中小规模集成电路

linux中断源码分析 - 概述(一)

梦想的初衷 提交于 2020-01-04 14:35:28
本文为原创,转载请注明: http://www.cnblogs.com/tolimit/ 关于中断和异常   一般在书中都会把中断和异常一起说明,因为它们具有相同的特点,同时也有不同的地方。在CPU里,中断和异常都会放入到一个中断描述符表中,都需要特定的处理程序进行处理,并且它们都是异步事件,内核完全不知道何时会有一个异常或者中断发生。当异常或者中断发生时,进程都会陷入内核,在内核中执行相应的处理。异常一般都是由CPU内部或者进程产生,而中断一般都是由外部设备产生。异常处理过程实际上和系统调用没什么区别(实际上系统调用是通过一个0x80异常陷入内核当中),而中断的处理过程和情况就相对来说比较复杂。一个中断处理分为硬中断和软中断两个部分,在中断处理的过程中系统是禁止调度和抢占的,而异常处理过程中是允许的。一个中断处理程序可以抢占其他的中断处理程序,也可以抢占异常处理程序,相反的,异常处理程序却不能够抢占中断处理程序。 可编程中断控制器(PIC、APIC)   为了方便说明,这里我们将PIC和APIC统称为中断控制器。中断控制器是作为中断(IRQ)和CPU核之间的一个桥梁而存在的,每个CPU内部都有一个自己的中断控制器,中断线并不是直接与CPU核相连,而是与CPU内部或外部的中断控制器相连。而为什么叫做可编程中断控制器,是因为其本身有一定的寄存器

并发Bug之源有三,请睁大眼睛看清它们

会有一股神秘感。 提交于 2020-01-04 05:13:31
写在前面 生活中你一定听说过——能者多劳 作为 Java 程序员,你一定听过——这个功能请求慢,能加一层缓存或优化一下 SQL 吗? 看过中国古代神话故事的也一定听过——天上一天,地上一年 一切设计来源于生活,上一章 学并发编程,透彻理解这三个核心是关键 中有讲过,作为"资本家",你要尽可能的榨取 CPU,内存与 IO 的剩余价值,但三者完成任务的速度相差很大,CPU > 内存 > IO分,CPU 是天,那内存就是地,内存是天,那 IO 就是地,那怎样平衡三者,提升整体速度呢? CPU 增加缓存,还不止一层缓存,平衡内存的慢 CPU 能者多劳,通过分时复用,平衡 IO 的速度差异 优化编译指令 上面的方式貌似解决了木桶短板问题,但同时这种解决方案也伴随着产生新的 可见性,原子性,和有序性 的问题,且看 三大问题 可见性 一个线程对共享变量的修改,另外一个线程能够立刻看到,我们称为可见性 谈到可见性,要先引出 JMM (Java Memory Model) 概念, 即 Java 内存模型,Java 内存模型规定,将所有的变量都存放在 主内存 中,当线程使用变量时,会把主内存里面的变量 复制 到自己的工作空间或者叫作 私有内存 ,线程读写变量时操作的是自己工作内存中的变量。 用 Git 的工作流程理解上面的描述就很简单了, Git 远程仓库就是主内存,Git 本地仓库就是自己的工作内存

浅说CPU并行计算与GPU并行计算

China☆狼群 提交于 2020-01-04 05:05:44
最近在学一门课,叫做“C++与并行计算”。要用到多CPU(进程)并行的原理,实现语言是C++的MPI接口。联想到上学期用到CUDA C/C++来做并行计算,就对这两门语言做一个总结,分享下自己关于并行计算的认识。 1 并行计算的基本原理 并行计算一般有两个维度,一个是指令(Instruction)或程序(Program),另一个是数据(Data)。这样,就可以归纳出各种并行模式(S代表Single,M代表Multiple)。 除了SISD,其他几个都算是并行计算方法。这里重点介绍下SPMD。 SPMD是最简单的一种并行计算模式。SP意味着程序员只需写一份代码,MD意味着这些代码对不同的数据应该分别处理。而并行,则要求数据处理的过程要同时进行。通俗的讲,就是一份代码被复制了多份,然后每份代码单独跑一份数据,从而实现并行。这就引出了一个问题:数据是如何存储的? 1.1 数据的存储 数据的存储可以分为两大类:分布式存储和共享内存。 分布式存储意味着不同的进程/指令处理不同的数据,大家互相不干扰。基于多CPU的MPI并行计算接口用的就是这种思想。 共享内存则要求不同的进程/指令可以同时修改同一块数据。这样,进程之间的通信将变得简单。缺点是容易造成数据读写冲突而需要谨慎对待。基于GPU的CUDA C/C++并行计算就用到了这种方法。 2 MPI:多CPU并行计算

线程初步了解 - <第一篇>

一世执手 提交于 2020-01-02 05:25:28
操作系统通过线程对程序的执行进行管理,当操作系统运行一个程序的时候,首先,操作系统将为这个准备运行的程序分配一个进程,以管理这个程序所需要的各种资源。在这些资源之中,会包含一个称为主线程的线程数据结构,用来管理这个程序的执行状态。   在Windows操作系统下,线程的的数据结构包含以下内容:   1、线程的核心对象:主要包含线程当前的寄存器状态, 当操作系统调度这个线程开始运行的时候,寄存器的状态将被加载到CPU中,重新构建线程的执行环境,当线程被调度出来的时候,最后的寄存器状态被重新保存到这里,已备下一次执行的时候使用。   2、线程环境块(Thread Environment Block,TED):是一块用户模式下的内存,包含线程的异常处理链的头部。另外,线程的局部存储数据(Thread Local Storage Data)也存在这里。   3、用户模式的堆栈:用户程序的局部变量和参数传递所使用的堆栈,默认情况下,Windows将会被分配1M的空间用于用户模式堆栈。   4、内核模式堆栈:用于访问操作系统时使用的堆栈。   在抢先式多任务的环境下,在一个特定的时间,CPU将一个线程调度进CPU中执行,这个线程最多将会运行一个时间片的时间长度,当时间片到期之后,操作系统将这个线程调度出CPU,将另外一个线程调度进CPU,我们通常称这种操作为上下文切换。  

三大WEB服务器对比分析(apache ,lighttpd,nginx)

拈花ヽ惹草 提交于 2020-01-02 01:08:25
一.软件介绍 (apache lighttpd nginx) 1. lighttpd Lighttpd是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。lighttpd是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能。 Lighttpd使用fastcgi方式运行php,它会使用很少的PHP进程响应很大的并发量。 Fastcgi的优点在于: · 从稳定性上看, fastcgi是以独立的进程池运行来cgi,单独一个进程死掉,系统可以很轻易的丢弃,然后重新分配新的进程来运行逻辑. · 从安全性上看, fastcgi和宿主的server完全独立, fastcgi怎么down也不会把server搞垮, · 从性能上看, fastcgi把动态逻辑的处理从server中分离出来, 大负荷的IO处理还是留给宿主server, 这样宿主server可以一心一意作IO,对于一个普通的动态网页来说, 逻辑处理可能只有一小部分, 大量的图片等静态IO处理完全不需要逻辑程序的参与(注1) · 从扩展性上讲, fastcgi是一个中立的技术标准, 完全可以支持任何语言写的处理程序(php,java,python...) 2. apache