学习啦>学习电脑>电脑硬件知识>内存知识>

计算机新手必备内存实用知识

怀健分享

在电脑硬件中,CPU和显卡、内存均是重中之重,因此我们在选择这些核心硬件一定要慎重考虑。下面就让小编带你去看看计算机新手必备内存实用知识,希望能帮助到大家!

内存总是不够?HBase&GeoMesa配置优化了解一下

1、先熟悉一下HBase的内存模型

HBase系统中有两块大的内存管理模块,一块是MemStore ,一块是BlockCache,前置是用于集群写入所属内存,而后者用于缓存热数据,提供查询速度。这两者均可以通过配置文件进行配置。当前集群均配置了0.4和0.4的比例。而考虑到HBase集群是多写少读的情景,为此而引入了MSLAB机制来优化HBase的MemStore 负担。内存的使用率会呈现很优美的锯齿图形。

2、分析内存使用率和业务关系

起初认为是读写业务量已经超过了集群负载能力,但集群业务也不大,写和读的TPS,带宽吞吐量均未达到集群限定的能力,而且CPU利用率大多半都被GC占用,但内存就是持高不下,即使业务了停了一天,内存还是不怎么下降,很明显和业务量无关。那么和compaction有关?经观察的确可以看compact时特别消耗时间。此时感觉看到了希望,调整各个参数,把compact操作提升了10+倍之后,内存还是持高不下 。剩下最根治的办法就是分析内存,看一下内存数据都是什么?有无内存泄露问题。

3、分析dunp文件

节点dump下regionserver的内存,分析发现内存中有50个RpcServer.FifoRWQ.default.read.handler线程,每个线程持有了1.2%左右的总内存,那么所有的线程持有的内存占有量大于为50__1.2%=60%。随着查询次数增多,线程持续的内存还会持续增加,如下图。

分析每一个线程持有的内存数据,全部都是业务信息。

那么继续分析,此业务信息所属对象:org.locationtech.geomesa.filter.factory.FastFilterFactory。而对比同规模的集群,的确是此异常集群开启了GeoMesa特性。找到问题所在,那就看源码分析是唯一出路。

导致集群随着查询次数增多,内存一直持续不下。能否去掉此处缓存策略呢?为什么缓存此查询信息呢,目的就是为了减少同样的查询再次被优化的步骤。那么我们查询添条件key有没有重复使用,此处有个严格规定,就是key中不仅保证使用相同的GeoMesa函数还有使用相同的参数,基于这个原则,业务上查询条件是没有重复的。我们配置了可选参数useFilterCache,默认是开启的,没必要缓存此查询条件,应予以删除。

结论

在配置文件中添加了useFilterCache参数,默认是开启的,根据业务需要选择开始和关闭filterCache特效。经分析我们业务场景没必要缓存此查询条件,应予以关闭。优化后的集群内存使用率情况就恢复了正常状态。

计算机内存和CPU的基础知识

内存的基本单元是一个字节。一台有32兆内存的电脑大概能容纳3200万字节的信息。在内存里的每一个字节通过一个唯一的数字来标识作为它的地址,如图1.4展示的一样。

通常内存都是大块大块地使用而不是单个字节。在PC机结构中,命名了这些内存大块,如图1.2展示的一样。

在内存里的数据都是数字的。字符通过用数字来表示字符的字符编码来储存。其中一个最普遍的字符编码称为ASCII的编码是Unicode。在这两种编码中最主要的区别是ASCII使用一个字节来编码一个字符,但是Unicode每个字符使用两个字节(或一个字)。例如ASCII使用来表示字符大写A;Unicode使用来表示。因为ASCII使用一个字节,所以它仅能表示256种不同的字符。Unicode将ASCII的值扩展成一个字,允许表示更多的字符。这对于表示全世界所有的语言非常重要。

CPU

