精华内容
下载资源
问答
  • Ubuntu 16.04显示cpu,内存占比,以及网速 这台电脑运行内存只有4g,当我打开软件过多时经常出现卡机现象,所以我就安装了indicator-sysmonitor用来显示电脑的网速内存,cpu占有率。 效果图如下: 内存占比很大,...

    Ubuntu 16.04:显示cpu,内存占比,以及网速

    这台电脑运行内存只有4g,当我打开软件过多时经常出现卡机现象,所以我就安装了indicator-sysmonitor用来显示电脑的网速和内存,cpu占有率。

    效果图如下:

    在这里插入图片描述

    内存占比很大,嘿嘿;其实这台电脑是星际蜗牛的矿机,拿来组装nas的,顺便可以写一下代码。

    废话不说了,上方法

    安装:

    sudo add-apt-repository ppa:fossfreedom/indicator-sysmonitor
    sudo apt-get update
    sudo apt-get install indicator-sysmonitor
    

    如果在sudo apt-get update时出现

    W: GPG 错误:http://ppa.launchpad.net/fossfreedom/indicator-sysmonitor/ubuntu xenial InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY 82EB5823F4FE239D

    可以参考 解决方案

    如果更新完成之后缺少依赖可以使用,安装相关依赖。

    sudo apt-get install -f
    

    启动

    indicator-sysmonitor &
    

    最后设置开机启动

    邮件右上角显示栏,选择首选项,勾选 Run on startup

    在advanced里面可以个性化设置
    在这里插入图片描述

    展开全文
  • 系统自身监控状态 ...Java原生代码实现cpu,磁盘等数据占比 但是这个有一个缺点,就是本身获取的速度会很慢,请求接口的话,大概会有34s,所以慎重选择。 //获得cpu使用率:原生代码,响应时间大概3

    系统自身监控状态

    	突然心血来潮写一个这个文章,之前本来打算一天一更的,但是工作原因,搞得一直加班.....(算了,不想碎碎念了,只是把这个记录下来,方便以后自己回头看看。)
    

    利用oshi工具获取信息

    	本来吧,按理说是可以直接用的,但是开发环境是1.7的,结果不能直接弄,最终别人的帮助下改了一下套进了系统中最终跑起来了。
    

    Java原生代码实现cpu,磁盘等数据占比

    但是这个有一个缺点,就是本身获取的速度会很慢,请求接口的话,大概会有34s,所以慎重选择

    //获得cpu使用率:原生代码,响应时间大概30s
        public static String getCpuRatioForWindows() {
            try {
                String procCmd = System.getenv("windir") + "\\system32\\wbem\\wmic.exe process get Caption,CommandLine,KernelModeTime,ReadOperationCount,ThreadCount,UserModeTime,WriteOperationCount";
                // 取进程信息
                long[] c0 = readCpu(Runtime.getRuntime().exec(procCmd));
                Thread.sleep(CPUTIME);
                long[] c1 = readCpu(Runtime.getRuntime().exec(procCmd));
                if (c0 != null && c1 != null) {
                    long idletime = c1[0] - c0[0];
                    long busytime = c1[1] - c0[1];
                    return "" + Double.valueOf(PERCENT * (busytime) * 1.0 / (busytime + idletime)).intValue();
                } else {
                    return "" + 0 ;
                }
            } catch (Exception ex) {
                ex.printStackTrace();
                return "" + 0 ;
            }
        }
    
        private static long[] readCpu(final Process proc) {
    		// TODO Auto-generated method stub
    		long[] retn = new long[2];
            try {
                proc.getOutputStream().close();
                InputStreamReader ir = new InputStreamReader(proc.getInputStream());
                LineNumberReader input = new LineNumberReader(ir);
                String line = input.readLine();
                if (line == null || line.length() < FAULTLENGTH) {
                    return null;
                }
                int capidx = line.indexOf("Caption");
                int cmdidx = line.indexOf("CommandLine");
                int rocidx = line.indexOf("ReadOperationCount");
                int umtidx = line.indexOf("UserModeTime");
                int kmtidx = line.indexOf("KernelModeTime");
                int wocidx = line.indexOf("WriteOperationCount");
                long idletime = 0;
                long kneltime = 0;
                long usertime = 0;
                while ((line = input.readLine()) != null) {
                    if (line.length() < wocidx) {
                        continue;
                    }
                    // 字段出现顺序:Caption,CommandLine,KernelModeTime,ReadOperationCount,
                    // ThreadCount,UserModeTime,WriteOperation
                    String caption =substring(line, capidx, cmdidx - 1).trim();
                    String cmd = substring(line, cmdidx, kmtidx - 1).trim();
                    if (cmd.indexOf("wmic.exe") >= 0) {
                        continue;
                    }
                    String s1 = substring(line, kmtidx, rocidx - 1).trim();
                    String s2 = substring(line, umtidx, wocidx - 1).trim();
                    if (caption.equals("System Idle Process") || caption.equals("System")) {
                        if (s1.length() > 0)
                            idletime += Long.valueOf(s1).longValue();
                        if (s2.length() > 0)
                            idletime += Long.valueOf(s2).longValue();
                        continue;
                    }
                    if (s1.length() > 0)
                        kneltime += Long.valueOf(s1).longValue();
                    if (s2.length() > 0)
                        usertime += Long.valueOf(s2).longValue();
                }
                retn[0] = idletime;
                retn[1] = kneltime + usertime;
                return retn;
            } catch (Exception ex) {
                ex.printStackTrace();
            } finally {
                try {
                    proc.getInputStream().close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            return null;
    	}
    
        /**
         * 由于String.subString对汉字处理存在问题(把一个汉字视为一个字节),因此在 包含汉字的字符串时存在隐患,现调整如下:
         * @param src 要截取的字符串
         * @param start_idx 开始坐标(包括该坐标)
         * @param end_idx 截止坐标(包括该坐标)
         * @return
         */
        private static String substring(String src, int start_idx, int end_idx) {
            byte[] b = src.getBytes();
            String tgt = "";
            for (int i = start_idx; i <= end_idx; i++) {
                tgt += (char) b[i];
            }
            return tgt;
        }
    
    
    
    
            public static String getMemery() {
            OperatingSystemMXBean osmxb = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
            // 总的物理内存+虚拟内存
            long totalvirtualMemory = osmxb.getTotalSwapSpaceSize();
            // 剩余的物理内存
            long freePhysicalMemorySize = osmxb.getFreePhysicalMemorySize();
            Double compare = (Double) (1 - freePhysicalMemorySize * 1.0 / totalvirtualMemory) * 100;
            String str = "" + compare.intValue();
            return str;
        }
    
    
    

    利用第三方工具获取

    很简单,导入然后套娃就可以了。

    
    // oshi获取cpu数据,不支持低版本
    	public static String getCpu() throws Exception{
    		
    		SystemInfo systemInfo = new SystemInfo();
    		 CentralProcessor processor = systemInfo.getHardware().getProcessor();
    	        long[] prevTicks = processor.getSystemCpuLoadTicks();
    	        // 睡眠1s
    	        TimeUnit.SECONDS.sleep(1);
    	        long[] ticks = processor.getSystemCpuLoadTicks();
    	        long nice = ticks[CentralProcessor.TickType.NICE.getIndex()] - prevTicks[CentralProcessor.TickType.NICE.getIndex()];
    	        long irq = ticks[CentralProcessor.TickType.IRQ.getIndex()] - prevTicks[CentralProcessor.TickType.IRQ.getIndex()];
    	        long softirq = ticks[CentralProcessor.TickType.SOFTIRQ.getIndex()] - prevTicks[CentralProcessor.TickType.SOFTIRQ.getIndex()];
    	        long steal = ticks[CentralProcessor.TickType.STEAL.getIndex()] - prevTicks[CentralProcessor.TickType.STEAL.getIndex()];
    	        long cSys = ticks[CentralProcessor.TickType.SYSTEM.getIndex()] - prevTicks[CentralProcessor.TickType.SYSTEM.getIndex()];
    	        long user = ticks[CentralProcessor.TickType.USER.getIndex()] - prevTicks[CentralProcessor.TickType.USER.getIndex()];
    	        long iowait = ticks[CentralProcessor.TickType.IOWAIT.getIndex()] - prevTicks[CentralProcessor.TickType.IOWAIT.getIndex()];
    	        long idle = ticks[CentralProcessor.TickType.IDLE.getIndex()] - prevTicks[CentralProcessor.TickType.IDLE.getIndex()];
    	        long totalCpu = user + nice + cSys + idle + iowait + irq + softirq + steal;
    		
    	        String s = new DecimalFormat("#.##%").format(1-(idle * 1.0 / totalCpu));
    	        
    	        String newString = s.replace("%", "");
    	        
    	        return newString;
    	        
    	}
    
    
    
    
    //获取内存使用率
    	public static String getMemery(){
    		
    		SystemInfo systemInfo = new SystemInfo();
    		GlobalMemory memory = systemInfo.getHardware().getMemory();
    		//总内存
    		long totalByte = memory.getTotal();
    		//剩余
    		long acaliableByte = memory.getAvailable();
    		
    		String string = new DecimalFormat("#.##%").format((totalByte-acaliableByte)*1.0/totalByte);
    		String newString = string.replace("%", "");
    		
    		return newString;
    	}
    
    
    
    
    
    悟已往之不谏知来者之可追。
    
    展开全文
  • 内存&cpu占比排序

    2020-06-18 15:55:52
    需求:列出机器上现有进程内存和cpu使用情况,按内存或者cpu使用排序,占比从大到小 $ ps -eo pmem,pcpu,pid,etime,rss,vsize,args | sort -k 1 -r | less %MEM %CPU PID ELAPSED RSS VSZ COMMAND 0.4 0.0 13600 ...

    需求:列出机器上现有进程内存和cpu使用情况,按内存或者cpu使用排序,占比从大到小

    $  ps -eo pmem,pcpu,pid,etime,rss,vsize,args | sort -k 1 -r | less
    
    %MEM %CPU   PID     ELAPSED   RSS    VSZ COMMAND
     0.4  0.0 13600 50-23:25:23 15788 574304 /usr/bin/python2 -Es /usr/sbin/tuned -l -P
     0.2  0.0 21713    01:45:17 10536 114268 /usr/bin/google_guest_agent
     0.2  0.0 11245    09:11:20  9892 939472 ./falcon-agent -c cfg.json
     0.1  0.0  6705       24:45  4668 241376 sud su - tycenter
     0.1  0.0  6675       24:48  5524 154712 sshd: liguorui [priv]
     0.1  0.0   527 213-04:28:10 6192 547484 /usr/sbin/NetworkManager --no-daemon
     0.1  0.0 28542 194-21:43:46 5504  56468 nginx: worker process
     0.1  0.0 28540 194-21:43:46 5292  56468 nginx: worker process
     0.1  0.0 28539 194-21:43:46 5480  56468 nginx: worker process
     0.1  0.0 28537 194-21:43:46 5508  56468 nginx: worker process
    

    说明:sork -k按关键词排序,1为第一列,本次为内存,2为cpu,-r逆序(默认从小到大),ps -eo pmem(内存),、pid(进程号)、etime(运行多长时间)、rss(物理内存大小)、vsize(虚拟内存大小)

    top
    # shift+m 按内存排序,c按cpu排序
    top - 07:52:51 up 213 days,  4:34,  1 user,  load average: 0.00, 0.01, 0.05
    Tasks: 113 total,   2 running, 111 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  0.2 us,  0.0 sy,  0.0 ni, 99.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    KiB Mem :  3880512 total,  1501908 free,  1621760 used,   756844 buff/cache
    KiB Swap:        0 total,        0 free,        0 used.  1828536 avail Mem
    
      PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
    29288 center  20   0  848708 303860   6516 S   0.0  7.8  73:57.74 pypy
    29331 center  20   0  641820 285412   4776 S   0.0  7.4  67:43.87 pypy
    29244 center  20   0  640888 282296   4796 S   0.0  7.3  69:29.99 pypy
    32449 center  20   0  520852 146296   9388 S   0.0  3.8 154:50.85 pypy
    32381 center  20   0  519924 145132   9132 S   0.0  3.7 155:04.40 pypy
    32347 center  20   0  517708 143520  10220 S   0.0  3.7 155:30.28 pypy
    32415 center  20   0  499292 138172   9540 S   0.0  3.6 152:36.55 pypy
    
    展开全文
  • 最近在项目中碰到 IE6-7 下的内存泄露,通过 Drip 能探测出来,问题也解决了。最近小组成员同时有在做前端质量工具,通过性能检测,可以排查出一些耗时较长的代码,但对内存泄露想不到...CPU 占比探测 通过 setTimeout

    最近在项目中碰到 IE6-7 下的内存泄露,通过 Drip 能探测出来,问题也解决了。最近小组成员同时有在做前端质量工具,通过性能检测,可以排查出一些耗时较长的代码,但对内存泄露想不到好的自动化探测方式。本着集思广益的初衷,发了条微博:

    通过 setTimeout 等方式,可以检测当前页面所在操作系统 CPU 的大体情况。请教万能的微博:有没有什么办法,通过 JavaScript 检测到当前页面所在操作系统的内存使用情况(比如是否持续上涨、存在内存泄露)?

    CPU 占比探测

    通过 setTimeout 的方式探测 CPU 已经不是秘密,去年腾讯的朋友在 Velocity 上分享过,北京有朋友还通过这个原理,几年前就实现了网页游戏中动画等耗时操作的自动调节。原理很简单:

    var data = []
    var t
    
    function pulse() {
      t && data.push(Date.now() - t)
      t = Date.now()
      setTimeout(pulse, 50)
    }
    
    pulse()
    

    就是每隔 50ms 打一下点。理想情况下,data 的值应该是

    data = [50, 50, 50, 50, ...]
    

    但实际情况,data 会是

    data = [51, 52, 50, 52, ...]
    

    当 CPU 比较忙时,data 的数据变成

    data = [81, 102, 90, 62, ...]
    

    即 CPU 越忙,data 数据项会越大。这样,记录一系列 data 值,就可以绘制出 CPU 占比趋势图,和通过任务管理器看到的 CPU 趋势图非常接近。

    上面只是原理说明,实际情况没这么简单。但很明显,通过这么一个简单的规律,就能实现用纯 JavaScript 来探测 CPU 占比了。

    内存泄露探测

    回到那条微博,是否也存在某种规律,使得可以用 JavaScript 来间接探测到内存泄露情况?

    从微博的回复里还没看到有价值的信息。今天回家时,想到一种思路:

    1. 如果存在内存泄露,意味着浏览器在 GC 时,没有进行某些操作。
    2. 没有进行某些操作,意味着会节省一些 CPU 时间。
    3. CPU 耗时的变化,可以通过合理的打点探测出来。

    似乎有点希望,回到家后,立刻写了点代码验证。但发现干扰因素太多,基线也很难确定。折腾了一个多小时,有些死结,很难突破。

    于是停下来写这篇文章,看看大家有没有更好的思路。我们以为不可能的事情多了去,但不可能的事情往往存在可能,思路是无限的。

    最后描述下我的具体需求:

    有一个 a.html 页面,里面有 JS 业务代码,以及单元测试代码。
    通过前端测试系统,我们可以把 a.html 自动跑在各个浏览器上,比如 IE6/7/8/9。
    现在已经可以自动得到 a.html 在各个浏览器下的单元测试结果,以及一些性能指标。
    现在想进一步,想通过单元测试代码,也能探测出当前页面是否存在内存泄露。

    页面存在内存泄露时,典型的现象是,不断刷新当前页面,内存占用不会归位,而会一直往上涨。

    集思广益下,看看是否有可能实现内存泄露的自动探测?或者有其他自动化探测方案。如果有朋友有类似经验,请不吝赐教。

    最后,推荐一条消息,前端的朋友,可以访问下 aliceui.org,这是支付宝最近推出的一套样式解决方案,有些类似 Twitter 的 Bootstrap,但定位更基础些。有兴趣的可前往关注,欢迎指点。

    (完)

    服务推荐

    展开全文
  • sqlserver内存占用达到90+%,查看sysprocesses根据资源占用排序有如图结果,但是不知道前几个占用大资源进程是有什么作用,以及为什么产生,所以不好随便kill,请大神解惑,谢谢! ![图片说明]...
  • 都知道可以在任务管理器中查看进程的 CPU 和内存占用,那么如何通过 .NET 编写代码的方式来获取到 CPU 和内存占用呢? .NET 中提供了 PerformanceCounter 类型,可以用来监视系统中大量的性能问题。 本文内容获取...
  • 记一次Idea 内存消耗严重,CPU资源占比严重,风扇持续呼啸的彻底解决方案自定义目录标题问题描述解决方案:方案说明最终方案验证效果idea.vm 配置信息参考tomcat jvm配置信息参考 问题描述 从使用idea2017版开始,...
  • 问题描述大多数人都知道使用idea时,发现idea内存消耗比较严重,尤其开启了tomcat后,过一段时间,idea的运行内存会被吃满,最近还发现编辑代码,提交代码,CPU占比可以直接飙升到100%,风扇呼呼作响,于是开始找...
  • 说明:ps -aux 打印进程相关内存CPU等属性运行情况; 接着使用awk,打印第2列第4列; 接着按照数值降序排序,依据第二列,分割符号","进行打印 最后head 限制打印结果最前10行。 输出结果:按照...
  • c#控制台示例程序 封装两个类 一个获取系统的CPU和内存占用率 一个获取指定进程的CPU和内存占用率 支持获取多个所有同名进程的信息
  • 功能:获取android设备中某一个app的cpu和内存 环境:pythonadb 使用方法:使用adb连接android设备,打开将要测试的app,执行cpu/内存代码 cpu获取代码如下:(输入参数为脚本执行时间) # coding:utf-8 ''' ...
  • Android 系统基于 Linux 的内核构建起来,因此统计应用消耗的内存和占用的 CPU 时非常方便,本文介绍统计 CPU 和内存的命令,以及实现自动化统计的思路 CPU 的统计 Linux 提供了非常简单的一个命令 top,可以查看...
  • CentOS7查看CPU和内存情况

    千次阅读 2019-05-05 14:28:00
    本文简单介绍在CentOS7上查看CPU和内存情况。 查看CPU情况  以下是个人工作会经常使用到的服务器的信息。 查看所有CPU信息  可以通过如下命令查看所有CPU信息: # cat /proc/cpuinfo [starnight@344...
  • k8s cpu 和内存资源说明

    万次阅读 2018-10-30 15:54:29
    cpu:200m 表示占用02个cpu资源 按照1000m的1个cpu资源进行计算。 这里设置的是初始值,若初始值过小可能分到资源不足的机器,不能网上占用资源了 内存, java 参考jvm虚拟机资源设置 go 不用设置内存,靠应用自己去...
  • 在没有nagios监控软件的情况下,只要服务器能上互联网,就可通过发邮件的方式来提醒管理员系统负载与CPU占用的使用情况。 一、安装linux下面的一个邮件客户端msmtp软件(类似于一个foxmail的工具)  1、下载安装:  ...
  • #coding=utf-8 import time import psutil import pymysql # 先安装两个包psutilpymysql # 在mysql创建数据库test1,...create table memory_and_cpu(cpu_lv varchar(100),memory_lv varchar(100),pro_cpu_lv va...
  • 1.获取Windows系统内存使用率//windows 内存 使用率 DWORD getWin_MemUsage(){ MEMORYSTATUS ms; ::GlobalMemoryStatus(&amp;ms); return ms.dwMemoryLoad; } 2.获取windowsCPU使用率__int64 ...
  • 分享者:brookwang 阅读量:567㊋ ㊌абвгде㊎㊏⊙▽㊋ ㊌абвгде㊎㊏⊙▽服务器上IIS占用CPU资源100%的解决办法分类:服务器我用的是asp+access,我遇见这中情况的解决办法:1、首先按网上说的分开应用池,...
  • CPU占比持续高 1.分析哪个线程耗用CPU(看程序哪块逻辑消耗CPU) 找到Java进程pid:jcmd 监控Java进程状态:java -jar opt/arthas/arthas-boot.jar 7 进入后执行thread命令 查看TOP n 线程 ,返回的第一列未线程ID...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,921
精华内容 5,968
关键字:

cpu和内存占比