精华内容
下载资源
问答
  • linux查看服务器内存占用情况

    千次阅读 2020-11-03 16:22:49
    2.查看服务器整体内存占用情况1 3.查看服务器整体内存占用情况2 free -h total: 内存总数 used: 已经使用内存数 free: 完全空闲内存 shared: 多个进程共享的内存 buffers: 用于块设备数据缓冲,记录文件系统metad

    查看某个进程的占用内存情况(以‘device_maintenance’为例)

    1.查找进程号

    ps -ef | grep 'device_maintenance'ps -aux | grep 'device_maintenance'
    

    在这里插入图片描述
    在这里插入图片描述

    2.查看服务器整体内存占用情况1

    在这里插入图片描述

    3.查看服务器整体内存占用情况2

    free -h
    

    在这里插入图片描述

    total: 内存总数
    used: 已经使用内存数
    free: 完全空闲内存
    shared: 多个进程共享的内存
    buffers: 用于块设备数据缓冲,记录文件系统metadata(目录,权限,属性等)
    cached: 用于文件内容的缓冲
    available:真正剩余的可被程序应用的内存数
    
    展开全文
  • 查看进程动态列表 // An highlighted block top 使用Shift + M 排序 查看占用率高的进程PID,强制关闭进程 // An highlighted block sudo kill -9 PID

    查看进程动态列表

    // An highlighted block
    top  
    

    使用Shift + M 排序
    查看占用率高的进程PID,强制关闭进程

    // An highlighted block
    sudo kill  -9 PID
    
    展开全文
  • 如下图所示,ECS 服务器,系统物理内存8G,实际使用7.7G,占用达到96%。 但实际进程占用内存加起来远远达不到这么高的占用。 2,问题分析 https://blog.csdn.net/Witch_Soya/article/details/54980680 ...

    1,内存耗用过高现象

    如下图所示,ECS 服务器,系统物理内存8G,实际使用7.7G,占用达到96%。

    但实际进程占用的内存加起来远远达不到这么高的占用。

    2,问题分析

    https://blog.csdn.net/Witch_Soya/article/details/54980680

    https://blog.csdn.net/duanxianling/article/details/8167356

     

    以上文章反映的问题与本文所述问题非常相似。

    该文认为极有可能是SQLServer数据库占用内存过多。

    3,问题处理

    把最大服务器内存改成1G,确定后内存就会被强制释放,然后把最大服务器内存改成合适的值3072。服务器内存占用降为83%,降至正常耗用范围。

     

    转载于:https://www.cnblogs.com/jackkwok/p/11062915.html

    展开全文
  • 记一次服务器内存占用过高导致的简单JVM调优 继安装GPE分布式监控系统对服务器进行监控之后,陆续发现服务器内存占用率很高。有时间就对服务器上的应用进行逐一排查。 1.查看服务器状态 使用top命令看了下系统的...

    记一次服务器内存占用过高导致的简单JVM调优

    继安装GPE分布式监控系统对服务器进行监控之后,陆续发现服务器内存占用率很高。有时间就对服务器上的应用进行逐一排查。
    在这里插入图片描述

    1.查看服务器状态

    使用top命令看了下系统的状态:

    top -c
    

    看到系统的整体负载和cpu并不高,但是内存使用比较高(15.6/16),遂使用M进行内存占用排序
    在这里插入图片描述

    可以看到其中占用内存较大的应用均为java应用,而且应用数量有20+,每个java应用的启动参数设置的都比较大。导致服务器内存占用很高。
    如何在保证应用正常使用的同时,减小应用占用内存,修改启动参数,成为了解决问题的关键。

    2.优化-Xms,-Xmx参数

    我们首先选用内存占用比例最高的PID:32477的java应用来进行分析,我们看到在启动参数中该应用配置的启动参数为

    -Xms2048m -Xmx2048m
    

    堆内存分配了2个G,那么怎么确定应用是否用到了这么大的堆内存呢?

    第一步

    我们jstat命令来查看一下JVM的GC情况,并通过GC信息来确定下一步优化的侧重点:

    #即会每5秒一次显示进程号为32477的java进成的GC情况,一共显示5次
    jstat -gc 32477 5000 5
    

    结果如下图:
    在这里插入图片描述
    YGC平均耗时: 0.353s/9=0.8ms

    FGC平均耗时:基本为0

    平均大约40ms才会产生一次YGC

    看起来似乎不错,YGC触发的频率不高,FGC的耗时也不高,但这样的内存设置是不是有些太浪费呢?(后续可以使用jmap工具强制触发FullGC来观察FullGC之后的老年代存活对象大小,使用命名jmap -dump:live,format=b,file=heap.bin <pid>)

    第二步

    我们再使用jmap工具来查看堆内存使用情况

     jmap -heap 32477
    

    结果如下图:
    在这里插入图片描述

    可以看到老年代的内存占用仅为50M左右。那么根据老年代内存占用我们应该怎么分配堆内存设置呢,依据的原则是根据Java Performance里面的推荐公式来进行设置。
    在这里插入图片描述

    具体来讲:

    Java整个堆大小设置,Xmx 和 Xms设置为老年代存活对象的3-4倍,即FullGC之后的老年代内存占用的3-4倍

    永久代 PermSize和MaxPermSize设置为老年代存活对象的1.2-1.5倍。

    年轻代Xmn的设置为老年代存活对象的1-1.5倍。

    老年代的内存大小设置为老年代存活对象的2-3倍。

    按照上述规则,按照整个堆大小是老年代(FullGC)之后的3-4倍计算的话,设置各代的内存应该情况如下:

     Xmx=512m Xms=256m Xmn=64m PermSize=64m 
    

    老年代的大小为 (256-64=192m)为老年代存活对象大小的3倍左右

    3.优化-XX:MetaspaceSize,-XX:MaxMetaspaceSize参数

    MetaspaceSize含义

    MetaspaceSize容量触发FGC的阈值。比如-XX:MetaspaceSize=256m,当MetaspaceSize容量超过256M时触发FGC,超过设定阈值后MetaspaceSize每扩容一次触发一次FGC;

    第一步

    我们jstat命令来查看一下JVM的Meta区使用率,并通过来Meta区使用率确定参数配置是否合理:

    jstat -gcutil 32477
    

    结果如下图:
    在这里插入图片描述

    第二步

    然后,再通过jstat -gc 32477 5000 5命令查看,结果如下图所示,计算MU/MC即Meta区的使用率确实达到了23.12%,但是MC,即Metaspace Capacity只有322304k,并不是参数MetaspaceSize指定的512m,结果如下图:
    在这里插入图片描述

    通过以上结果,我们可以发现MetaspaceSize容量设置的过大,导致Meta区使用率太低,浪费了比较多的堆内存。并取消了-XX:InitialBootClassLoaderMetaspaceSize参数的配置(或随着MetaspaceSize的内存分配减少而减少,普通项目配置为64M即可)。修改后的Meta参数配置为:

    -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m
    

    InitialBootClassLoaderMetaspaceSize

    64位下默认4M,32位下默认2200K,metasapce前面已经提到主要分了两大块,Klass Metaspace以及NoKlass Metaspace,而NoKlass Metaspace是由一块块内存组合起来的,这个参数决定了NoKlass Metaspace的第一个内存Block的大小,即2*InitialBootClassLoaderMetaspaceSize,同时为bootstrapClassLoader的第一块内存chunk分配了InitialBootClassLoaderMetaspaceSize的大小。

    设置建议

    MetaspaceSize和MaxMetaspaceSize设置一样大;

    MetaspaceSize值建议设置为应用稳定运行后1.2-1.5倍,对于大部分项目256m即可.

    4.输出GC日志,并使用GC工具查看应用GC情况

    通过GC日志可视化分析工具,我们可以很方便的看到JVM各个分代的内存使用情况、垃圾回收次数、垃圾回收的原因、垃圾回收占用的时间、吞吐量等,这些指标在我们进行JVM调优的时候是很有用的,这里我们选用GCeasy。

    GCeasy介绍
    官网地址:https://gceasy.io/,GCeasy是一款在线的GC日志分析器,可以通过GC日志分析进行内存泄露检测、GC暂停原因分析、JVM配置建议优化等功能,而且是可以免费使用的(有一些服务是收费的)。

    第一步

    设置GC日志输出参数,在应用启动时,加入对GC日志打印的语句。

    GC参数

    JVM的GC日志的主要参数包括如下几个:

    -XX:+PrintGC 输出GC日志

    -XX:+PrintGCDetails 输出GC的详细日志

    -XX:+PrintGCTimeStamps 输出GC的时间戳(以基准时间的形式)

    -XX:+PrintGCDateStamps 输出GC的时间戳(以日期的形式,如 2017-09-04T21:53:59.234+0800)

    -XX:+PrintHeapAtGC 在进行GC的前后打印出堆的信息

    -Xloggc:…/logs/gc.log 日志文件的输出路径

    修改应用启动脚本,加入如下启动配置:

    -XX:+UseConcMarkSweepGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xloggc:./gc.log
    

    启动应用,在jar包的同级目录获得gc日志文件gc.log

    第二步

    将上述获得的日志文件导入第三方GC日志分析器:
    在这里插入图片描述

    JVM的各个分代区域分配的内存及使用峰值的内存
    在这里插入图片描述

    关键性能指标:吞吐量及GC暂停平均时间、最大时间、各个时间段的比例。
    在这里插入图片描述

    内存泄漏及fullGC异常
    在这里插入图片描述

    GC发生的原因、次数、时间等
    在这里插入图片描述

    4.修改启动参数后,对结果进行验证

    经过上述修改,可以看到GPE上内存占用有比较明显的下降。
    在这里插入图片描述

    总结:

    在内存相对紧张的情况下,可以按照上述的方式来进行内存的调优, 找到一个在GC频率和GC耗时上都可接受的一个内存设置,可以用较小的内存满足当前的服务需要

    但当内存相对宽裕的时候,可以相对给服务多增加一点内存,可以减少GC的频率,GC的耗时相应会增加一些。 一般要求低延时的可以考虑多设置一点内存, 对延时要求不高的,可以按照上述方式设置较小内存。

    展开全文
  • 游戏服务器内存占用动态调整

    千次阅读 2015-03-21 23:07:34
    最近游戏在腾讯平台上线,已经快破200组,以前是一台机器可能就放一两组游戏区内存绰绰有余,只要没发生内存泄漏,也就...发现只要服务器维护后快一星期左右,内存占用从原先的10几个G一路高歌猛进,直到占满内存 9...
  • 解决linux服务器内存占用过大问题

    万次阅读 2015-04-17 15:34:58
    解决linux服务器内存占用过大问题 来源:本站转载 作者:佚名 时间:2013-10-26 TAG: 我要投稿  今天到公司按照惯例检查了下所有服务器的状态,发现有台服务器的内存占用比平常大很多,如下图 马上qq上问了...
  • Windwos Server 2008 中出现物理内存占用极高甚至宕机,但任务管理器中各进程的内存占用并不多,查来查去也不知道什么原因的情况。使用RAMMAP的工具检查,发现这些内存被Metafile占用了,经查阅Metafile是系统缓存的...
  • 解决oracle11gr2服务器占用内存问题

    千次阅读 2019-06-27 16:02:31
    那么长期不使用oracle服务,导致oracle服务器资源被占用,我们因为贪图方便而造成内存占用较高。 在使用oracle服务频率不高情况下,比较合适的解决方案是,改变服务运行方式自动为手动,按需开关,节约资...
  • 调整服务器运行占用内存大的过程

    千次阅读 2017-10-31 10:31:43
    可以看出是PHP进程占用过大的内存 因此找到PHP的配置文件 用whereis php 或者用which php 查看php配置文件路径 找到服务器对应应用的php配置文件 pm = dynamic; 表示使用哪种进程数量管理方式  ...
  • Redis导致服务器内存占用过大

    千次阅读 2017-02-18 10:59:56
    今天线上集群那边反馈...内存占用将近97%,调查发现是redis导致。 解决: 设置Redis内存占用上限,到达上限后刷入磁盘 vi /etc/redis.conf maxmemory 1g maxmemory-policy allkeys-lru appendonly yes
  • 转 Linux服务器如何查看CPU占用率、内存占用、带宽占用 2018年04月02日 11:09:22 幽雨雨幽 阅读数:16711 ...
  • SQL Server占用服务器内存过高

    万次阅读 2017-07-11 17:36:40
    SQL Server对服务器内存的使用策略是用多少内存就占用多少内存,只用在服务器内存不足时,才会释放一点占用的内存,所以SQL Server 服务器内存往往会占用很高。 查看内存状态: DBCC MemoryStatus 这些...
  • 怎么查看各进程分别占用多少服务器内存?这对很多高手来说是再简单不过的问题,但对一些新手来说可能不得其门的话就有些麻烦了,其实和简单,用下面的命令试一试: 系统是 CentOS, 64bit: top -c 然后 M...
  • 本人对linux的命令使用的不是太熟练,经常会用到一些命令,却总是记不清楚,所以在这里做一些简单的记录,希望能帮助到大家,话不多说,直接开干!...#free -k 查看内存的使用情况的swap的使用情况 查看系统进程...
  • 使用java库自带的OperatingSystemMXBean类获取服务器负载相关信息 这个类java文档中并没有详细说明 这里提供一个工具类   package com.bootdo.common.utils; import ...
  • 如何查看服务器内存使用情况--top

    千次阅读 2021-01-04 17:22:00
    top命令: 直接输入top
  • 搭建测试环境过程中,需要对正在使用的aws服务器(实际这是一台虚拟出来的服务器),查看它在运行脚本,启动脚本时的内存,CPU,网络等使用情况 1、查看服务器cpu内核个数: -cat 每个物理cpu中core的个数(即...
  • 查看服务器内存使用情况

    千次阅读 2020-02-14 18:13:00
    linux环境输入top命令即可。
  • SQL Server对服务器内存的使用策略是用多少内存就占用多少内存,只用在服务器内存不足时,才会释放一点占用的内存,所以SQL Server 服务器内存往往会占用很高。 这些内存一般都是SQL Server运行时候用作缓存的: 1...
  • Net Core 服务器占用内存过高

    千次阅读 2020-06-19 15:57:02
    高级语言一般都有垃圾回收机制,不用的内存会自己回收掉; 当出现占用过高,可能代码不够好,主要还是代码优化,net core这里也有些...//限制内存占用过高 <ConcurrentGarbageCollection>true</Concurr...
  • 搭建测试环境过程中,需要对正在使用的aws服务器,查看它在运行脚本,启动脚本时的内存,CPU,网络等使用情况 1、查看物理CPU个数:cat cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l 2、查看...
  • 实际部署到服务器的代码 这里用python2写了一个死循环,可以配合Linux的screen命令或者是nohup &命令来执行这个程序 # -*- coding:utf-8 -*- import os import time record = [0]*100000 # 用于记录进程睡眠次数...
  • 作为Linux运维工程师系统维护过程中,需要我们经常查看服务器CPU使用率、内存使用率、带宽占用,从资源使用的程度分析系统整体的运行情况。 在 Linux 香港服务器上查看资源使用情况有很多命令可以参考,CPU、内存、...
  • 相信每一位运维人员手里都掌握着不少的服务器,少则几十台,多则成百上千,线上服务器跑的服务五花八门,每台服务器资源消耗都不同,如果能够对资源消耗较高的进程实现自动发现监控将对排查问题有很大的帮助。...
  • 服务器SQLServer占用内存过高解决

    千次阅读 2020-07-02 10:56:38
    公路院服务器内存占用过大,查询任务管理器: 发现sqlserver和mysql占用内存过大 Windows server使用中,任务管理器显示已经占用内存99%,但是将所有显示的进程占用内存加起来并没有占到系统内存的这么多。极有...
  • 整体思想 ...1、使用python包psutil 获取linux服务器CPU、内存等相关数据 2、数据保存在本地或者保存在数据库 3、读取数据,使用python包pyecharts画图 4、使用Flask,页面前端访问 转载: ...
  • Influxdb内存占用问题跟踪

    千次阅读 2020-05-26 15:53:13
    This leak seems to have been introduced in 8aa224b, present in 1.1.0 and 1.1.1. ...referred to subslices of the request body; if any tag set introduced a new series, then those tags then were
  • linux内存占用过高问题解决方法

    千次阅读 2020-09-01 14:49:54
    3.再使用top查看内存占用情况,发觉内存占用率已经降下来了,但是free -g却还有100G被占用(内存总共128G),vmstat发现是cache 占用了大量内存。 使用 echo 1 > /proc/sys/vm/drop_caches 释放缓存 常用的释放...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 347,598
精华内容 139,039
关键字:

服务器内存占用低