中央处理器(CPU)是执行指令的物理设备。CPU执行的指令通常非常简单。指令可能要求他们使用的数据存储在一个CPU称为寄存器的特殊储存位置中。CPU可以比访问内存更快地访问寄存器里的数据。然而,在CPU里的寄存器是有限的,所以程序员必须注意只保存现在使用的数据到寄存器中。各类CPU执行的指令组成了该CPU的机器语言。机器语言拥有比高级语言更基本的结构。机器语言指令被编码成未加工的数字,而不是友好的文本格式。为了更有效的运行,CPU必须能很快地解释一个指令的目的.机器语言就是为了这个目的设计的,而不是让人们更容易理解而设计。一个其他语言写的程序必须转换成CPU的本地机器语言,才能在电脑上运行。编译器是一个将用用程序语言写的程序翻译成特殊结构的电脑的机器语言的程序。通常,每一种类型的CPU都有它自己唯一的机器语言。这是为什么为Mac写的程序不能在IBM类型PC机运行的一个原因。电脑通过使用时钟来同步指令的执行。时钟脉冲在一个固定的频率(称为时钟频率)。当你买了一台1.5GHz的电脑,1.5GHz就是时钟频率。时钟并不记录分和秒。它以不变的速率简单跳动。电子计算机通过使用这个跳动来正确执行它们的操作,就像节拍器的跳动如何来帮助你以正确的节奏播放音乐。一个指令需要跳动的次数(或就像他们经常说的执行周期)依赖CPU的产生和模仿。周期的次数取决于它之前的指令和其他因素。

CPU 80x86系列

IBM型号的PC机包含了一个来自Intel 80x86家族(或它的克隆)的CPU。在这个家族的所有CPU都有一些普遍的特征,包括有一种基本的机器语言。无论如何,最近的成员极大地加强了这个特征。

8088,8086: 这些CPU从编程的观点来看是完全相同的。它们是用在早期PC机上的CPU。它们提供一些16位的寄存器:AX,BX,CX,DX,SI,DI,BP,SP,CS,DS,SS,ES,IP,FLAGS。它们仅仅支持1M字节的内存,而且只能工作在实模式下。在这种模式下,一个程序可以访问任何内存地址,甚至其它程序的内存!这会使排除故障和保证安全变得非常困难!而且,程序的内存需要分成段。每段不能大

于64K。

80286: 这种CPU使用在AT系列的PC机中。它在8088/86的基本机器语言中加入了一些新的指令。然而,它主要的新的特征是16位保护模式。在这种模式下,它可以访问16M字节的内存和通过阻止访问其它程序的内存来保护程序。可是,程序依然是分成不能大于64K的段。

80386: 这种CPU极大地增强了80286的性能。首先,它扩展了许多寄存器来容纳32位数据(EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESP,EIP)而且增加了两个新的16位寄存器(FS,GS)。它同样增加了一个新的32位保护模式。在这种模式下,它可以访问4G字节。程序同样分成段,但是现在每段大小同样可以到4G。

80486/Pentium/Pentium Pro: 这些80x86家族的成员增加了不多的新的特征。它们主要是提高了指令执行的速度。Pentium MMX: 这些处理器在Pentium基础上增加了MMX指令(多媒体扩展)。这些指令可以提高普通的图像操作的速率。

Pentium II: 它是拥有MMX 指令的Pentium处理器。(Pentium III 本质上就是一个更快的Pentium II。)

8086 16位寄存器

最初的8086CPU提供4个16位通用寄存器:AX,BX,CX 和DX。这些寄存器都可以分解成两个8位寄存器。例如:AX寄存器可以分解成AH和AL寄存器,像图1.5展示的一样。AH寄存器包含AX的上(或高)8位,而AL包含AX的低8位。通常AH和AL都当做独立的一个字节的寄存器来用;但是,清楚它们不能独立于AX是非常重要的。改变AX的值将会改变AH和AL的值反之亦然。通用寄存器多数使用在数据移动和算术指令中。

这有两个16位指针寄存器:SI 和DI 。通常它们都是当作指针来使用,但是在许多情况下也可以像通用寄存器一样使用。但是,它们不可以分解成8位寄存器。16位BP和SP 寄存器用来指向机器语言堆栈里的数据,被各自称为基址寄存器和堆栈指针寄存器。这些将在以后讨论。

16位CS,DS,SS 和ES 寄存器是段寄存器。它们指出程序不同部分所使用的内存。CS代表代码段,DS 代表数据段,SS 代表堆栈段和ES代表附加段。ES当作一个暂时段寄存器来使用。这些寄存器的细节描述在后面的文章中。

