1.基本思路:
写道
1.获得这个进程内存信息
2.将内存信息定时输出到日志文件
2.将内存信息定时输出到日志文件
2.实现:
写道
1.实时内存信息
/proc/进程ID/status
2.将这个信息写入到 脚本中
/proc/进程ID/status
2.将这个信息写入到 脚本中
2.1
先看一个初始化的简单脚本:
写道
#! /bin/bash
pid=$(cat /home/dc_workspace/logs/DataCell.pid)
echo $pid
while (true)
do
currentTime=`date +%y-%m-%d-%X-%Z`
echo $currentTime
echo $currentTime"-------------------------" >> /home/dc_workspace/logs/$pid.mem
cat /proc/$pid/status | grep Vm >> /home/dc_workspace/logs/$pid.mem
sleep 10s
done
pid=$(cat /home/dc_workspace/logs/DataCell.pid)
echo $pid
while (true)
do
currentTime=`date +%y-%m-%d-%X-%Z`
echo $currentTime
echo $currentTime"-------------------------" >> /home/dc_workspace/logs/$pid.mem
cat /proc/$pid/status | grep Vm >> /home/dc_workspace/logs/$pid.mem
sleep 10s
done
3.脚本代码:
这个脚本有两个输入参数: pid文件的路径 和 内存输出的,最后输出的文件信息在 和pid文件在相同的目录下 $pid.mem 文件中,
#! /bin/bash pidFile=$1 sleepTime=$2 if [ ! $pidFile ] ;then echo "please set pid file path" exit 0 fi if [ -f $pidFile ] ; then echo $pidFile else echo $pidFile" pid file path not exist" exit 0 fi if [ ! $sleepTime ] ; then sleepTime=10 fi pid=`cat $pidFile` pidPath=${pidFile%/*} echo $pid echo "pidPath: "$pidPath while [ $pid ] do currentTime=`date +%y-%m-%d-%X-%Z` echo $currentTime echo $currentTime"-------------------------" >> $pidPath/$pid.mem cat /proc/$pid/status | grep Vm >> $pidPath/$pid.mem sleep $sleepTime done
4.看下输出结果吧:
写道
13-08-30-15时13分18秒-CST-------------------------
VmPeak: 11303480 kB
VmSize: 10697548 kB
VmLck: 0 kB
VmHWM: 4122892 kB
VmRSS: 1931880 kB
VmData: 10225608 kB
VmStk: 88 kB
VmExe: 4940 kB
VmLib: 10180 kB
VmPTE: 6500 kB
VmSwap: 0 kB
13-08-30-15时13分28秒-CST-------------------------
VmPeak: 11303480 kB
VmSize: 10687228 kB
VmLck: 0 kB
VmHWM: 4122892 kB
VmRSS: 1993228 kB
VmData: 10225608 kB
VmStk: 88 kB
VmExe: 4940 kB
VmLib: 10180 kB
VmPTE: 6476 kB
VmSwap: 0 kB
VmPeak: 11303480 kB
VmSize: 10697548 kB
VmLck: 0 kB
VmHWM: 4122892 kB
VmRSS: 1931880 kB
VmData: 10225608 kB
VmStk: 88 kB
VmExe: 4940 kB
VmLib: 10180 kB
VmPTE: 6500 kB
VmSwap: 0 kB
13-08-30-15时13分28秒-CST-------------------------
VmPeak: 11303480 kB
VmSize: 10687228 kB
VmLck: 0 kB
VmHWM: 4122892 kB
VmRSS: 1993228 kB
VmData: 10225608 kB
VmStk: 88 kB
VmExe: 4940 kB
VmLib: 10180 kB
VmPTE: 6476 kB
VmSwap: 0 kB
相关推荐
很简单, 监控linux某进程内存的脚本
* VIRT:进程占用的虚拟内存 * RES:进程占用的物理内存 * SHR:进程使用的共享内存 * S:进程的状态。S 表示休眠,R 表示正在运行,Z 表示僵死状态,N 表示该进程优先值为负数 * %CPU:进程占用 CPU 的使用率 * %...
在Linux操作系统中,掌握如何查看进程的CPU占用率是系统管理员和开发者必备的技能之一。这一过程涉及到对系统监控工具的使用,理解进程与CPU之间的交互,以及如何解析输出信息。下面将详细介绍如何在Linux环境下查看...
8. **异常检测**:如果某个进程占用内存过高,可能是程序错误、内存泄漏或恶意软件的迹象。这时需要进一步调查,如通过调试工具分析,或者使用内存分析工具(如Valgrind)查找问题。 9. **性能优化**:了解哪些进程...
当我们遇到“Linux高内存占用程序”时,通常意味着某些进程正在大量消耗系统资源,这可能导致系统响应变慢,甚至可能导致系统崩溃。理解如何识别、监控和处理这类问题至关重要。 首先,我们需要了解Linux内存的基本...
在Linux操作系统中,管理和监控进程的内存使用情况是系统管理员和开发者的重要任务,这有助于确保系统的稳定性和优化资源分配。本文将详细介绍如何使用几个关键工具来查看Linux进程的内存占用情况。 首先,`top`...
这样,你可以快速找到哪些进程占用了大量内存资源。 在给出的例子中,我们看到一些名为`oracle`的进程占据了较高的内存,如PID为14101的`oracle`进程,其VIRT内存为1941MB,RES内存为613MB,占用了7.7%的系统总内存...
标题中的“window和linux和android进程内存CPU等监控软件”是指一种跨平台的系统监控工具,它可以用于Windows、Linux和Android操作系统,目的是实时监测和分析系统中的进程对内存、CPU以及GPU资源的占用情况。...
在Linux操作系统中,管理和监控进程的内存使用情况是系统管理员日常维护的重要环节。本文将详细介绍如何查看Linux进程的内存占用情况,并提供相关的命令和参数解释。 首先,`top`命令是Linux下最常用的一种实时监控...
C/C++实现linux和Windows查看系统、进程、服务的内存和CPU使用情况的源代码,生成的是静态链接库,Windows和Linux下经测试都可用,查看系统、指定名称的服务、指定名称的进程占用CPU和内存,查看方式不是通过程序中...
通过`GetProcessIdFromName`找到进程,再利用`PdhAddCounter`添加相应的性能计数器,然后定时收集和处理数据,就能实现实时监控进程的资源占用情况。在工程实践中,这样的功能对于性能优化、故障排查具有极高的价值...
在Go语言中,读取Linux系统的CPU占用率、CPU温度、内存占用率以及磁盘占用率涉及到了系统监控和性能分析。以下将详细介绍如何利用Go实现这些功能。 1. **CPU占用率** CPU占用率是指CPU在单位时间内用于执行用户...
### 如何查看 Linux 下内存占用率 #### 方法-1:使用 `free` 和 `awk` 为了查看Linux系统中的内存占用情况,一种常用的方法是结合使用`free`和`awk`这两个强大的命令。具体步骤如下: 1. **运行 `free -t` 命令**...
在IT领域,尤其是在系统管理和性能监控中,了解进程的CPU占用率和内存使用情况是非常重要的。这可以帮助我们诊断系统性能问题,优化程序运行效率,以及有效地管理资源。本篇文章将详细探讨如何在C++中获取指定进程的...
Linux系统具有高效的网络功能和稳定的性能,因此被广泛应用于服务器领域,Linux是云计算的核心组成部分,被广泛用于构建云平台和云服务。许多知名的云计算服务提供商都采用Linux系统作为其基础架构,一些游戏平台和...
总之,监控进程的内存使用、CPU占用和线程数是理解和优化系统性能的重要手段。通过合理使用操作系统提供的接口和工具,我们可以有效地获取这些信息,为系统管理提供有力的数据支持。在实际操作中,还需要考虑并发...
在Linux系统中,任务管理器是一个非常重要的工具,它允许用户监控系统状态,包括进程信息、处理器使用率以及内存占用情况。在这个特定的场景中,我们讨论的是一个针对Linux ARM架构实现的任务管理器,名为...
在Linux操作系统中,管理和监控进程的内存使用情况是系统管理员和开发者的重要任务,这有助于优化系统性能、排查内存泄漏等问题。本文将深入探讨如何在Linux环境下查看进程的内存使用情况。 首先,我们可以使用`top...
* SZ:进程占用的内存大小 * WCHAN:进程或系统调用等待时的地址 * %CPU:cpu 使用百分比 * %MEM:内存使用百分比 * VSZ:占用虚拟内存大小 * RSS:占用物理内存大小 * START:进程开始时间 Linux TOP 命令是一个...
通过`top`,你可以看到哪个Java进程占用了最多的CPU。 4. **`jstack` 命令**: - `jstack` 用于打印Java虚拟机的堆栈跟踪信息,可以帮助我们查看某个Java进程中的线程状态,但不直接提供CPU使用情况。结合`jps`...