linux下如何查看服务器物理内存状况?
$ free -m\x0d\ total used free shared buffers cached\x0d\ Mem: 1002 769 232 0 62 421\x0d\ -/+ buffers/cache: 286 715\x0d\ Swap: 1153 0 1153\x0d\ 第一部分Mem行:\x0d\ total 内存总数: 1002M\x0d\ used 已经使用的内存数: 769M\x0d\ free 空闲的内存数: 232M\x0d\ shared 当前已经废弃不用,总是0\x0d\ buffers Buffer 缓存内存数: 62M\x0d\ cached Page 缓存内存数:421M\x0d\ 关系:total(1002M) = used(769M) + free(232M)\x0d\ 第二部分(-/+ buffers/cache):\x0d\ (-buffers/cache) used内存数:286M (指的第一部分Mem行中的used - buffers - cached)\x0d\ (+buffers/cache) free内存数: 715M (指的第一部分Mem行中的free + buffers + cached)\x0d\ 可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数。\x0d\ 第三部分是指交换分区, 我想不讲大家都明白\x0d\ 我想大家看了上面,还是很晕第一部分(Mem)与第二部分(-/+ buffers/cache)的结果中有关used和free为什么这么奇怪\x0d\ 其实我们可以从二个方面来解释\x0d\ 对操作系统来讲是Mem的参数buffers/cached 都是属于被使用,所以它认为free只有232\x0d\ 对应用程序来讲是(-/+ buffers/cach)buffers/cached 是等同可用的,因为buffer/cached是为了提高程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。\x0d\ 所以,以应用来看看,以(-/+ buffers/cache)的free和used为主所以我们看这个就好了另外告诉大家一些常识Linux为了提高磁盘和内存存取效率, Linux做了很多精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路 径名到inode的转换), 还采取了两种主要Cache方式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache能有效缩短了 I/O系统调用(比如read,write,getdents)的时间。\x0d\ 记住内存是拿来用的,不是拿来看的不象windows, 无论你的真实物理内存有多少,他都要拿硬盘交换文件来读这也就是windows为什么常常提示虚拟空间不足的原因你们想想,多无聊,在内存还有大部分 的时候,拿出一部分硬盘空间来充当内存硬盘怎么会快过内存所以我们看linux,只要不用swap的交换空间,就不用担心自己的内存太少如果常常 swap用很多,可能你就要考虑加物理内存了这也是linux看内存是否够用的标准哦
缓存的基本思想是利用客户端访问的时间局限性,将客户端访问过的内容做一个副本,在一定时间内存放到本地,当改数据下次被访问时,不必连接到后端服务器反复去查询数据,而是由本地保存的副本响应数据。
保存在本地的这些副本具有一个过期时间,超过该时间将会更新。判断一个副本数据是否为过期数据的办法有很多,可以使用保留时间来判断,也可以使用数据完整度来判断。
许多Web服务器还具有校验功能,就是当某些副本数据过期以后,先向后端服务器发送校验请求,后端服务器对这些数据进行校验,如果发现原数据和副本没有差别,则将过期副本重新置为可用副本。
以上nginx配置结合使用:
proxy_params文件的配置如下:
访问一次页面,并向 http://wwwblogs-scom:8080/api/ 发起一个接口数据请求,查看/cache/nginx目录下的缓存结果:
ngx_cache_purge是nginx的第三方模块,能够帮助我清除nginx中的缓存。
在之前的nginx编译安装中我们是没有把缓存的清除模块ngx_cache_purge编译进去的,如果启动了缓存,没有安装这个模块,在之后的调试中我们尝试去清除缓存时,将会出现异常:
这个异常是在指示我们,找不到该指令的驱动,需要按照相关模块。
ngx_cache_purge只是nginx的第三方模块,并不是某个特殊的软件,所以我们需要对nginx重新进行编译,操作如下:
配置nginx:
再一次启动nginx成功;
接下来进行缓存清除测试,访问: http://blogscom/clear_cache/api/indexphp , 访问这个连接将会清除接口: http://blogscom/api/indexphp 的缓存数据。
结果如下:
在项目开发中,不可能出现什么都需要缓存的数据,缓存仅仅适合去缓存查询频繁,但是不需要实时更新的数据,这个是它适合的场景,而我们上面的配置,只要是访问api接口目录就会缓存接口的数据,这样对于一些需要实时更新的接口数据来说是不合理的,需要控制好nginx的缓存去缓存什么以及不缓存什么
set 指令为变量设置,proxy_no_cache参数中的值可以设置多个,但是多个值中,只要有一个是不为0的,就会通过缓存响应数据。
该指令用于配置一块公用的内存区域的名称,该区域可以存放缓存的索引数据。这些数据在Nginx服务器启动时由缓存索引重建进程负责建立,在Nginx服务器的整个运行过程中由缓存管理进程负责定时检测过期数据,检索等管理工作。
该指令用于配置Nginx服务器向客户端发送响应数据时,不从缓存中获取的条件。这些条件支持使用Nginx 配置的常用变量。
看一个例子:
其中,Scookie_nocache、Sarg_nocache、Sarg_comment、Shttp_pragma 和Shttp_authorization 都是Nginx配置文件的变量,
该指令用于设置Nginx服务器在内存中为缓存数据建立索引时使用的关键字
如果我们希望缓存数据包含服务器主机名称等关键字,则可以将该指令设置为:
该指令用于设置是否开启缓存的锁功能。在缓存中,某些数据项可以同时被多个请求返回的响应数据填充。开启该功能后,Nginx服务器同时只能有一个请求填充缓存中的某一数据项,这相当于给该数据项上锁,不允许其他请求操作。其他的请求如果也想填充该项,必须等待该数据项的锁被释放。这个等待时间由 proxy_cache_lock_timeout 指令配置。
该指令用于设置缓存的锁功能开启以后锁的超时时间。具体细节参见proxy_cache_lock 指令的相关内容
其中,time为设置的时间,默认为5s。
该指令用于设置客户端请求发送的次数,当客户端向被代理服务器发送相同请求达到该指令设定的次数后,Nginx服务器才对该请求的响应数据做缓存。合理设置该值可以有效地降低硬盘上缓存数据的数量,并提高缓存的命中率。
其中,number为设置的次数。默认设置为1。
该指令用于设置Nginx服务器存储缓存数据的路径以及和缓存索引相关的内容
该指令设置比较复杂,一般需要设置前面三个指令的情形比较多,后面的几个变量与Nginx服务器缓存索引重建进程及管理进程的性能相关,一般情况下保持默认设置就可以了。我们来看几个简单的配置实例:
如果Nginx在访问被代理服务器过程中出现被代理的服务器无法访问或者访问错误等现象时,Nginx服务器可以使用历史缓存响应客户端的请求,这些数据不一定和被代理服务器上最新的数据相一致,但对于更新频率不高的后端服务器来说,Nginx服务器的该功能在一定程度上能够为客户端提供不间断访问。该指令用来设置一些状态,当后端被代理的服务器处于这些状态时,Nginx服务器启用该功能。
该指令可以支持的状态如语法结构中所示。
该指令可以针对不同的HTTP响应状态设置不同的缓存时间,
该指令同于配置在什么情况下不使用cache功能
该指令配置是否在本地磁盘缓存来自被代理服务器的响应数据。这是Nginx服务器提供的另一种缓存数据的方法,但是该功能相对 Proxy Cache简单一些,它不提供缓存过期更新、内存索引建立等功能,不占用内存空间,对静态数据的效果比较好。
Proxy Store方法多使用在被代理服务器端发生错误的情况下,用来缓存被代理服务器的响应数据。
该指令用于设置用户或用户组对Proxy Store缓存的数据的访问权限,
有关Proxy Store方法的使用,我们通过官方给出的实例加深理解,在该实例中笔者通过注释对配置做了说明:
毫无疑问,在整个IT技术发展过程中,英特尔扮演了举足轻重的地位。英特尔至强产品线一直以来都是那些高需求服务器和工作站的最佳选择。
为什么至强服务器和其CPU一直处于霸主地位呢, 了解一下其一些功能你就会明白,这还可以帮助你根据需要选择合适的服务器。
服务器中的CPU称为处理器,它是接收、解释和传递指令的单元。 它还处理数据和执行任务,包括运行查询和提供网页。
多年来, 英特尔一直将x86服务器和工作站处理器称为“Xeon”。
至强产品线包括Xeon W处理器和Xeon可扩展处理器等等。可扩展处理器适用于使用多个插槽的工作站和服务器。其他的还有额外的特性,比如错误纠正代码(ECC)内存支持。更高级的变体具有更强的处理器能力和更多的缓存内存。
在选择至强服务器时应该注意什么?有时候真的很难确定何时需要在其他处理器上使用Xeon服务器。
下面是一些基本的区别,可以帮助你做出区分。
Xeon处理器和服务器在很大程度上比Core更昂贵。
例如,低速Xeon E3是低速型号。它与一些Core i5处理器一样便宜。这使得它对于一些资源不太密集的任务(如媒体服务器或电子商务托管)是一个很好的选择。
所有Xeon E3系列和几乎所有Core CPU都支持高达64GB的内存。但是,许多Xeon系统支持超过1TB的内存。
Xeon服务器和处理器最突出的特性之一是它们支持错误纠正代码(ECC)内存。
ECC内存可防止出现单位内存错误。基本上,它识别并纠正错误。这对于那些需要可靠性和正常运行时间的系统至关重要。
一些主流的英特尔Core处理器也支持ECC。但为了确保有ECC内存支持,还是需要Xeon。
缓存是处理器本身的一小部分内存。Core处理器的缓存小于或等于8MB。有些型号的内存可高达25MB。然而,Xeon E7 CPU有超过60MB的缓存。
任何给定处理器的工作速度取决于主频。
主频 是处理器生成和部署指令的速度,以赫兹(GHz)为单位。时钟越快,CPU每秒执行的指令就越多。
在决定使用处理器时,速度并不是一个可靠的特性。这是因为涡轮增压的出现使时钟速度可以根据工作负载进行更改。
主频和涡轮增压通常与功耗有关。热功率损耗(TDP)越低,主频越慢。较高的TDP通常具有较高的涡轮增压能力。具有多个内核的Xeon服务器的时钟速度较低。
除了Extreme版之外,所有Core CPU的TDP都低于100W。Xeon CPU高达165W。
一般来说,Xeon的功耗高于Core。Core可以更轻松地超频。
你运行的应用程序是否需要许多处理器内核、额外内存或者高内存带宽?也许这三个你都需要。如果是这样,你可能需要一个具有多个CPU的系统。
许多至强支持多个CPU, 他们通过使用附加的芯片技术来实现CPU之间的通信。通过这种方式,CPU可以共享内存访问并协调任务。
通过这种配置,每个CPU都有自己的一组内存模块和一个控制器。它也有自己的处理核心。这意味着更多的计算能力、内存和带宽。
许多服务器工作负载现在都是虚拟化的。
软件和操作系统运行在由假硬件组成的独立“气泡”中。这样,一个主机操作系统可以管理多个虚拟环境。
这个配置在一定程度上可以隔离在这个虚拟环境中发生的事情。为此,它需要具有硬件支持的唯一扩展。
Xeon CPU通常可以很好地支持这些扩展。大多数服务器和工作站级主板也支持它们。
无论你的小型企业需要服务器、存储服务器还是云工作站,Intel Xeon处理器都将提供可靠的性能和效率。
希望本文能帮助你更好地理解Xeon服务器及其核心对等产品。你选择的服务器类型取决于ni的业务需求。
事实有并没有什么关系!
raid缓存,就相当于普通硬盘上的那块缓存而已,这个raid缓存是作用于整个raid卡的,属于一个raid卡的输入输出缓存,提高raid的读写效率之用。
硬要说有关系的话,一般写入过程是系统内存中的数据写入raid缓存中,经过raid调度后,再写入硬盘;读取过程是先从硬盘中读取数据到raid缓存,再经过raid卡的系统总线,写入内存。
关于服务器内存的意思,计算机专业术语名词解释
服务器是企业信息系统的核心,因此对内存的可靠性非常敏感。服务器上运行着企业的关键业务,内存错误可能造成服务器宕机并使数据永久丢失。服务器内存大多都带有Buffer(缓存器),Register(寄存器),ECC(错误纠正代码),具有普通PC内存所不具备的高性能、高兼容性和高可靠性。
建议大家可以按照以下七步来选出“心仪”的存储服务器。
0条评论