指令指针寄存器(IP) 与CS寄存器一起使用来跟踪CPU下一条执行指令的地址。通常,当一条指令执行时,IP提前指向内存里的下一条指令。

FLAGS寄存器储存了前面指令执行结果的重要信息。这些结果在寄存器里以单个的位储存。例如:如果前面指令执行结果是0,Z位为1,反之为0。并不是所有指令都修改FLAGS里的位,查看附录里的表看单个指令是如何影响FLAGS寄存器的。

80386 32位寄存器

80386及以后的处理器扩展了寄存器。例如:16位AX寄存器扩展成了32位。为了向后兼容,AX依然表示16位寄存器而EAX 用来表示扩展的32位寄存器。AX是EAX 的低16位就像AL是AX(EAX)的低8位一样。但是没有直接访问EAX 高16位的方法。其它的扩展寄存器是EBX,ECX,EDX,ESI 和EDI 。

许多其它类型的寄存器同样也扩展了。BP变成了EBP;SP 变成了ESP;FLAGS变成了EFLAGSEFLAGS 而IP变成了EIP。但是,不同于指针寄存器和通用寄存器,在32位保护模式下(下面将讨论的)只有这此寄存器的扩展形式被使用。

又到了学点内存知识的季节

什么是DDR?

DDR,全称:DDR SDRAM ,Double Data Rate Synchronous Dynamic Random Access Memary,即,双数据速率同步动态随机存取记忆体,也就是我们常用的内存,它从SDRAM的基础上发展起来,以后依次出现了DDR SDRAM、DDR2 SDRAM、DDR3 SDRAM、DDR4 SDRAM。它们的能效不断提升。文章结尾附一张纯良心内存能效参数表。

DDR间有什么区别?

1、SDRAM

SDRAM内部组成如,可见其组成可以分为几个部分,存储阵列、IO门控单元、行列地址解码器、行列地址锁存器、逻辑控制单元(包含模式寄存器)、数据输入输出寄存器等。

存储矩阵内部结构,以8位内存单元为例,每个内存单元的数据输出是并联在一起,通过行列地址线选中一个存储单元,

存储容量大小和数据位宽度、行地址、列地址、块数量等的关系:

单片容量(bit)=单片位宽×行数×列数×块数量

2、DDR SDRAM

DDR的内部结构与SDRAM相比,数据读写部分改进比较大。其一,使用了两位预读取的技术;其二,增加了DLL(delay lock loop演示锁定回路);其三,增加了数据掩码控制和数据总线反转控制;此外,时钟信号和数据选通信号改为差分信号。

3、DDR2 SDRAM

DDR2 SDRAM整体布局变化不大,在输入输出数据总线接口上变化比较多。

DDR2在DDR的基础上增加了ODT(on-die termination片上终结,即通过内部逻辑选择合适的终端电阻进行匹配)功能,预读取提高到了4位,即每传输4个字节/字,只有第一个字节/字有潜伏期。

4、DDR3 SDRAM

DDR3 SDRAM在输入输出数据总线接口上继续提升性能,在存储结构上改进工艺,堆叠更多的存储块,提高单颗芯片的容量。

在功能上的改进有,增加了读写平衡功能。

5、DDR4 SDRAM

DDR4 SDRAM在输入输出数据总线接口上继续改善性能,在存储结构上继续改进工艺,不仅堆叠更多的存储块,而且使用硅片穿孔工艺把把堆叠成的存储块进行并列放置,集中到一颗芯片中,提高单颗芯片的容量。

计算机新手必备内存实用知识相关文章:

计算机内存基础实用知识科普

电脑内存基础必备知识

计算机内存基础硬核知识

生活常用电脑入门必备知识大全

电脑技术大全

电脑硬件内存实用知识

电脑内存基础知识大全

生活常用电脑入门必备知识大全

怎样知道自己笔记本电脑适合安装的内存条

电脑内存硬件小知识

    上一篇:计算机新手必备内存知识技巧

    下一篇:计算机小白内存基础知识扫盲

    832806