我的linux服务器释放内存内存占用情况为什么这么高

查看: 6268|回复: 9
linux数据库服务器占用内存过高,是怎么回事?
论坛徽章:1
top - 11:23:21 up 79 days, 17:03,&&1 user,&&load average: 0.02, 0.04, 0.00
Tasks: 365 total,& &1 running, 364 sleeping,& &0 stopped,& &0 zombie
Cpu(s):&&0.0%us,&&0.0%sy,&&0.0%ni,100.0%id,&&0.0%wa,&&0.0%hi,&&0.0%si,&&0.0%st
Mem:&&M total, M used, M free,&&290.754M buffers
Swap: M total,& &41.062M used, M free, M cached
发现内存使用了6.5G.
数据库sga参数:
NAME& && && && && && && && && && && &TYPE& && &&&VALUE
------------------------------------ ----------- ------------------------------
lock_sga& && && && && && && && && &&&boolean& &&&FALSE
pre_page_sga& && && && && && && && & boolean& &&&FALSE
sga_max_size& && && && && && && && & big integer 2224M
sga_target& && && && && && && && && &big integer 2224M
NAME& && && && && && && && && && && &TYPE& && &&&VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target& && && && && &&&big integer 738M
sga_target和pga_aggregate_target加起来才3G左右。而实际上内存占用了6个多G,这是怎么回事,如何解决?
求职 : 认证徽章论坛徽章:6
在Linux下查看内存我们一般用 free,也可以参老对比top的输出,两个命令的功能侧重点不一样。
free功能说明:显示内存状态。
语 法: free [-bkmotV][-s &间隔秒数&]
补充说明:free 指令会显示内存的使用情况,包括实体内存,
虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲
-b 以Byte 为单位显示内存使用情况。
-k 以KB 为单位显示内存使用情况。
-m 以MB 为单位显示内存使用情况。
-o 不显示缓冲区调节列。
-s&间隔秒数& 持续观察内存使用状况。
-t 显示内存总和列。
-V 显示版本信息。
求职 : 认证徽章论坛徽章:6
例如,在一台机器上的输出如下不:
linux:~ # free
& && && && && & total& && &&&used& && && &&&free& && &&&shared& &&&buffers& && & cached
Mem:  7116 & &8908  & &&&0  &&21280 & & 155468
-/+ buffers/cache:  5656
Swap:     393552
下面是对这些数值的解释:
第二行(mem):
total:总计物理内存的大小。
used:已使用多大。
free:可用有多少。
Shared:多个进程共享的内存总额。
Buffers/cached:磁盘缓存的大小。
第三行(-/+ buffers/cached):
used:已使用多大。
free:可用有多少。
第二行(mem)的used/free与第三行(-/+buffers/cache) used/free的区别。
在于使用的角度来看,第一行是从OS的角度来看,因为对于OS,buffers/cached
都是属于被使用,所以他的可用内存是8908KB,已用内存是377116KB,其中包括,内核(OS)使用+Application(X,oracle,etc)使用的+buffers+cached.
第三行所指的是从应用程序角度来看,对于应用程序来说,buffers/cached
是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。
所以从应用程序的角度来说,可用内存=系统free memory+buffers+cached.
论坛徽章:0
占用内存过高,是个不太好解决的问题,我们这里也是,很头疼的,不是一个top能简单解决的
论坛徽章:1
[oracle@localhost ~]$ free -m
& && && && & total& && & used& && & free& &&&shared& & buffers& &&&cached
Mem:& && && & 7485& && & 6805& && &&&680& && && & 0& && &&&291& && & 4335
-/+ buffers/cache:& && & 2177& && & 5307
Swap:& && && &8160& && && &41& && & 8119
这是free信息,为什么和sga,pga分配的不一致?差了3个多久G.
论坛徽章:1
即使是操作系统的进程也占用不到3个G吧。
招聘 : 论坛徽章:25
除了oracle使用内存之外,其他进程也在使用内存。
你看一下是哪些进程在使用内存。
论坛徽章:1
建议楼主看看linux内存管理机制,和windows的不一样!
认证徽章论坛徽章:9
jyjxs 发表于
建议楼主看看linux内存管理机制,和windows的不一样!
赞同,linux因为内存是高效资源,应该尽量被应用,所以会尽量Cache,但不是实际利用的内存
论坛徽章:114
本帖最后由 花好月不圆 于
21:31 编辑
& && && && && & #sync && echo 3 & /proc/sys/vm/drop_caches
& && && && && & #sync && echo 1 & /proc/sys/vm/drop_caches
& && && && && & #sync && echo 1 & /proc/sys/vm/drop_caches
& && && && && &
执行后内存就释放了&&,如果是生产系统,需要谨慎执行
itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有    
 北京市公安局海淀分局网监中心备案编号:10 广播电视节目制作经营许可证:编号(京)字第1149号中国领先的IT技术网站
