飞速星空
资讯首页>> 内存管理免费下载
新手入门 | 系统内存都去哪儿啦?
[更新:2018-03-01 11:51:38] [浏览:39次]

关于本文

使用云主机的过程中,我们有时会遇到内存或CPU占用较高的情况,这时我们就需要查明到底是什么占用了我们系统的内存,然后有针对性地进行清理。如果你还仅仅停留在打开任务管理器查看的阶段,那么一定要把今天的教程收藏好喽。今天小云教大家在windows和Linux系统下,如何正确而迅速地排查我们的系统内存究竟都去哪儿了,同时附送Linux系统CPU高负载实例的排查解决方案,请查收。

Windows系统内存占用分析

本文实例镜像:Windows Server 2008 R2 数据中心版 64位 中文版SQL Server 2008 R2 企业版 SP3。

一、发现系统内存占用较高

通过控制台看到内存占用达到62%,相当于600多兆物理内存(1G内存规格);

二、通过服务器的任务管理器查询进程占用内存

登陆服务器系统,打开任务管理器,从进程占用这里看肯定是没有600多兆的,内存大户mssql,这里看也不过39兆,如下图:

其实,任务管理器-进程这里看到的内存(专用工作集)内存占用,只是这个进程独占的物理内存。

三、通过系统资源管理器查询进程准确的内存占用情况

为了找到各个进程准确的内存占用情况,我们打开系统自带资源管理器:

这里对进程占用内存大小的显示是准确的,物理内存的使用包含以下几个部分:1、为硬件保留的内存2、正在使用:由进程、驱动程序、操作系统使用的内存3、已修改:内容必须写入磁盘才能用于其它用途的内存4、备用:包含未使用的缓存数据和代码的内存5、可用:不包含任何有价值数据,以及当进程、驱动程序、操作系统需要更多的内存时优先使用的内存6、缓存:当文件被打开时,系统会把文件保存在缓存中,以便下次迅速读写。Windows 2008 R2及以后,对这个缓存的使用也做了限制:有一部分物理内存不会被缓存使用,保证系统即使在缓存过大的时候,也有可用物理内存,满足程序使用需求。

但是,看了这么多,还是没搞清楚除了进程占用的内存外,其他内存哪里去了。所以,我们需要使用工具来查看。

四、使用工具查看除进程外的其它内存占用

我们请出终极工具:名称:RamMap版本:v1.0主页:http://technet.microsoft.com/zh-cn/sysinternals/ff700229(en-us).aspx 作者:Windows Sysinternals

process private:进程正在使用的专有物理内存量;paged pool:分页池Mapped File内存映射文件Nonpaged pool:非分页池MetaFile:系统缓存可以看出,除了进程本身在占用物理内存外,Mapped File、paged pool、Nonpaged pool、MetaFile等等也都在占用内存,而任务管理器是看不到的;

我们再回到最开始的任务管理器,当勾选更多的监控列时,可以看到工作设置(内存)working set、内存(专用工作集)WS Private、提交大小(Private Bytes)

工作设置(内存):进程正在使用的物理内存量;内存(专用工作集):该进程使用的而其他进程不能使用的物理内存;提交大小:操作系统为进程保留的虚拟内存量;工作设置内存 = 内存专用工作集 + 与其他进程共享的物理内存。提交大小 = 内存专用工作集 + 保存在页面文件中的独占内存。

总结:因此,通过任务管理器的进程选项查看到的只是该进程本身占用的内存量,而windows系统本身在内存管理上是非常复杂的,除相关进程会占用内存外,Mapped File、paged pool、Nonpaged pool、MetaFile等等也都在占用内存,而这些在任务管理器中是看不到的。

Linux系统cpu、内存高负载排查

本文相关配置及说明已在 CentOS 6.5 64 位操作系统中进行过测试。其它类型及版本操作系统配置可能有所差异,具体情况请参阅相应操作系统官方文档。

一、通过 top 从进程纬度来查看其 CPU、内存等资源的使用情况

用法说明:

回显说明:

