从图上看,上面是CPU层面,下面是资源层面,越往下越慢。运行速"/>

硬件体系优化及IO优化核心优化原理详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了硬件体系优化及IO优化核心优化原理详解相关的知识,希望对你有一定的参考价值。

技术分享

从图上看,上面是CPU层面,下面是资源层面,越往下越慢。运行速度。

从容量上看越往下越大。

先在内存中处理,后再硬盘中处理。

CPU和内存处理速度比也相差很大,1000倍的差距

所以光用内存也是慢,一般CPU里面也有缓存,1级缓存,2级缓存。CACHE

交互过程中可能放到1级缓存,二级缓存,进行平缓操作,CPU和内存。

技术分享

电脑的快慢有什么决定的和你到时候优化什么地方。

比方说瓶颈是硬盘差,我CPU变成双核的,硬盘还不快,应为瓶颈不是CPU,是磁盘。

电脑的各个部件你最好有个平衡。某一个好,都不能提升电脑的整体性能。

ns:纳秒

us:微秒

ms:毫秒

网卡和固态盘差不多,普通磁盘就是瓶颈了,用普通硬盘就不要用一块,3块、5块

做网站架构:能用CPUcache就不用内存,更近一步,能用内存,就不要用ssd能用ssd就不用硬盘。

这是一个服务器的优化,将来就会上升到整个集群的优化。

集群的优化也是一样的,把数据扔到内存里面提供服务,将来数据肯定优先放到内存里面。

这样有的时候数据可能会丢失,先在硬盘上存在,在放到内存里。只是从内存中读取。

几乎所有的网站都是浏览的人多,写的人少。

技术分享

还想快写到内存里面去,写到 内存一旦宕机怎么办?

宕机数据会丢失,宕机不一定是死机。

宕机就是不能提供服务了,做运维不说死机,说宕机。

数据丢了要不你企业接受数据丢失,要接受不了这个方案就不行。

我能容忍1秒的数据。

1秒在内存中写1万次,1秒以后刷到磁盘里。

比直接写磁盘快很多倍。读硬盘次数越少,效率越高。

满足应用的前提下,向硬盘里面刷。

技术分享

对于大多数网站来说,还是读更多,对于网站来说,读的压力会最先产生。

对于网站的常规做法是写入写入磁盘,然后读到内存里去,然后当用户访问的时候读内存。

这样读就快了,写磁盘也能承受的住。

对于数据不能丢,写的压力又不大的,读的压力大的,先写磁盘,读到内存,这样提供服务。

小结:CPU速度很快,所以有L1、L2cache,CPU之后是内存,内存更快,内存之后是SSD固态盘,然后普通硬盘。

服务器硬件的性能排序。

将来做运维优化网站,服务器的关键:尽量使用内存。

1、解决浏览网页的压力,也是读的压力。

由于写没压力,写入硬盘,读入到内存,然后提供给客户访问。

2、解决像微信、微博这样的应用,读的压力超大,写的压力相对较大。

写压力较大的业务,我们一般,可以考虑写到内存,然后根据企业能够接受的数据丢失程度,选择一个频率写到

磁盘。读跟上面一样。这样确保能接收更大的写并发,数据丢失的数量我可以忍受。

互联网上没有绝对的好方案。

更高的要求,及写入内存,又不希望数据丢失。

不让宕机,宕机的核心原因是没电了。

1、用UPS不间断电源,

2、主板上安装flush 电池作用:当服务器没电了,利用电池供电,把内存数据刷到磁盘。

你理解生活中的一些事情,你运维就会了。


本文出自 “9525154” 博客,转载请与作者联系!

以上是关于硬件体系优化及IO优化核心优化原理详解的主要内容,如果未能解决你的问题,请参考以下文章

sql优化及原理详解,五分钟读懂sql优化

GBDT原理详解及sklearn源码解析

Docker---镜像详解Dockerfile编写及优化部署nginx

IO模型之BIO代码详解及其优化演进

编译器优化机制详解

排序算法冒泡选择排序的Python实现及算法优化详解