51CTO旗下网站
Linux服务器中高负载现象故障排查指南
技术支持分析师们常常接到用户对服务器高负载的控诉。服务器拥有者、系统管理员或者服务器供应商应当如何对高负载现象进行故障排查,在本文中我们就来探讨一下。
作者:核子可乐译来源:| 09:25
【日 51CTO外电头条】技术支持分析师们常常接到用户对服务器高负载的控诉。事实上cPanel软件及其安装的应用很少引发服务器高负载情况。服务器拥有者、系统管理员或者服务器供应商应当对高负载状况进行初步调查,并在确认情况复杂后再向分析人士求助。
服务器高负载因何而起?
下列项目的过度使用会直接导致高负载问题:
内存(包括虚拟内存)
该如何检查这些项目?
这取决于大家是要审查当前资源使用情况还是历史资源使用情况。当然,在本文中我们将从这两方面进行探讨。
关于sar的简要说明
历史资源使用情况可通过sar工具查看,该工具在默认情况下应该通过sysstat软件包安装在所有cPanel服务器当中。只要通过cron命令对sysstat进行周期性执行(/etc/cron.d/sysstat),服务器的运行状态数据就会被收集起来。如果cron没有运行,sysstat将无法收集历史统计结果。
要在sar中查看历史资源使用情况,我们必须为文件提供与统计数据相符的路径。
举例来说,如果大家打算查看本月23号以来服务器的平均负载状况,可以运行以下命令:
[user@host&~]$&sar&-q&-f&/var/log/sa/sa23&
以上命令中的-q用于获取平均负载信息,而-f则用于指定sar从哪个文件中获取信息。请注意,sar可能无法使用一周之前乃至更早的运行信息。
如果大家打算查看当前日期的统计信息,则不必为其指令具体时间。输入以下命令即可显示今天的平均负载情况:
[user@host&~]$&sar&-q&
我们强烈建议大家阅读sar说明文档:
[user@host&~]$&man&sar&
它所提供的统计信息能够帮助我们确切掌握服务器的运行状态。
当前CPU使用情况
运行top,并在Cpu(s)一行中检查%id部分所显示的闲置CPU百分比。该数字越高结果越好,说明CPU的工作负载不强。处于99%闲置状态下的CPU几乎没有处理任何实际任务,而处于1%闲置状态下的CPU则意味着接近满载。
[user@host&~]$&top&c&
提示:可加写P根据消耗CPU资源的多少对进程加以分类。
历史CPU使用情况
查看&%idle&列:
[user@host&~]$&sar&-p&
当前内存使用情况
[user@host&~]$&free&-m&
提示:运行top c并加写M可查看哪个进程占用的内存量最大。
历史内存使用情况
根据sar版本的不同,命令内容也有所区别。早期版本通过添加&-r&参数显示内存使用百分比与虚拟内存使用百分比,但新版本则改用&-s&参数显示虚拟内存使用百分比。
Check %memused and %swpused:
[user@host&~]$&sar&-r&
[user@host&~]$&sar&-r&
[user@host&~]$&sar&-S&
内存使用情况提示:服务器内存占用量较高的情况其实非常正常。这是因为内存的读写速度及效率远高于服务器磁盘,因此操作系统倾向于将内存作为缓冲机制预先载入数据,从而提高数据读取速度。
同样,内存使用百分比也并不是什么大问题(除非大家没有设置虚拟内存分区,但这也与内存本身无关)。大家真正需要关注的是虚拟内存使用百分比,因为只有在服务器的物理内存被全部占用后、虚拟内存才会接替而上发挥作用。这一数字越低,就说明服务器的运行状态越好。如果虚拟内存使用率为0%,则意味着我们的服务器能够完全利用物理内存执行任务。
那么虚拟内存使用率达到多少才算过高?这取决于大家自己的感觉。一般来说,如果虚拟内存使用率一直不高、那么我们的服务器的运行状态还是比较理想的。如果大家发现虚拟内存使用率随时间不断提升(例如由1%到7%再到32%),这就代表服务器上的某些进程正在疯狂吞噬内存,我们需要及时展开调查以了解具体情况(而不该直接安装更多内存)。一旦服务器用尽了所有物理内存与虚拟内存,那么整套系统的运行将变得极为缓慢,需要经过重启才能暂时恢复正常。
当前磁盘I/O使用情况
注意:这一项对于OpenVZ/Virtuozzo容器不起作用。
以下命令将以每秒一次的频率连续显示十次磁盘使用率统计。请大家关注显示结果中的%util列:
[user@host&~]$&iostat&-x&1&10&
历史磁盘I/O使用情况
[user@host&~]$&sar&-d&
优秀的系统管理员能够准确把握服务器负载的基准线,并在当前负载超出基准时立即做出判断。这样做的主要目的(除了防止服务器陷入半瘫痪并不得不重新启动之外)是为了及时了解负载高企时服务器正在运行哪些项目。快速反应能帮助大家在发现问题后第一时间进行故障排查。
如果服务器负载过高的状况出现在凌晨两点到四点之间,那么正在熟睡中的我们肯定无法马上展开调查。虽然sar会一直守护在服务器身边,帮我们收集这段时间内到底哪些资源的使用率居高不下,但却无法揭示问题出现的实际原因。引发负载过高的原因多种多样,其中包括DoS攻击、垃圾邮件攻击、php脚本设计不当、网络蜘蛛在绘制网络图谱时太过积极、硬件故障、针对用户MySQL数据库的磁盘写入量暴增等等。
好消息是,大家可以利用工具收集这些信息,并在负载过高后将结果自动发送过来。如何实现?从进程列表入手:
[user@host&~]$&ps&auxwwwf&
我创建了一个shell脚本,以我曾经管理过的服务器上的一套perl脚本为基础。这套脚本与其它服务器监控工具(例如Nagios)配合起来给我的工作带来诸多便利。它能检查六种不同项目(下面将详细介绍),并在进程列表中的条目超出阈值时向我发送邮件通知。
注意:cPanel公司对该脚本的开发、维护或技术支持不承担责任。请不要就这款脚本提出服务申请。如果您在使用中遇到任何问题,请到相关论坛上发帖或请教有经验的系统管理员。cPanel不提供与此脚本相关的任何支持。
它所检查的具体资源对象如下:
一分钟平均负载
虚拟内存使用数量(单位为KB)
内存使用数量(单位为KB)
每秒接收数据包数量
每秒发出数据包数量
如何使用脚本
要自动运行此脚本,大家需要设置一项cron任务并根据实际情况设定运行频率。我发现每五分钟运行一次是个不错的选择。该脚本无需使用root身份运行,既然如此我们也就不必为其分配高权限。
如果上述监控资源对象中的某一项超过用户自定义的阈值,脚本会自动发送一封电子邮件,其中包含当前进程列表内容。
电子邮件的主题行如下所示:
&[L:&35]&[P:&237]&[Swap&Use:&1%&]&[pps&in:&54&&pps&out:&289]&
下面我们一一解释其中的条目:
L代表一分钟平均负载
P代表当前进程列表中的进程数量
Swap Usage代表虚拟内存使用百分比
pps in代表每秒接收数据包数量
pps out代表每秒发出数据包数量
脚本使用前的注意事项
重要事项:大家需要根据自己的理解来调整脚本中的数值。完美的默认值设定并不存在,因为不同的服务器环境在实际运行中所应遵循的标准也不一样。举例来说,拥有十六个CPU核心的服务器在一分钟平均负载方面肯定要高于只拥有一个CPU核心的服务器。
注意:大家需要将自己的电子邮箱地址添加到EMAIL变量当中,如下所示:
EMAIL=you@&
以下五项也需要根据实际情况加以调整:
MAX_SWAP_USED
MAX_MEM_USED
MAX_PPS_OUT
MAX_PPS_IN
#!/bin/sh&export&PATH=/bin:/usr/bin&##########################################################################&#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#&#&&Copyright&Jeff&Petersen,&2009&-&2013&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#&#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#&#&&This&program&is&free&software:&you&can&redistribute&it&and/or&modify&&#&#&&it&under&the&terms&of&the&GNU&General&Public&License&as&published&by&&#&#&&the&Free&Software&Foundation,&either&version&3&of&the&License,&or&&&&&#&#&&(at&your&option)&any&later&version.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#&#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#&#&&This&program&is&distributed&in&the&hope&that&it&will&be&useful,&&&&&&&#&#&&but&WITHOUT&ANY&WARRANTY;&without&even&the&implied&warranty&of&&&&&&&&#&#&&MERCHANTABILITY&or&FITNESS&FOR&A&PARTICULAR&PURPOSE.&&See&the&&&&&&&&&#&#&&GNU&General&Public&License&for&more&details.&&&&&&&&&&&&&&&&&&&&&&&&&&#&#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#&#&&You&should&have&received&a&copy&of&the&GNU&General&Public&License&&&&&#&#&&along&with&this&program.&&If&not,&see&//www.gnu.org/licenses.&#&#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&#&##########################################################################&###############################################################################&#&START&USER&CONFIGURABLE&VARIABLES&###############################################################################&EMAIL=&&&#&1&minute&load&avg&MAX_LOAD=3&#&kB&MAX_SWAP_USED=1000&#&kB&MAX_MEM_USED=500000&#&packets&per&second&inbound&MAX_PPS_IN=2000&#&packets&per&second&outbound&MAX_PPS_OUT=2000&#&max&processes&in&the&process&list&MAX_PROCS=400&###############################################################################&#&END&USER&CONFIGURABLE&VARIABLES&###############################################################################&IFACE=`grep&ETHDEV&/etc/wwwacct.conf&|&awk&'{print&$2}'`&if&[[&&$IFACE&&=~&&venet&&]]&;&then&IFACE=venet0&fi&IFACE=${IFACE}:&###############################################################################&#&1&min&load&avg&###############################################################################&ONE_MIN_LOADAVG=`cut&-d&.&-f&1&/proc/loadavg`&echo&&1&minute&load&avg:&$ONE_MIN_LOADAVG&&###############################################################################&#&swap&used&###############################################################################&SWAP_TOTAL=`grep&^SwapTotal:&/proc/meminfo&|&awk&'{print&$2}'`&SWAP_FREE=`grep&^SwapFree:&/proc/meminfo&|&awk&'{print&$2}'`&let&&SWAP_USED&=&(SWAP_TOTAL&-&SWAP_FREE)&&echo&&Swap&used:&$SWAP_USED&kB&&###############################################################################&#&mem&used&###############################################################################&MEM_TOTAL=`grep&^MemTotal:&/proc/meminfo&|&awk&'{print&$2}'`&MEM_FREE=`grep&^MemFree:&/proc/meminfo&|&awk&'{print&$2}'`&let&&MEM_USED&=&(MEM_TOTAL&-&MEM_FREE)&&echo&&Mem&used:&$MEM_USED&kB&&###############################################################################&#&packets&received&###############################################################################&PACKETS_RX_1=`grep&$IFACE&/proc/net/dev&|&awk&'{print&$2}'`&sleep&2;&PACKETS_RX_2=`grep&$IFACE&/proc/net/dev&|&awk&'{print&$2}'`&let&&PACKETS_RX&=&(PACKETS_RX_2&-&PACKETS_RX_1)&/&2&&echo&&packets&received&(2&secs):&$PACKETS_RX&&###############################################################################&#&packets&sent&###############################################################################&PACKETS_TX_1=`grep&$IFACE&/proc/net/dev&|&awk&'{print&$10}'`&sleep&2;&PACKETS_TX_2=`grep&$IFACE&/proc/net/dev&|&awk&'{print&$10}'`&let&&PACKETS_TX&=&(PACKETS_TX_2&-&PACKETS_TX_1)&/&2&&echo&&packets&sent&(2&secs):&$PACKETS_TX&&let&&SWAP_USED&=&SWAP_TOTAL&-&SWAP_FREE&&if&[&!&&$SWAP_USED&&==&0&]&;&then&PERCENTAGE_SWAP_USED=`echo&$SWAP_USED&/&$SWAP_TOTAL&|&bc&-l`&TOTAL_PERCENTAGE=`echo&${PERCENTAGE_SWAP_USED:1:2}%`&else&TOTAL_PERCENTAGE='0%'&fi&###############################################################################&#&number&of&processes&###############################################################################&MAX_PROCS_CHECK=`ps&ax&|&wc&-l`&send_alert()&{&SUBJECTLINE=&`hostname`&[L:&$ONE_MIN_LOADAVG]&[P:&$MAX_PROCS_CHECK]&[Swap&Use:&$TOTAL_PERCENTAGE&]&[pps&in:&$PACKETS_RX&&pps&out:&$PACKETS_TX]&&ps&auxwwwf&|&mail&-s&&$SUBJECTLINE&&$EMAIL&exit&}&if&&&[&$ONE_MIN_LOADAVG&-gt&$MAX_LOAD&&&&&&]&;&then&send_alert&elif&[&$SWAP_USED&&&&&&&-gt&$MAX_SWAP_USED&]&;&then&send_alert&elif&[&$MEM_USED&&&&&&&&-gt&$MAX_MEM_USED&&]&;&then&send_alert&elif&[&$PACKETS_RX&&&&&&-gt&$MAX_PPS_IN&&&&]&;&then&send_alert&elif&[&$PACKETS_TX&&&&&&-gt&$MAX_PPS_OUT&&&]&;&then&send_alert&elif&[&$MAX_PROCS_CHECK&-gt&$MAX_PROCS&]&;&then&send_alert&fi&
需要注意的是,进程列表的输出内容中包含一些有用的数列,涉及各个进程的CPU与内存使用情况:
TIME (显示一个进程的存在时间)
我们可以通过多种方式剖析服务器负载高企的原因。下面我们列出几项常用方案--仅供参考,并不全面:
利用mysqladmin processlist (或者简写为'mysqladmin pr')检查MySQL进程列表
利用mytop检查MySQL进程列表
查阅日志文件。了解服务器自身的反馈意见也很重要。您的服务器是否遭遇暴力破解?
运行dmesg以检查可能存在的硬件故障
利用netstat查看服务器连接
下面则是值得关注的日志文件及其保存路径:
系统日志: /var/log/messages, /var/log/secure
SMTP日志: /var/log/exim_mainlog, /var/log/exim_rejectlog, /var/log/exim_paniclog
POP3/IMAP日志: /var/log/maillog
Apache日志: /usr/local/apache/logs/access_log, /usr/local/apache/logs/error_log, /usr/local/apache/logs/suexec_log, /usr/local/apache/logs/suphp_log
网站日志: /usr/local/apache/domlogs/ (use this to find sites with traffic in the last 60 seconds: find -maxdepth 1 -type f -mmin -1 | egrep -v 'offset|_log$')
Cron日志: /var/log/cron
大家也可以在评论栏中反馈您在工作中遇到的问题、对本篇文章的评论及其它任何希望与朋友们分享的信息。作为一篇独立的指导性文章,我们不可避免会存在遗漏或者疏忽,期待您提出宝贵意见、也希望大家能从中受到一点启发。
原文链接:
【编辑推荐】
【责任编辑: TEL:(010)】
大家都在看猜你喜欢
热点头条热点头条热点
24H热文一周话题本月最赞
讲师:413812人学习过
讲师:119833人学习过
讲师:132519人学习过
精选博文论坛热帖下载排行
本书全面深入地介绍了在网络的日常管理中,网络管理员必须掌握的知识,包括系统基本管理、性能调优、故障恢复、域控制器管理、存储资源管理...
订阅51CTO邮刊在 SegmentFault,解决技术问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
一线的工程师、著名开源项目的作者们,都在这里:
获取验证码
已有账号?
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
机器上面主要是php,nginx,数据库用的阿里的,
一般访问不高的时候,内存占用情况像这样,访问高的时候cpu占用会上升,但是有时候内存占用反而会下降,改了几次php-fpm,也没多大效果,由于目前项目这边没运维,我对linux不是特别熟悉,问下各位这种是什么情况啊??属于正常吗??
上图是free出来的数据,看着cache/buffers都不大啊,但是我的php-fpm启动了两百多个...php5.6的,8g内存,这个是要优化吗?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
free -m 看下,buff/cache,available 这两列比较大的话,不用担心。 linux默认会把许多内容缓存到内存里,提高运行效率。如果内存不足,会把缓存里的数据交换到磁盘。
如果这两项比较小,估计是你开了太多php-fpm进程。 PHP5版本的话8G内存一般开128个PHP-FPM进程就可以了。PHP7可以开256个进程。 如果想获得更高的RPS,需要优化你的PHP程序。 系统上线后,分析下nginx日志,看看哪些接口访问量比较大,耗费时间长,然后优先处理这些接口。
建议把PHP升级到7.0版本,内存和CPU资源占用要少很多。如果想要获得更高性能,可以考虑将瓶颈接口换成GO语言实现。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
你看是哪个进程占用了较多的内存
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
首先得定位那个软件占用很高的内存~ 然后如果是运行时占用很高,就得做具体的问题定位了!
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:  当针对Linux系统性能优化的时候,物理内存是一个最重要的因素。Linux提供了丰富的选择来监测内存资源的使用情况。不同的工具,在监测粒度(如全系统范围,每个进程,每个用户)、接口方式(如图形用户界面,命令行,ncurses)或者交互模式,批量处理模式等运行模式上都不尽相同。  下面是一个可选择图形或命令行工具列表,通过这些工具用来检查Linux平台中已用和可用的内存。(图片来源)  1.&/proc/meminfo\$&cat&/proc/meminfo  一种最简单的方法是通过“/proc/meminfo”来检查内存使用状况。这个动态更新的虚拟文件事实上是通过free,top和内存相关的工具。从可用/闲置物理内存数量到等待被写入缓存的数量或者已写回磁盘的数量,只要是关于内存使用的信息,“/proc/meminfo”显示内存使用情况。特定进程的内存信息也可以通过“/proc/&pid&/statm”和“/proc/&pid&/status”来获取。  2.&atop  对于atop命令,是针对终端环境、基于ncurses的交互式的系统和进程监测工具。它展示了动态更新的系统资源摘要(CPU、内存、网络、输入/输出、内核),并且把系统高负载的部分以警告颜色标注出来。&&&&另外,提供了类似于top的线程(或用户)资源使用视图,系统管理员可以找到哪个进程或者用户导致的系统负载。内存统计报告包括了总计/闲置内存,缓存的/缓冲的内存和已提交的虚拟内存。  3.&free\$&free&-h  free命令是一个用来获得内存使用概况的快速简单的方法,这些信息从“/proc/meminfo”获取。它提供了一个快照,用于展示总计/闲置的物理内存和系统交换区,以及已使用/闲置的内核缓冲区。
提示:支持键盘“← →”键翻页常见问题目录
> 正文缩放字号:
linux系统WDCP后台一直显示内存占用很高的原因和处理办法
& 在Linux中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然。这是Linux内存管理的一个优秀特性,在这方面,区别于 Windows的内存管理。主要特点是:无论物理内存有多大,Linux都将其充份利用,将一些程序调用过的硬盘数据读入内存,利用内存读写的高速特性来提高Linux系统的数据访问性能。而Windows是只在需要内存时,才为应用程序分配内存,并不能充分利用大容量的内存空间。换句话说,每增加一些物理内存,Linux都将能充分利用起来,发挥了硬件投资带来的好处,而Windows只将其做为摆设,即使增加8GB甚至更大。
1、如图:在WDCP的首页显示系统信息处,可以看到内存使用几乎用完了。
2、进入到内存管理中,看下实际的内存使用情况。同样显示内存几乎被占完。
3、接下来我们点下&强制释放内存&,可以看到内存降低了很多。这其实是把Linux放置的一些经常调用的东西给清掉了。
& Linux 的这一特性,主要是利用空闲的物理内存,划分出一部份空间,做为 cache 和 buffers,以此提高数据访问性能。
& 页高速缓存(cache)是Linux内核实现的一种主要磁盘缓存。它主要用来减少对磁盘的I/O操作。具体地讲,是通过把磁盘中的数据缓存到物理内存中,把对磁盘的访问变为对物理内存的访问。
& 磁盘高速缓存的价值在于两个方面:第一,访问磁盘的速度要远远低于访问内存的速度,因此,从内存访问数据比从磁盘访问速度更快。第二,数据一旦被访问,就很有可能在短期内再次被访问到。
& 因此,Linux系统在使用一段时间后会显示内存几乎占满,实际上是Linux系统把经常用的一些东西都加入到内存池中方便快速调用,以此来提升运行效率,并非是真正意义上的内存不足。如果当Linux系统的apache或mysql运行出现异常,有卡死情况,或服务器不能远程连接,进程无法正常结束或启动等情况,恰好内存也显示占完,则有可能是内存真的耗尽需要考虑增加内存了。
(欢迎转载,请注明出处:)

我要回帖

更多关于 linux服务器内存不足 的文章

 

随机推荐