精华内容
下载资源
问答
  • 有很多兄弟经常问,什么牌子的内存条好啊?我PS、剪辑软件需要多大内存条?内存怎么超频啊?...只要计算机在运行中,操作系统就会需要运算的数据从内存调到CPU中进行运算,运算完成后CPU...

    有很多兄弟经常问,什么牌子的内存条好啊?我用PS、剪辑软件需要多大内存条?内存条怎么超频啊?

    所以,今天我们来详细讲解一下内存条。

    一、什么是内存条?

    内存条又叫随机存取存储器(英文缩写RAM),是与处理器直接进行随时读写的内部存储器。用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,操作系统就会把需要运算的数据从内存调到CPU中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行。

    686a936db37bb4ad7bfb97642fbfa340.png

    内存条是由内存芯片、电路板、金手指等部分组成。

    目前内存已经更新到第四代——DDR4,相比前几代,新一代频率更高,读写速度更快。DDR4最低频率为2133起步。

    内存条运行速度极快,比固态硬盘NVME PCle3.0速度快15倍左右,是SATA3.0 固态速度的80倍左右,是机械硬盘的400倍左右。

    5553ebaa828be503f3e9285972d771e6.png

    图为3000频率C16内存条,主板为Mortar迫击炮Max,内存读取速度达42GB/S,写入速度达24GB/S;而硬盘速度:NVME PCle3.0高性能版SSD速度可达3GB/S左右,普通NVME PCle3.0速度可达1.5GB/S;SATA 3.0 SSD速度在0.5GB/S以下;机械硬盘速度在120MB/S上下。

    所以,内存条高速读写提供处理器与系统随时进行运算交换的桥梁。

    内存非常重要的一个构成——内存颗粒(芯片),目前常见的内存颗粒美韩厂商有:三星、美光、海力士;台厂商:南亚、华邦和力晶;国内紫光。市面上90%以上的内存颗粒都来自美韩巨头。

    内存颗粒对内存超频性能和稳定性能起到关键作用。同等档次,三星超频能力〉海力士〉美光。

    同一厂商,旗下不同内存,内存颗粒也不同。很多厂商存在内存颗粒混用的问题,买内存像抽奖一样刺激!就像手机厂商存在屏幕混用的问题,像苹果、华为、小米等手机厂商都存在这种现象。

    电脑内存和手机内存之间的关系:电脑内存其实相对于手机中的运行内存,一般手机都是4G、6G、8G、12G运行内存;我们所说的手机内存相当于电脑硬盘,用来存储资料图片视频等文件信息,一般手机内存是64G、128G、256G、512G内存。所以,电脑内存跟手机内存不是一个概念。

    二、内存条买多少G容量合适对于绝大多数用户,16G内存刚刚好,价格不贵,常见的即可,渠道正规,终身保固,无论是游戏办公还是平面剪辑都够用。8G内存对于文案办公、小型网游、视频观看够用。

    如果是AE视频特效专业创作,3D特效创作等专业从业者,推荐32G内存及以上。

    推荐8Gx2组双通道内存,比单通道读写运行速度要快的多。

    三、什么品牌的内存条好

    市面上内存条品牌非常多,五花八门。常见内存海外厂商:金士顿、威刚、影驰、芝奇、三星、海盗船、英睿达、十铨、科赋国内厂商:光威(阿斯加特)、金泰克等。其实可以把这些厂商比作贴牌代工厂商更合适,因为内存颗粒都来自三星、美光、海力士这三家。以上品牌内存都还算靠谱,这些海外厂商大多都在国内或台内代工生产。每个品牌均有高中低端之分,而且相同品牌所用颗粒也不同,不能说哪个品牌的内存就一定好,还得看具体的内存型号和内存颗粒。(而且相同品牌相同颗粒也存在体质问题,有的人轻松超到3600频率,而有的人连3200频率都上不去)玩游戏的都能理解,同样的宝箱还存在欧皇和非酋。推荐普通内存,其实比较难推荐,而且争议也比较大,确实是内存体质问题太突出,同款内存有的轻松超频,有的死活超不上去,像抽奖一样。硬要推荐一款,那还是推荐一款一线老牌厂商,经过市场检验相对靠谱。如威刚XPG金色Z1,3200频率,价格合适,金色讨喜,终身保固,XPM2.0自动超频,带散热马甲,体质还行。(威刚XPG不是最好的选择,但相对比较省心)

    119e3ea41a4ccd41d7773172de04d51d.png

    喜欢RGB性价比推荐十铨Delta,时序C16,终身保固,XPM2.0自动超频,价格不贵,支持三大厂主板RGB同步。

    ec54bf443798018f4daae1dc1ac5de19.png

    高端颜值款RGB推荐芝奇皇家戟,3600频率,普通时序C18,价格比其他贵一倍,别人有的它都有,最重要的是颜值超高,炫光闪闪,砖石闪耀!看上去就高端,一看就是有钱人78450b7fa2b11cebee882a067f7ebe5a.png

    0f90cd1304ab6905729f0080b8ae5412.png

    注意:金士顿、十铨、科赋等品牌假货较多,小心被骗,建议正规渠道入手。

    四、内存条超频频率讲解

    内存频率越高,运行速度越快。当然,高频内存还要看主板是否支持,Intel Z系主板支持更高内存频率,AMD普通B系、高端X系主板均支持高内存频率。一般AMD主板推荐入3200频率内存,Intel推荐2666-3000频率内存。

    fff2fccdd2884f79074d6d5715895cbf.png

    渣渣像素拍摄,请求大家见谅

    目前很多内存都支持XMP 2.0自动超频,进入主板BIOS(开机连续按Del键)直接点开开关即可。(XMP自动超频是官方支持并提供的超频,不影响内存终身保修)

    注意:比如购买3000频率内存,一般系统维持在2133频率运行,需要进行手动设置超频至3000频率,用XMP自动超频,难道它不香吗?

    680b77ce84be95be121b1547cc787003.png

    渣渣像素拍摄,请求大家见谅

    还有不少人喜欢手动超频。进入主板BOIS,按F7 高级设置,在OC超频中选择内存手动超频选项,自定义选择自己想要的内存频率。不要一下设置太高,(我们一般手动设置3200频率没问题),一定注意电压稳定,一般电压低于1.4V没有问题,电压高于1.5V容易翻车。具体还得看主板供电稳定性和内存颗粒体质。

    注意:手动超频有一定风险,小白不要轻易尝试。如主板、CPU、内存烧坏了,厂商可能不会保修,手动超频得自己承担后果。所以不推荐大家手动超频,用XMP自动超频它不香吗?

    当然,内存条超频还跟体质有关,这里就讲到一个内存时序。内存时序是指同步动态随机存取存储器性能的四个参数:CL、TRCD、TRP和TRAS,单位为时钟周期。这些参数指定了影响随机存取存储器速度的潜伏时间(延迟时间)。较低的数字通常意味着更快的性能。决定系统性能的最终元素是实际的延迟时间,通常以纳秒为单位。

    下面是内存时序公式:

    (时序CL x 2000)÷频率(MHz)= 内存延迟(ns)

    从这公式可以看出,内存时序越小,内存延迟越低,超频能力越强;而一般频率越高,时序也会跟着增高。我们通常买的内存时序在C16、C18、C19等,体质好的C14时序延迟更小,相同频率可以获得更好的超频空间,当然价格也会更贵!

    一般用户普通时序即可,对超频有高要求的用户可以挑选更低的时序体质。

    五、内存安装

    dce23bff3d8c6c22d36dc7f564831c83.png

    内存安装非常简单,方向正确,内存条直接按压安装,听到清脆 “咔” 的一声就安装好了,不需要用多大力。(切记不可大力出奇迹,压不进说明正反方向错了)

    有4内存插槽的主板,一般组双通道推荐安装在2/4插槽,当然1/3也可以,容易挡散热器。

    1c28d48a7a50eb083d6bbc00fe95e8e5.png

    安装完成后,进入电脑任务管理器(Ctrl+Alt+Del)查看内存容量、频率和插槽位置。

    六、内存条选购总结

    1. 绝大多数用户,16G(8x2)足够用,常见的即可,建议入手时选择正规渠道,带终身保修,带散热马甲,带XMP自动超频,价格在500上下。AMD一般建议入手内存3200频率,Intel一般建议入手3000频率。价格和性能都比较折中。

    2. 优先双通道内存,相比单条高频内存,它可以获取更快的读写速度。

    3. 不用太纠结内存时序,普通用户买C16 OK,一般超到3200频率没问题,需要更高频率用户可以挑选更好的时序。

    4. 需要查看主板是否支持高频内存,Intel除了Z系高端主板支持3000频率以上,其他系列主板支持2666频率(最新十代支持到2933频率)。AMD主板基本都支持3000频率以上,这点AMD YES!AMD相比Intel,对内存频率要求更高。

    5. 买高频内存时,系统默认频率运行一般为2133或2400,记得要手动进行超频设置。推荐使用内存厂商的XMP自动超频,简单省事,而且不影响终身质保。

    说了这么多,还是不太理解内存怎么办?

    换一种思路,把内存条简单理解为一条公路。系统应用理解为商品,CPU理解为商家。我们购入的商品需要商家发货,经过公路为载体,再到我们手里。

    内存的容量相当于公路车道的条数。容量越大,车道越宽敞,可行走的车更多,系统应用可以更多运行。当内存容量小,车道也就少,当车子多了就容易堵车,系统就会卡住崩溃。

    内存双通道相当于公路的双向通道,双通道内存肯定走的更快,走的车更多。所以,优先组双通道内存!

    内存时序相当于公路施工用的材料。像高速公路用的是大理石沥青;而村道用的是泥土,大车一压就凹陷。所以高速公路质量更好,可以提供汽车更高的车速。

    内存的频率就相当于公路的等级。频率越高,公路越快。打个比方,2133频率相当于村道,2400频率相当于省道,2666频率相当于国道,3000频率及以上就相当于高速公路。所以,高频内存可以运行的更快!车速更快!

    当然,高频内存还需要主板和CPU的支持,买个4000频率的内存条,但主板不支持也是白瞎,就比如骑着摩托车上不了高速公路!

    那最后就到这里了,感谢兄弟们喜欢!不够详细的,今后我们在一点一点的讲解。

    展开全文
  • 我们使用的计算机的全称叫电子计算机,前面有电子两个字,这说的是整个计算机中的核心元器件基本上都是... 如果把内存和CPU的速度比作汽车和飞机的话,这个大哥毫秒级别的延迟几乎就是牛车级别的。第二,容易坏。 经...

    我们使用的计算机的全称叫电子计算机,前面有电子两个字,这说的是整个计算机中的核心元器件基本上都是电子单元组成的。但机械硬盘却是一个特殊的例外,它更多是用机械技术做出来的一个产品。当把带有机械技术基因的磁盘搭到计算机,尤其是再应用到服务器领域的时候,暴露出了机械技术的两个严重问题:

    • 第一,速度慢。 如果把内存和CPU的速度比作汽车和飞机的话,这个大哥毫秒级别的延迟几乎就是牛车级别的。
    • 第二,容易坏。 经常听说谁谁的磁盘坏了,很少有听说过谁的内存条,CPU坏了。笔者就有在读研期间实验室里正在拷贝资料,突然一个断电直接费了一块硬盘的经历。

    要想保证服务器运转的稳定和高速,就必须解决硬盘从娘胎里带出来的这两个缺陷。

    多硬盘连接

    问题简单明了,我们要解决速度慢、容易坏两个问题。很自然,单兵作战不行,那我们就想到往上怼一个班,多块硬盘一起上。但问题是,假如给你N块硬盘,让你来出一个技术方案,你会怎么设计呢?

    第一个方案就是,把一个文件分成N片,每一片都散列在不同的硬盘上。这样当文件进行读取的时候,就可以N块硬盘一起来工作,从而达到读取速度提高到N倍的效果,这就是RAID 0。

    1c943d6eb0f336e7018147907dd9a155.png

    图1 Raid 0方案

    不过这个方案没有解决容易坏的问题,任何一块硬盘坏了都会导致存储系统故障。

    第二个方案就是,仍然把文件分片,但是所有的分片都存在一块硬盘上,其它的硬盘只存拷贝。 这既提高了硬盘的访问速度,也解决了坏的问题。任意一块硬盘坏了,存储系统都可以正常使用,只不过速度会打一点折扣。

    b129af8ba732b65bc52a90aae1b6a992.png

    图2 Raid 1方案

    不过这个方案又带来了新的问题,那就是实现成本有点高了。假如我们用256G硬盘想实现512G的存储容量的话,最少得需要4块硬盘才能实现。

    有没有折中一点的方案呢?有,而且很多。我们这里只说下最常见的raid5 RAID 5同样要对文件进行分片,但是不对存储的数据进行备份,而是会再单独存一个校验数据片。 假如文件分为A1 A2 A3,然后需要再存一个校验片到别的磁盘上。这样不管A1,A2还是A3那一片丢失了,都可以根据另外两片和校验片合成出来。 既保证了数据的安全性,又只用了一块磁盘做冗余存储。

    7aaaea33b061c82e66535591559a8ad2.png

    图3 Raid5 方案

    假如我们有8块256GB的硬盘,那么RAID5方案下的磁盘阵列从用户角度来看可用的存储空间是7*256GB,只“浪费”了一块盘的空间,所以目前RAID5应用比较广泛~~

    Raid卡缓存

    硬盘延迟是毫秒级别的,即使是多快硬盘并行,也只能提升数倍而已,不能够达到量级的提升。和CPU内存的纳秒级别工作频率比起来,还是太慢了。 在计算机界,没有缓存解决不了的速度问题,如果有,那就再加一层。现代磁盘本身也基本都带了缓存,另外在一些比较新的raid卡里,硬件开发者们又搞出来了一层“内存”,并且还自己附带一块电池,这就是RAID卡缓存。 我们看下几款主流RAID卡的配置:

    • PERC S120 入门软件阵列卡,主板集成无缓存 支持RAID0 1
    • PERC H330 入门硬件RAID卡,无板载缓存, 支持RAID 0 1 5 10 50
    • PERC H730 主流硬件RAID卡带有1G缓存和电池 支持RAID 0 1 5 6 10 50 60
    • PERC H730P 高性能硬件RAID卡带有2G缓存和电池 支持RAID 0 1 5 6 10 50 60
    • PERC H830 同H730P,没有内置接口,使用外置接口连接附加存储磁盘柜用

    拿目前服务器端出镜率比较高的H730和H730P来看,他们分别带了1G和2G的缓存卡,并且自带电池。 电池的作用就是当发现主机意外断电的时候,能够快速把缓存中的数据写回到磁盘中去。对于写入,一般操作系统写到这个RAID卡里就完事了,所以速度快。对于读取也是,只要缓存里有,就不会透传到磁盘的机械轴上。

    另外想再补充说一点的就是文件相关函数里设置DIRECT I/O仅仅只能绕开操作系统本身的Page Cache,而RAID卡里的缓存,对于Linux来说,可以说算是一个黑盒。换句话说,就是操作系统并不清楚RAID卡是从缓存里吐的数据,还是真正从硬盘里读的。

    动手查看你的RAID配置

    了解了raid基本原理以后,我们可以实际动手查看一下机器上的raid情况。这里拿我手头的一台服务器举例。 通过cat /proc/scsi/scsi,我们可以查看到raid卡的型号

    Host: scsi10 Channel: 02 Id: 01 Lun: 00  Vendor: DELL     Model: PERC H730 Mini   Rev: 4.27  Type:   Direct-Access                    ANSI  SCSI revision: 05

    可以看到我的这台服务器raid卡使用的是PERC H730, 这块RAID卡带有1G缓存和电池。

    再看我们的硬盘阵列

    # /opt/MegaRAID/MegaCli/MegaCli64  -LDInfo -Lall -aALLVirtual Drive: 1 (Target Id: 1)Name                :RAID Level          : Primary-5, Secondary-0, RAID Level Qualifier-3Size                : 1.633 TBSector Size         : 512Is VD emulated      : NoParity Size         : 278.875 GBState               : OptimalStrip Size          : 128 KBNumber Of Drives    : 7Span Depth          : 1

    RAID Level列标明的就是当前RAID组的RAIN级别。对照下面

    • RAID 1: Primary-1, Secondary-0, RAID Level Qualifier-0 RAID 1
    • RAID 0: Primary-0, Secondary-0, RAID Level Qualifier-0 RAID 0
    • RAID 5: Primary-5, Secondary-0, RAID Level Qualifier-3 RAID 5
    • RAID 10: Primary-1, Secondary-3, RAID Level Qualifier-0 RAID 10

    可以看到,本机RAID Level是RAID5。

    另外Strip Size叫做条带大小,我机器上的配置是128KB。假如有一个512KB的文件,它就会被分成4个条带,每个128KB。这些条带可能会分散在不同的磁盘上,如果一次性读取的话,多个硬盘就可以一起转动机械轴,读取速度就会提高到原来的数倍。不过要说明的是,如果文件小于这个条带大小,小于128K,那么RAID下的多块硬盘对于该文件的读取耗时也不会有帮助。

    继续查看组成RAID的所有的磁盘的状况

    #/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL......Drive's position: DiskGroup: 1, Span: 0, Arm: 0Device Id: 1...Raw Size: 279.396 GB [0x22ecb25c Sectors]Non Coerced Size: 278.896 GB [0x22dcb25c Sectors]Coerced Size: 278.875 GB [0x22dc0000 Sectors]Sector Size:  512Logical Sector Size:  512Physical Sector Size:  512Inquiry Data: SEAGATE ST300MM0008     TT31S42310JR.........Drive's position: DiskGroup: 1, Span: 0, Arm: 6Device Id: 7Raw Size: 279.396 GB [0x22ecb25c Sectors]Non Coerced Size: 278.896 GB [0x22dcb25c Sectors]Coerced Size: 278.875 GB [0x22dc0000 Sectors]

    看到属于DiskGroup 1的总共有7块硬盘,每块的大小都是278GB左右。6块盘的总容量大小就是1.6T左右,确实是只“浪费”了一块硬盘的容量来保障数据的安全性!

    另外Inquiry Data也显示了硬盘的制造商,已经型号。这些磁盘都是希捷的300G的机械硬盘,经Google查询其转速为1万转每分钟。

    本文小结

    机械技术和电子技术比较起来,稳定性要差很多。所以机械背景出身的硬盘既慢又容易坏。为了解决这个问题,RAID技术应运而生。通过一定的冗余原始存储或者校验数据提供安全性的保障,通过增加带电子基因的缓存,合理调度多块磁盘的机械轴,提高了磁盘IO的读写速度。在Linux下可以通过MegaCli工具来查看你的RAID组情况,强烈你建议实际动手查看一下!

    欢迎关注微信公众号开发内功修炼!

    展开全文
  • 我们使用的计算机的全称叫电子计算机,前面有电子两个字,这说的是整个计算机中的核心元器件基本上都是电子... 如果把内存和CPU的速度比作汽车和飞机的话,这个大哥毫秒级别的延迟几乎就是牛车级别的。 第二,容易...

    我们使用的计算机的全称叫电子计算机,前面有电子两个字,这说的是整个计算机中的核心元器件基本上都是电子单元组成的。但机械硬盘却是一个特殊的例外,它更多是用机械技术做出来的一个产品。当把带有机械技术基因的磁盘搭到计算机,尤其是再应用到服务器领域的时候,暴露出了机械技术的两个严重问题:

    • 第一,速度慢。 如果把内存和CPU的速度比作汽车和飞机的话,这个大哥毫秒级别的延迟几乎就是牛车级别的。
    • 第二,容易坏。 经常听说谁谁的磁盘坏了,很少有听说过谁的内存条,CPU坏了。笔者就有在读研期间实验室里正在拷贝资料,突然一个断电直接费了一块硬盘的经历。

    要想保证服务器运转的稳定和高速,就必须解决硬盘从娘胎里带出来的这两个缺陷。

    多硬盘连接

    问题简单明了,我们要解决速度慢、容易坏两个问题。很自然,单兵作战不行,那我们就想到往上怼一个班,多块硬盘一起上。但问题是,假如给你N块硬盘,让你来出一个技术方案,你会怎么设计呢?

    第一个方案就是,把一个文件分成N片,每一片都散列在不同的硬盘上。这样当文件进行读取的时候,就可以N块硬盘一起来工作,从而达到读取速度提高到N倍的效果,这就是RAID 0。

    图1 Raid 0方案

    不过这个方案没有解决容易坏的问题,任何一块硬盘坏了都会导致存储系统故障。

    第二个方案就是,仍然把文件分片,但是所有的分片都存在一块硬盘上,其它的硬盘只存拷贝。 这既提高了硬盘的访问速度,也解决了坏的问题。任意一块硬盘坏了,存储系统都可以正常使用,只不过速度会打一点折扣。

    图2 Raid 1方案

    不过这个方案又带来了新的问题,那就是实现成本有点高了。假如我们用256G硬盘想实现512G的存储容量的话,最少得需要4块硬盘才能实现。

    有没有折中一点的方案呢?有,而且很多。我们这里只说下最常见的raid5 RAID 5同样要对文件进行分片,但是不对存储的数据进行备份,而是会再单独存一个校验数据片。 假如文件分为A1 A2 A3,然后需要再存一个校验片到别的磁盘上。这样不管A1,A2还是A3那一片丢失了,都可以根据另外两片和校验片合成出来。 既保证了数据的安全性,又只用了一块磁盘做冗余存储。

    图3 Raid5 方案

    假如我们有8块256GB的硬盘,那么RAID5方案下的磁盘阵列从用户角度来看可用的存储空间是7*256GB,只“浪费”了一块盘的空间,所以目前RAID5应用比较广泛~~

    Raid卡缓存

    硬盘延迟是毫秒级别的,即使是多快硬盘并行,也只能提升数倍而已,不能够达到量级的提升。和CPU内存的纳秒级别工作频率比起来,还是太慢了。 在计算机界,没有缓存解决不了的速度问题,如果有,那就再加一层。现代磁盘本身也基本都带了缓存,另外在一些比较新的raid卡里,硬件开发者们又搞出来了一层“内存”,并且还自己附带一块电池,这就是RAID卡缓存。 我们看下几款主流RAID卡的配置:

    • PERC S120 入门软件阵列卡,主板集成无缓存 支持RAID0 1
    • PERC H330 入门硬件RAID卡,无板载缓存, 支持RAID 0 1 5 10 50
    • PERC H730 主流硬件RAID卡带有1G缓存和电池 支持RAID 0 1 5 6 10 50 60
    • PERC H730P 高性能硬件RAID卡带有2G缓存和电池 支持RAID 0 1 5 6 10 50 60
    • PERC H830 同H730P,没有内置接口,使用外置接口连接附加存储磁盘柜用

    拿目前服务器端出镜率比较高的H730和H730P来看,他们分别带了1G和2G的缓存卡,并且自带电池。 电池的作用就是当发现主机意外断电的时候,能够快速把缓存中的数据写回到磁盘中去。对于写入,一般操作系统写到这个RAID卡里就完事了,所以速度快。对于读取也是,只要缓存里有,就不会透传到磁盘的机械轴上。

    另外想再补充说一点的就是文件相关函数里设置DIRECT I/O仅仅只能绕开操作系统本身的Page Cache,而RAID卡里的缓存,对于Linux来说,可以说算是一个黑盒。换句话说,就是操作系统并不清楚RAID卡是从缓存里吐的数据,还是真正从硬盘里读的。

    动手查看你的RAID配置

    了解了raid基本原理以后,我们可以实际动手查看一下机器上的raid情况。这里拿我手头的一台服务器举例。 通过cat /proc/scsi/scsi,我们可以查看到raid卡的型号

    Host: scsi10 Channel: 02 Id: 01 Lun: 00
      Vendor: DELL     Model: PERC H730 Mini   Rev: 4.27
      Type:   Direct-Access                    ANSI  SCSI revision: 05

    可以看到我的这台服务器raid卡使用的是PERC H730, 这块RAID卡带有1G缓存和电池。

    再看我们的硬盘阵列

    # /opt/MegaRAID/MegaCli/MegaCli64  -LDInfo -Lall -aALL
    
    Virtual Drive: 1 (Target Id: 1)
    Name                :
    RAID Level          : Primary-5, Secondary-0, RAID Level Qualifier-3
    Size                : 1.633 TB
    Sector Size         : 512
    Is VD emulated      : No
    Parity Size         : 278.875 GB
    State               : Optimal
    Strip Size          : 128 KB
    Number Of Drives    : 7
    Span Depth          : 1

    RAID Level列标明的就是当前RAID组的RAIN级别。对照下面

    • RAID 1: Primary-1, Secondary-0, RAID Level Qualifier-0 RAID 1
    • RAID 0: Primary-0, Secondary-0, RAID Level Qualifier-0 RAID 0
    • RAID 5: Primary-5, Secondary-0, RAID Level Qualifier-3 RAID 5
    • RAID 10: Primary-1, Secondary-3, RAID Level Qualifier-0 RAID 10

    可以看到,本机RAID Level是RAID5。

    另外Strip Size叫做条带大小,我机器上的配置是128KB。假如有一个512KB的文件,它就会被分成4个条带,每个128KB。这些条带可能会分散在不同的磁盘上,如果一次性读取的话,多个硬盘就可以一起转动机械轴,读取速度就会提高到原来的数倍。不过要说明的是,如果文件小于这个条带大小,小于128K,那么RAID下的多块硬盘对于该文件的读取耗时也不会有帮助。

    继续查看组成RAID的所有的磁盘的状况

    #/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL
    
    ......
    Drive's position: DiskGroup: 1, Span: 0, Arm: 0
    Device Id: 1
    ...
    Raw Size: 279.396 GB [0x22ecb25c Sectors]
    Non Coerced Size: 278.896 GB [0x22dcb25c Sectors]
    Coerced Size: 278.875 GB [0x22dc0000 Sectors]
    Sector Size:  512
    Logical Sector Size:  512
    Physical Sector Size:  512
    Inquiry Data: SEAGATE ST300MM0008     TT31S42310JR
    ...
    ...
    ...
    Drive's position: DiskGroup: 1, Span: 0, Arm: 6
    Device Id: 7
    Raw Size: 279.396 GB [0x22ecb25c Sectors]
    Non Coerced Size: 278.896 GB [0x22dcb25c Sectors]
    Coerced Size: 278.875 GB [0x22dc0000 Sectors]

    看到属于DiskGroup 1的总共有7块硬盘,每块的大小都是278GB左右。6块盘的总容量大小就是1.6T左右,确实是只“浪费”了一块硬盘的容量来保障数据的安全性!

    另外Inquiry Data也显示了硬盘的制造商,已经型号。这些磁盘都是希捷的300G的机械硬盘,经Google查询其转速为1万转每分钟。

    本文小节

    机械技术和电子技术比较起来,稳定性要差很多。所以机械背景出身的硬盘既慢又容易坏。为了解决这个问题,RAID技术应运而生。通过一定的冗余原始存储或者校验数据提供安全性的保障,通过增加带电子基因的缓存,合理调度多快磁盘的机械轴,提高了磁盘IO的读写速度。在Linux下可以通过MegaCli工具来查看你的RAID组情况,强烈你建议实际动手查看一下!

     

    欢迎关注微信公众号:开发内功修炼

    展开全文
  • 中,那么操作系统将暂时停止您的进程,将其他内存转存到硬盘中,从硬盘上加载被请求的内存,然后再重新启动您的进程。这样,每个进程都获得了自己可以使用的地址空间,可以访问比您物理上安装的内存更多的内存。 ...
  • 我们使用的计算机的全称叫电子计算机,前面有电子两个字,这说的是整个计算机中的核心元器件基本上都是... 如果把内存和CPU的速度比作汽车和飞机的话,这个大哥毫秒级别的延迟几乎就是牛车级别的。第二,容易坏。 经...

    e67bdfdd540cf681323b330d0919b81b.png

    我们使用的计算机的全称叫电子计算机,前面有电子两个字,这说的是整个计算机中的核心元器件基本上都是电子单元组成的。但机械硬盘却是一个特殊的例外,它更多是用机械技术做出来的一个产品。当把带有机械技术基因的磁盘搭到计算机,尤其是再应用到服务器领域的时候,暴露出了机械技术的两个严重问题:

    • 第一,速度慢。 如果把内存和CPU的速度比作汽车和飞机的话,这个大哥毫秒级别的延迟几乎就是牛车级别的。
    • 第二,容易坏。 经常听说谁谁的磁盘坏了,很少有听说过谁的内存条,CPU坏了。笔者就有在读研期间实验室里正在拷贝资料,突然一个断电直接费了一块硬盘的经历。

    要想保证服务器运转的稳定和高速,就必须解决硬盘从娘胎里带出来的这两个缺陷。

    多硬盘连接

    问题简单明了,我们要解决速度慢、容易坏两个问题。很自然,单兵作战不行,那我们就想到往上怼一个班,多块硬盘一起上。但问题是,假如给你N块硬盘,让你来出一个技术方案,你会怎么设计呢?

    第一个方案就是,把一个文件分成N片,每一片都散列在不同的硬盘上。这样当文件进行读取的时候,就可以N块硬盘一起来工作,从而达到读取速度提高到N倍的效果,这就是RAID 0。

    525395ac53f3466812b6d7767aba1a11.png
    图1 Raid 0方案

    不过这个方案没有解决容易坏的问题,任何一块硬盘坏了都会导致存储系统故障。

    第二个方案就是,仍然把文件分片,但是所有的分片都存在一块硬盘上,其它的硬盘只存拷贝。 这既提高了硬盘的访问速度,也解决了坏的问题。任意一块硬盘坏了,存储系统都可以正常使用,只不过速度会打一点折扣。

    eb11c1a2b369920a78aa603a3446f982.png
    图2 Raid 1方案

    不过这个方案又带来了新的问题,那就是实现成本有点高了。假如我们用256G硬盘想实现512G的存储容量的话,最少得需要4块硬盘才能实现。

    有没有折中一点的方案呢?有,而且很多。我们这里只说下最常见的raid5 RAID 5同样要对文件进行分片,但是不对存储的数据进行备份,而是会再单独存一个校验数据片。 假如文件分为A1 A2 A3,然后需要再存一个校验片到别的磁盘上。这样不管A1,A2还是A3那一片丢失了,都可以根据另外两片和校验片合成出来。 既保证了数据的安全性,又只用了一块磁盘做冗余存储。

    a30876c7140f7cd7b816a59c428f196b.png
    图3 Raid5 方案

    假如我们有8块256GB的硬盘,那么RAID5方案下的磁盘阵列从用户角度来看可用的存储空间是7*256GB,只“浪费”了一块盘的空间,所以目前RAID5应用比较广泛~~

    Raid卡缓存

    硬盘延迟是毫秒级别的,即使是多快硬盘并行,也只能提升数倍而已,不能够达到量级的提升。和CPU内存的纳秒级别工作频率比起来,还是太慢了。 在计算机界,没有缓存解决不了的速度问题,如果有,那就再加一层。现代磁盘本身也基本都带了缓存,另外在一些比较新的raid卡里,硬件开发者们又搞出来了一层“内存”,并且还自己附带一块电池,这就是RAID卡缓存。 我们看下几款主流RAID卡的配置:

    • PERC S120 入门软件阵列卡,主板集成无缓存 支持RAID0 1
    • PERC H330 入门硬件RAID卡,无板载缓存, 支持RAID 0 1 5 10 50
    • PERC H730 主流硬件RAID卡带有1G缓存和电池 支持RAID 0 1 5 6 10 50 60
    • PERC H730P 高性能硬件RAID卡带有2G缓存和电池 支持RAID 0 1 5 6 10 50 60
    • PERC H830 同H730P,没有内置接口,使用外置接口连接附加存储磁盘柜用

    拿目前服务器端出镜率比较高的H730和H730P来看,他们分别带了1G和2G的缓存卡,并且自带电池。 电池的作用就是当发现主机意外断电的时候,能够快速把缓存中的数据写回到磁盘中去。对于写入,一般操作系统写到这个RAID卡里就完事了,所以速度快。对于读取也是,只要缓存里有,就不会透传到磁盘的机械轴上。

    另外想再补充说一点的就是文件相关函数里设置DIRECT I/O仅仅只能绕开操作系统本身的Page Cache,而RAID卡里的缓存,对于Linux来说,可以说算是一个黑盒。换句话说,就是操作系统并不清楚RAID卡是从缓存里吐的数据,还是真正从硬盘里读的。

    动手查看你的RAID配置

    了解了raid基本原理以后,我们可以实际动手查看一下机器上的raid情况。这里拿我手头的一台服务器举例。 通过cat /proc/scsi/scsi,我们可以查看到raid卡的型号

    Host: scsi10 Channel: 02 Id: 01 Lun: 00
      Vendor: DELL     Model: PERC H730 Mini   Rev: 4.27
      Type:   Direct-Access                    ANSI  SCSI revision: 05

    可以看到我的这台服务器raid卡使用的是PERC H730, 这块RAID卡带有1G缓存和电池。

    再看我们的硬盘阵列

    # /opt/MegaRAID/MegaCli/MegaCli64  -LDInfo -Lall -aALL
    
    Virtual Drive: 1 (Target Id: 1)
    Name                :
    RAID Level          : Primary-5, Secondary-0, RAID Level Qualifier-3
    Size                : 1.633 TB
    Sector Size         : 512
    Is VD emulated      : No
    Parity Size         : 278.875 GB
    State               : Optimal
    Strip Size          : 128 KB
    Number Of Drives    : 7
    Span Depth          : 1

    RAID Level列标明的就是当前RAID组的RAIN级别。对照下面

    • RAID 1: Primary-1, Secondary-0, RAID Level Qualifier-0 RAID 1
    • RAID 0: Primary-0, Secondary-0, RAID Level Qualifier-0 RAID 0
    • RAID 5: Primary-5, Secondary-0, RAID Level Qualifier-3 RAID 5
    • RAID 10: Primary-1, Secondary-3, RAID Level Qualifier-0 RAID 10

    可以看到,本机RAID Level是RAID5。

    另外Strip Size叫做条带大小,我机器上的配置是128KB。假如有一个512KB的文件,它就会被分成4个条带,每个128KB。这些条带可能会分散在不同的磁盘上,如果一次性读取的话,多个硬盘就可以一起转动机械轴,读取速度就会提高到原来的数倍。不过要说明的是,如果文件小于这个条带大小,小于128K,那么RAID下的多块硬盘对于该文件的读取耗时也不会有帮助。

    继续查看组成RAID的所有的磁盘的状况

    #/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL
    
    ......
    Drive's position: DiskGroup: 1, Span: 0, Arm: 0
    Device Id: 1
    ...
    Raw Size: 279.396 GB [0x22ecb25c Sectors]
    Non Coerced Size: 278.896 GB [0x22dcb25c Sectors]
    Coerced Size: 278.875 GB [0x22dc0000 Sectors]
    Sector Size:  512
    Logical Sector Size:  512
    Physical Sector Size:  512
    Inquiry Data: SEAGATE ST300MM0008     TT31S42310JR
    ...
    ...
    ...
    Drive's position: DiskGroup: 1, Span: 0, Arm: 6
    Device Id: 7
    Raw Size: 279.396 GB [0x22ecb25c Sectors]
    Non Coerced Size: 278.896 GB [0x22dcb25c Sectors]
    Coerced Size: 278.875 GB [0x22dc0000 Sectors]

    看到属于DiskGroup 1的总共有7块硬盘,每块的大小都是278GB左右。6块盘的总容量大小就是1.6T左右,确实是只“浪费”了一块硬盘的容量来保障数据的安全性!

    另外Inquiry Data也显示了硬盘的制造商,已经型号。这些磁盘都是希捷的300G的机械硬盘,经Google查询其转速为1万转每分钟。

    本文小节

    机械技术和电子技术比较起来,稳定性要差很多。所以机械背景出身的硬盘既慢又容易坏。为了解决这个问题,RAID技术应运而生。通过一定的冗余原始存储或者校验数据提供安全性的保障,通过增加带电子基因的缓存,合理调度多快磁盘的机械轴,提高了磁盘IO的读写速度。在Linux下可以通过MegaCli工具来查看你的RAID组情况,强烈你建议实际动手查看一下!

    关注知乎专栏《开发内功修炼》或搜索微信公众号kfngxl,收获更多知识!

    展开全文
  • 有很多兄弟经常问,什么牌子的内存条好啊?我PS、剪辑软件需要多大内存条?内存怎么超频啊?...只要计算机在运行中,操作系统就会需要运算的数据从内存调到CPU中进行运算,运算完成后CPU...
  • 有很多兄弟经常问,什么牌子的内存条好啊?我PS、剪辑软件需要多大内存条?内存怎么超频啊?...只要计算机在运行中,操作系统就会需要运算的数据从内存调到CPU中进行运算,运算完成后CPU再将结果传...
  • 操作系统(内存管理)

    热门讨论 2009-09-20 12:55:25
    并且,如果地址在硬盘上而不是在 RAM 中,那么操作系统将暂时停止您的进程,将其他内存转存到硬盘中,从硬盘上加载被请求的内存,然后再重新启动您的进程。这样,每个进程都获得了自己可以使用的地址空间,可以访问...
  • 引言某日,小编去面试(纯属瞎编),有了如下对话面试官:"懂mysql吧,知道CPU在读硬盘上数据的时候,是怎么解决CPU和硬盘速度不一致问题么?"我:"懂啊,mysql先数据页加载到内存里,然后读内存中的数据啊!"面试官:...
  • 引言某日,小编去面试(纯属瞎编),有了如下对话面试官:"懂mysql吧,知道CPU在读硬盘上数据的时候,是怎么解决CPU和硬盘速度不一致问题么?"我:"懂啊,mysql先数据页加载到内存里,然后读内存中的数据啊!"面试官:...
  • 原标题:Linux swap机制原理本文转载自 Linux内核那些事链接:...swap机制其实就是将外存(如硬盘)当内存使用, 怎么可以外存当内存使用呢? 原理就是系统内存不够的时候, 内核会选择某些进程, 其使用较少...
  • Linux从入门到精通

    2020-10-12 11:16:17
    妈妈 Swap (如果你的生命还有一天)交换分区,虚拟内存当内存耗尽时,把硬盘当内存用8G/16G(内存耗尽随机杀死进程) 亲戚 /boot (如果你的生命还有一天)存放启动文件,例如内核kernel 朋友 /home (如果你的...
  • 计算机常见问题

    2012-06-19 15:13:39
    同学们提出问题的答复 1、我是个电脑初学者,我想问一下图片,音乐,是放在内存中么?...文件查看和编辑完成后需要保存,即把内存中查看和编辑完成的文件写到硬盘上,将原来的文件替换。这样被编辑完成后的...
  • 2 怎么用? 3 基本原理。 在了解springCache 是什么的的前提我们要补下什么是内存,外存 内存内存(Memory)也被称为内存储器,其作用是用于暂时存放 CPU 中的运算数据,以及 与硬盘等外部存储器交换的数据。...
  • 1. 设置交换分区使用率 最近总发现Ubuntu使用一段时间之后就异常缓慢...把硬盘当内存用,速度肯定跟不上,说不定就是这个导致的。加上之前添加swap 分区时看见过“交换分区使用率” 这个关键字。不过google了一下却没什
  • 电脑蓝屏对照码

    2019-05-05 14:16:40
    (3)Memtest86等内存测试软件检查内存. (4)检查硬件是否正确安装, 比如:是否牢固、金手指是否有污渍. 8、0x00000035:NO_MORE_IRP_STACK_LOCATIONS ◆错误分析:从字面上理解, 应该时驱动程序或某些软件出现堆栈问题....
  • WIN XP蓝屏代码大全

    2013-08-08 12:29:21
    (3)Memtest86等内存测试软件检查内存. (4)检查硬件是否正确安装, 比如:是否牢固、金手指是否有污渍. 8、0x00000035:NO_MORE_IRP_STACK_LOCATIONS ◆错误分析:从字面上理解, 应该时驱动程序或某些软件出现堆栈问题....
  • RamDisk Plus7.0 带注册机 注册码

    热门讨论 2010-08-10 13:16:52
    你可以整个应用程式都安装在 RamDisk 的虚拟硬碟中,然后用内存的速度运行它。 使用虚拟硬碟技术对于延长笔记本电脑电池使用时间也是十分有利的 ,因为这样做可以减少读取实体硬碟这个“耗电大户”的次数。要...
  • 小编的确一直都想这方面的命令做个总结,这次辛苦老范给我们整理了这份实用的秘笈。  Bootcfg  bootcfg 命令启动配置和故障恢复(对于大多数计算机,即 boot.ini 文件)。  含有下列参数的 bootcfg 命令仅在...
  • 《Linux从入门到精通》

    热门讨论 2008-09-04 17:05:49
    E.8.2 startx命令启动X时, 我得到一个出错信息说没有安装服务器, 并回到提示符. 哪里出错了? E.8.3 我启动X时, 我只看到灰色的背景和一个X光标. E.8.4 我如何客户化X窗口管理器? E.8.5 我不喜欢想Windows...
  • 什么是NoSQL数据库?

    2014-07-21 23:24:20
    memcached所有数据都保存在内存中,这样保存和读取的速度非常快,但是memcached停止的时候,数据就不存在了。由于数据保存在内存中,所以无法操作超出内存容量的数据(旧数据会丢失)。 在内存中保存数据 可以...
  • Discuz网页斗地主插件

    2013-05-05 20:16:26
    最便宜的VPS主机目前现在1200左右都可拿到,128M内存,2G硬盘运行服务端程序没有问题,如果你自已有机子,有外网IP,也可架设,只是带宽小而已 表前缀对了.请问相应端口的服务怎么开启? 比如:9500端口 如何开启? ...
  • 个文件在Windows各个版本的安装光盘中或是硬盘上的Windows/command/里都 有,只有几十KB,这个文件复制到软盘下,启动系统后直接运行这个程序( 可以不加参数,该程序会自动根据内存大小分配适当的内存空间作为...
  • 关於通讯的指令.........................................................................................................21 十. 编译器( Compiler ).......................................................
  • 疯狂的程序员

    热门讨论 2012-07-18 18:05:32
    ”土匪很鄙夷的眼光他打量了一转:“广告做倒闭了?” “跟你们说了也没用,你懂吗?程序员比做广告,那就相当于做广告比摆地摊,十倍也。这是高级技术。以你现在的智商,跟你说了,怕你理解不了。” 这次,土匪...
  • 第三,实践类的操作系统书籍还是太少了,以至于你要想看看别人是怎么做的,除了读以《操作系统:设计与实现》为代表的极少数书籍之外,就是一头扎进源代码中,而结果有时相当令人气馁。我自己也气馁过,所以我在第二...
  • 第三,实践类的操作系统书籍还是太少了,以至于你要想看看别人是怎么做的,除了读以《操作系统:设计与实现》为代表的极少数书籍之外,就是一头扎进源代码中,而结果有时相当令人气馁。我自己也气馁过,所以我在第二...
  • 本文会在教你怎么用 300~400 行代码实现一个基本的 Virtual DOM 算法,并且尝试尽量 Virtual DOM 的算法思路阐述清楚。希望在阅读本文后,能让你深入理解 Virtual DOM 算法,给你现有前端的编程...

空空如也

空空如也

1 2
收藏数 40
精华内容 16
关键字:

怎么把内存当硬盘用