默认界面上第三行会显示当前 CPU 资源的总体使用情况,下方会显示各个进程的资源占用情况。

可以直接在界面输入大小字母 P,来使监控结果按 CPU 使用率倒序排列,进而定位系统中占用 CPU 较高的进程。最后,根据系统日志和程序自身相关日志,对相应进程做进一步排查分析,以判断其占用过高 CPU 的原因。

二、使用 top 直接终止 CPU 消耗较大的进程

如前面所述,可以通过 top 命令查看系统的负载问题,并定位耗用较多 CPU 资源的进程。可以直接在 top 运行界面快速终止相应的异常进程。说明如下:

1.想要终止某个进程,只需按下小写的 k 键。

2.输入想要终止的进程 PID (top 输出结果的第一列)。

三、CPU 使用率较低但负载较高情况的处理

问题描述:

Linux 系统没有业务程序运行,通过 top 观察,类似如下图所示,CPU 很空闲,但是 load average 却非常高。

处理办法:

load average 是对 CPU 负载的评估,其值越高,说明其任务队列越长,处于等待执行的任务越多。出现此种情况时,可能是由于僵死进程导致的。可以通过指令 ps -axjf 查看是否存在 D 状态进程。D 状态是指不可中断的睡眠状态。该状态的进程无法被 kill,也无法自行退出。只能通过恢复其依赖的资源或者重启系统来解决。

关于系统内存占用情况的排查,你学会了吗?如果仍如无法解决您的问题,请向我们提工单,由技术工程师为您解决哦!

你一定还想看

问题解读 | MySQL Mysqldump 常见问题和处理

新手入门 | 不想升级Linux?试试这两招!

新手入门 | Ubuntu如何配置图形界面和vnc

问题解读 | 小步骤,搞定Windows Server 2008里的IE增强

问题解读 | Linux MySQL 常见启动异常的解决方案(上)

问题解读 | Linux MySQL 常见无法启动或启动异常的解决方案(下)

问题解读 | 云主机修改Docker默认MTU值

问题解读 | Windows系统中DNS解析不稳定怎么办?

问题解读 | Linux系统SSH无法远程登录时该怎么办?

新手入门 | 使用京东云搭建WordPress博客站点

新手入门 | 利用京东云搭建简单的Web服务

新手入门 | 如何为你的网站备案

新手入门 | 在京东云Windows操作系统上部署Web服务

新手入门 | 如何在京东云Linux云主机中安装软件

用户测评| 京东云服务器主机测评:1核1G1M最低配

新手入门 | 京东云主机Windows系统中FTP服务安装配置使用

新手入门 | 如何构建共享IP带宽?

新手入门 | 京东云Linux云主机中FTP服务的安装配置与使用新手入门 | 如何快速使用PhantomJS

问题解读 | Windows总在夜间自动重启?真相是…….

问题解读 | 服务器被肉鸡了怎么办?

问题解读 | 如何预防Windows系统停止响应

问题解读|Windows防火墙的那些事儿(上)

问题解读|Windows防火墙的那些事儿(下)

问题解读 | 网络故障?一本自查手册来救你!

问题解读 | 数据库变慢的解决之道

问题解读 | 只要五小步,Redis安全即加固

新手入门 | Windows环境中安装OpenSSL的步骤

新手入门 | 轻巧搭建Ghost博客

新手入门 | 一小时搭建自己的Discuz!论坛

新手入门 | 如何在CentOS 7下安装Nginx?

新手入门 | 无内容不运营,Joomla!基础管理平台搭起来

新手入门 | IIS配置,你要的都在这里~

问题解读 | IIS的一些小问题,这里还有一份攻略要给你~

问题解读 | Linux sftp客户端报错,如何做?

问题解读 | 误删文件后的急救大法

新手入门 | Linux下修改时区的两种方式

新手入门 | 快速搭建 Moodle 课程管理系统

新手入门 | 再收一个搭建wordpress小妙招

新手入门 | SVN工具的搭建和使用

新手入门 | SVN版本库的迁移

京东云

不止于云计算

还没关注就说不过去了老铁

推荐内容: