首页 男生 其他 Linux/Unix技术丛书·跟老男孩学Linux运维:核心基础篇(上)(第2版)

  您可以在百度里搜索“Linux/Unix技术丛书·跟老男孩学Linux运维:核心基础篇(上)(第2版) 艾草文学(www.321553.xyz)”查找最新章节!

  

  0.5.3 内存

  内存(RAM)是CPU和磁盘之间的缓冲设备(如图0-19所示),是临时存储器(用于存放数据)。若断电,数据就会丢失。

  图0-19 服务器内存展示

  程序运行的时候,一般会被调度到内存中执行,服务器关闭或程序关闭之后,数据将自动从内存中释放掉。

  1. 程序和进程的基本概念

  这里简单介绍程序和进程的区别,具体见表0-5。

  表0-5 程序、进程、守护进程间的区别

  2. 企业案例:提升用户体验的网站解决方案

  (1)门户(大网站)极端案例:大并发写入案例(抢红包、微博)

  遇到高并发、大数据量“写”数据的极端情况时,系统会将数据先写到内存中,在数据积累了一定的量后,再定时或者定量地写到磁盘中以减轻磁盘的压力,减少磁盘I/O(Input/Output,磁盘的输入/输出),最终再将数据加载到内存中以对外提供访问,目的还是为了减轻对磁盘的访问压力,相关流程如图0-20所示。

  图0-20 企业高并发业务写入流程图

  这种状况的特点具体如下。

  • 优点是写数据到内存时,性能高、速度快(适用于微博、微信、SNS(社交网)、秒杀等场景)。

  • 缺点是可能会丢失一部分在内存中还没有来得及存入磁盘的数据。

  解决数据丢失的方法具体如下。

  • 在服务器主板上安装蓄电池,在断电后宕机前瞬间将内存数据回写到磁盘。

  • UPS(一组蓄电池)不间断供电(IDC数据中心机房一般都会用UPS持续供电)。UPS(Uninterruptible Power System/Uninterruptible Power Supply),即不间断电源,是将蓄电池(多为铅酸免维护蓄电池)与主机相连接,通过主机逆变器等模块电路将直流电转换成市电的系统设备。

  • 选双路电的机房,使用双电源、分别接不同路的电,以及将服务器放到不同的机柜中,将企业业务放置到不同的地区(异地)。

  • 柴油发电机+油罐,机房一般会与附近的加油站签订紧急供油协议。

  (2)中小型企业案例

  对于并发访问(可简单理解为同时访问的数量)不是很大、数据量也不是特别大的网站,若是业务读多写少,则会先将数据写入磁盘中,然后通过程序将写到磁盘的数据读到内存中,再对外通过读取内存提供访问服务(如图0-21所示)。绝大多数企业的业务逻辑还是读请求(例如,浏览页面)多于写请求(例如,写文章、发朋友圈)。

  图0-21 中小型企业访问量低的读写流程示意

  注意:由于99%的网站以及企业业务都是以读取为主、写入为辅的,读写比例一般可能大于10:1,所以并发写入一般都不是大问题。这里提到的将数据写入内存一般是由Memcached或Redis等高效的内存级别软件来实现的,各类关系型数据库一般也都提供了读写缓存的功能。

  3. 企业Linux面试题:计算机操作系统中,缓冲区和缓存区有什么区别?

  对于新手,可参考如下说明来理解或解答。

  (1)缓冲区

  将数据写入内存,这个数据的内存空间在Linux系统里一般称为缓冲区(buffer),例如,写入到内存缓冲区,即写缓冲。

  为了提高写操作性能,数据在写入最终介质或下一层级介质之前会合并放入缓冲区中。这样会增加数据持久写的延时,因为第一次写入缓冲区后,在向下写入数据之前,还要等待后续的写入,以便凑够数据或者定时写入到永久存储介质中。

  (2)缓存区

  从内存中读取数据,这个存数据的内存空间在Linux系统里一般称为缓存区(cache),例如,从内存缓存区读取,即读缓存。

  操作系统利用缓存提高文件系统的读性能和内存的分配性能,应用程序使用缓存也是为了提高读访问效率。将经常访问的操作结果保存在缓存中可备随时使用,而非总是执行读磁盘以获取数据等开销较高的操作。

  记住一句话:缓存无处不在,无论是电脑硬件、操作系统,还是企业网站集群及其他业务系统! Linux/Unix技术丛书·跟老男孩学Linux运维:核心基础篇(上)(第2版)

目录
设置
手机
书架
书页
评论