当前位置:文档之家› 【IT专家】Linux读写物理内存

【IT专家】Linux读写物理内存

【IT专家】Linux读写物理内存

本文由我司收集整编,推荐下载,如有疑问,请与我司联系

Linux读写物理内存

2012/07/31 0 一、基础知识1.打开设备文件:mem是一个字符设备文件,是计算机主存的一个映像。通常只有root用户对其有读写权限。因此只有root用户能进行这些操作。如果要打开设备文件/dev/mem,需要系统调用open()函数,作用是打开一个文件或设备,其函数原型为:int open(const char *path, int flags); 返回:如果操作成功则返回一个文件描述符,否则返回-1 形参:path 被打开文件的路径即文件名描述。flags 文件的访问模式描述,可常用的选项见下: O_RDONLY 只读方式O_WRONLY 只写方式O_RDWR 可读写方式说明:此函数用于打开文件或者设备头文件:#include fcntl.h #include stat.h 定义在/usr/include/fcntl.h中2.读取内存映像:内存映像其实在内存中创建一个与外存中文件完全相同的映像。用户可以将整个文件映射到内存中,也可以将文件的一部分映射到内存中。使用操作内存的方法对文件进行操作。系统会将内存映像文件所做的改动反映到真实文件中去。在内存映像I/O的实现过程中需要用到一些系统调用:首先是创建内存映像文件的系统调用mmap()函数,其函数原型为:void *mmap(void *start, size_t length, int prot, int flags, int fd, off_t offset); 返回:成功时,返回为指向内存映像起始地址的指针,当调用失败时,返回为-1 形参:start 一个void指针,表示希望将文件映射到此指针指向的位置,通常为NULL。length 定义内存映像文件所占用的内存空间大小,以字节计。prot 内存映像文件的安全属性,注意和open函数中的flags属性保持一致。它的可使用的选项如下:Flags 含义PROT_EXEC 被映像内存可能含义机器码,可被执行PROT_NONE 映像内存不允许访问PROT_READ 映像内存可读PROT_WRITE 映像内存可写flags 内存映像的标志,选项如下:Flags 含义MAP_FIXED 指定映射起始地址,如果由start和len指定的内存区重叠于现存的映射空间,重叠部分将会被丢弃。如果指定的起始地址不可用,操作将会失败。并且起始地址必须落在页的边界上。

MAP_SHARED 与其它所有映射这个对象的进程共享映射空间。对共享区的写入,相当于输出到文件。直到msync()或者munmap()被调用,文件实际上不会被更新。

linux查看内存和CPU详解

Linux的缓存机制:Linux会针对dentry(用于VFS,加速文件路径名到inode的转换)、Buffer Cache(针对磁盘块的读写)和Page Cache(针对文件inode的读写)进行缓存操作。 操作步骤: 1、查询当前内存使用情况和释放缓存的参数 #free -m #cat /proc/sys/vm/drop_caches 2、使用sync命令,将系统缓存区中的脏数据写入磁盘中,包括已修改的i-node、已延迟的块I/O和读写映射文件。 #sync 3、配置文件/proc/sys/vm/drop_caches中记录了缓存释放的参数,含义:默认0—不释放,1—释放pagecache,2—释放dentries和inodes,3—释放所有缓存 #echo 3 > /proc/sys/vm/drop_caches echo 3 > /proc/sys/vm/drop_caches total——总物理内存 used——已使用内存,一般情况这个值会比较大,因为这个值包括了cache+应用程序使用的内存 free——完全未被使用的内存 shared——应用程序共享内存 buffers——缓存,主要用于目录方面,inode值等(ls大目录可看到这个值增加)cached——缓存,用于已打开的文件 note: Tasks: 150 total 进程总数 2 running 正在运行的进程数 148 sleeping 睡眠的进程数 0 stopped 停止的进程数 0 zombie 僵尸进程数 Cpu0: 67.4% us 用户空间占用CPU百分比 2.0% sy 内核空间占用CPU百分比 0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比 30.2% id 空闲CPU百分比 0.0% wa 等待输入输出的CPU时间百分比 0.0% hi 0.0% si 0.0% st cpu 统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。 序号列名含义 a PID 进程id

linux如何查看CPU,内存,机器型号,网卡信息

linux如何查看CPU,内存,机器型号,网卡信息 查看CPU信息(型号) # cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 8 Intel(R) Xeon(R) CPU E5410 @ 2.33GHz (看到有8个逻辑CPU, 也知道了CPU型号) # cat /proc/cpuinfo | grep physical | uniq -c 4 physical id : 0 4 physical id : 1 (说明实际上是两颗4核的CPU) PS:Jay added on 10th, May, 2011 # 其实是可能有超线程HT技术,不一定是有4核,也可能是2核4线程;当时还理解不清楚 # getconf LONG_BIT 32 (说明当前CPU运行在32bit模式下, 但不代表CPU不支持64bit) # cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l 8 (结果大于0, 说明支持64bit计算. lm指long mode, 支持lm则是64bit) 再完整看cpu详细信息, 不过大部分我们都不关心而已. # dmidecode | grep -A81 'Processor Information' 查看主板型号: # dmidecode |grep -A16 "System Information$" 内存槽及内存条: # dmidecode |grep -A16 "Memory Device$" 查看内存信息 # cat /proc/meminfo # uname -a Linux euis1 2.6.9-55.ELsmp #1 SMP Fri Apr 20 17:03:35 EDT 2007 i686 i686 i386 GNU/Linux (查看当前操作系统内核信息) # cat /etc/issue | grep Linux Red Hat Enterprise Linux AS release 4 (Nahant Update 5) (查看当前操作系统发行版信息)

Linux查看CPU和内存使用情况

Linux 查看CPU 和内存使用情况 在系统维护的过程中,随时可能有需要查看CPU 使用率,并根据相应信息分析系统状况的需要。在CentOS 中 可以通过top 命令来查看CPU 使用状况。运行top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式-- 用基于top 的命令,可以控制显示方式等等。退出 top 的命令为q (在top 运行中敲q 键一次)。 top 命令是Linux 下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows 的任务管理器 可以直接使用top 命令后,查看%MEM 的内容。可以选 择按进程查看或者按用户查看,如想查看oracle 用户的进程内存使用情况的话可以使用如下的命令: $ top -u oracle 内容解释: PID :进程的ID USER :进程所有者 PR:进程的优先级别,越小越优先被执行 NInice :值 VIRT :进程占用的虚拟内存 RES:进程占用的物理内存

SHR :进程使用的共享内存 僵死状态, N 表示该进程优先值为负数 %CPU :进程占用CPU 的使用率 %MEM :进程使用的物理内存和总内存的百分比 TIME+ :该进程启动后占用的总的 CPU 时间,即占用 CPU 使用时间的累加值。 COMMAND :进程启动命令名称 操作实例 : 即可启动 top top 的全屏对话模式可分为 3 部分:系统信息栏、命令 输入栏、进程列表栏。 第一部分 -- 最上部的 系统信息栏 第一行( top ): 00:11:04”为系统当前时刻; 3:35”为系统启动后到现在的运作时间; “2 users ”为当前登录到系统的用户,更确切的说 是登录到用户的终端数 -- 同一个用户同一时间对系统多个 终端的连接将被视为多个用户连接到系统,这里的用户数也 将表现为终端的数目; S :进程的状态。 S 表示休眠, R 表示正在运行, Z 表示 在命令行中输入 “- ” top ”

Linux查看CPU和内存使用情况

Linux查看CPU和内存使用情况 在系统维护的过程中,随时可能有需要查看CPU 使用率,并根据相应信息分析系统状况的需要。在Ce ntOS 中,可以通过top 命令来查看CPU 使用状况。运行top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式-- 用基于top 的命令,可以控制显示方式等等。退出top 的命令为q (在top 运行中敲q 键一次)。 操作实例: 在命令行中输入“top” 即可启动top top 的全屏对话模式可分为3部分:系统信息栏、命令输入栏、进程列表栏。 第一部分-- 最上部的系统信息栏: 第一行(top): “00:11:04”为系统当前时刻; “3:35”为系统启动后到现在的运作时间; “2 users”为当前登录到系统的用户,更确切的说是登录到用户的终端数-- 同一个用户同一时间对系统多个终端的连接将被视为多个用户连接到系统,这里的用户数也将表现为终端的数目; “load average”为当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数,一般的可以认为这个数值超过CPU 数目时,CPU 将比较吃力的负载当前系统所包含的进程; 第二行(Tasks): “59 total”为当前系统进程总数; “1 running”为当前运行中的进程数; “58 sleeping”为当前处于等待状态中的进程数; “0 stoped”为被停止的系统进程数; “0 zombie”为被复原的进程数; 第三行(Cpus): 分别表示了CPU 当前的使用率; 第四行(Mem): 分别表示了内存总量、当前使用量、空闲内存量、以及缓冲使用中的内存量; 第五行(Swap): 表示类别同第四行(Mem),但此处反映着交换分区(Swap)的使用情况。通常,交换分区(S wap)被频繁使用的情况,将被视作物理内存不足而造成的。 第二部分-- 中间部分的内部命令提示栏: top 运行中可以通过top 的内部命令对进程的显示方式进行控制。内部命令如下表: s - 改变画面更新频率 l - 关闭或开启第一部分第一行top 信息的表示

linux系统下查看系统信息命令

Linux的文件系统中,有一个特殊目录“/proc”,该目录下列出的文件并非保存在磁盘上,而是内存中的一个映像。在该目录下可以找到许多有意思的东西,例如: /proc/cpuinfo 本机CPU的相关信息; /proc/meminfo 本机内存及交换分区的使用信息; /proc/modules 本机已安装的硬件模块信息; /proc/mounts 本机已挂载mount 上的设备信息; 此外,该目录下有一些以数字为名称的子目录,每个子目录用于维护一个正在运行的进程,而目录名即为相应的进程ID。例如进入名称为“1” 的子目录:cd /proc/1 该目录下文件“cmdline” 中的内容为该进程运行时执行的命令行;“environ”文件中的内容为该进程运行时的环境变量信息;“stat” 文件中存放的时该进程运行的状态信息等。 通过查看“ /proc” 目录下的文件,可以获取几乎所有的系统信息及系统的运行状态信息。事实上,Linux下的诸多查询系统状态信息的命令,也是通过读取该目录下的文件而获取的。 以下是一些用于查看系统状态信息的命令: df 命令 用于查看Linux 文件系统的状态信息,显示各个分区的容量、已使用量、未使用量及挂载点等信息。如: df -k 以千字节(KB)为单位显示各分区的信息; df -a 显示所有分区,包括大小为0 的分区; df -T 显示分区类型(EXT2 或EXT3等)。 du 命令 用于查看文件或文件夹的大小。如: du -b /home 以字节为单位显示“ /home ”文件夹下各个子文件夹的大小; du -ks home 以千字节(KB)为单位显示“/home” 文件夹的总大小; top 命令(第三页有详细的图形介绍top命令) 用于实时查看系统状态信息。运行该命令后,屏幕上会显示如下信息: CPU状态(CPU states):包括用户进程占用比率、系统进程占用比率、用户的nice 优先级进程占用比率及空闲CPU资源比率等;

Linux下访问内存物理地址

Linux下访问内存物理地址 by tmsonhsut 2008.4.28 Linux内核里提供的/dev/mem驱动,为我们读写内存物理地址,提供了一个渠道。下面讲述2种利用mem设备文件进行物理地址读写的方法,一种是设备驱动的方法,另一种是系统调用的方法。 首先我们看下mem这个设备文件,/dev/mem是linux下的一个字符设备,源文件是~/drivers/char/mem.c,这个设备文件是专门用来读写物理地址用的。里面的内容是所有物理内存的地址以及内容信息。通常只有root用户对其有读写权限。 1.设备驱动的方法 下面是mem.c文件里定义的file_operations结构,提供了llseek,read,write,mmap以及open等方法。 static structfile_operationsmem_fops = { .llseek = memory_lseek, .read = read_mem, .write = write_mem, .mmap = mmap_mem, .open = open_mem, }; 因此我们可以通过一般驱动的使用方法,将内存完全当作一个设备来对对待。应用程序如下: #include #include int main(void) { intfd; char *rdbuf; char *wrbuf = "butterfly"; int i; fd = open("/dev/mem",O_RDWR); if(fd< 0) { printf("open /dev/mem failed."); } read(fd,rdbuf,10); for(i = 0;i < 10;i++) { printf("old mem[%d]:%c\n",i,*(rdbuf + i)); }

linux如何查看内存大小

linux如何查看内存大小 Linux在使用过程中,经常触及到内存大小的问题,下面,让小编带你们一起学习linux如何查看内存大小。 linux如何查看内存大小: 用free -m查看的结果: # free -m total used free shared buffers cached Mem: 504 471 32 0 19 269 -/+ buffers/cache: 183 321 Swap: 996 0 996 查看/proc/kcore文件的大小:

# ll -h /proc/kcore -r-------- 1 root root 512M 10月26 20:40 /proc/kcore 在Linux下查看内存我们一般用free命令: [root@scs-2 tmp]# free total used free shared buffers cached Mem: 3266180 3250004 16176 0 110652 2668236 -/+ buffers/cache: 471116 2795064 Swap: 2048276 80160 1968116 下面是对这些数值的解释: total:总计物理内存的大小。 used:已使用多大。

free:可用有多少。 Shared:多个进程共享的内存总额。 Buffers/cached:磁盘缓存的大小。 第三行(-/+ buffers/cached): used:已使用多大。 free:可用有多少。 第四行就不多解释了。 区别:第二行(mem)的used/free与第三行(-/+ buffers/cache) used/free的区别。这两个的区别在于使用的角度来看,第一行是从OS的角度来看,因为对于OS,buffers/cached 都是属于被使用,所以他的可用内存是16176KB,已用内存是3250004KB,其中包括,内核(OS)使用+Application(X, oracle,etc)使用的+buffers+cached. 第三行所指的是从应用程序角度来看,对于应用程序来说,

查看linux系统内存使用情况

下面和大家分享在Linux下查看内存使用情况的free命令: 下面是对这些数值的解释: total:总计物理内存的大小。 used:已使用多大。 free:可用有多少。 Shared:多个进程共享的内存总额。 Buffers/cached:磁盘缓存的大小。 第三行(-/+ buffers/cached): used:已使用多大。 free:可用有多少。 第四行就不多解释了。 区别:第二行(mem)的used/free与第三行(-/+ buffers/cache) used/free的区别。 这两个的区别在于使用的角度来看,第一行是从OS的角度来看,因为对于OS,buffers/cached 都是属于被使用,所以他的可用内存是16176KB,已用内存是3250004KB,其中包括,内核(OS)使用+Application(X, oracle,etc)使用的+buffers+cached. 第三行所指的是从应用程序角度来看,对于应用程序来说,buffers/cached 是等于可用的,因为 buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。 所以从应用程序的角度来说,可用内存=系统free memory+buffers+cached。 如上例: 2795064=16176+110652+2668236 接下来解释什么时候内存会被交换,以及按什么方交换。 当可用内存少于额定值的时候,就会开会进行交换。 如何看额定值:

用free -m查看的结果: 查看/proc/kcore文件的大小(内存镜像):

linux系统如何查看内存使用情况

在Windows系统中查看内存的使用情况很简单,想必大家都已经耳熟能详了,那么在linux系统如何查看内存使用情况呢?下面和大家分享在Linux下查看内存使用情况的free命令: [root@scs-2 tmp]# free total used free shared buffers cached Mem: 3266180 3250004 16176 0 110652 2668236 -/+ buffers/cache: 471116 2795064 Swap: 2048276 80160 1968116 下面是对这些数值的解释: total:总计物理内存的大小。 used:已使用多大。 free:可用有多少。 Shared:多个进程共享的内存总额。 Buffers/cached:磁盘缓存的大小。 第三行(-/+ buffers/cached): used:已使用多大。 free:可用有多少。 第四行就不多解释了。 区别:第二行(mem)的used/free与第三行(-/+ buffers/cache) used/free 的区别。这两个的区别在于使用的角度来看,第一行是从OS的角度来看,因为对于OS,buffers/cached 都是属于被使用,所以他的可用内存是16176KB,已用内存是3250004KB,其中包括,内核(OS)使用+Application(X, oracle,etc)使用的+buffers+cached. 第三行所指的是从应用程序角度来看,对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。 所以从应用程序的角度来说,可用内存=系统free memory+buffers+cached。

linux 查看内存使用率

root@emos ~]# top [root@emos ~]# free -m total 内存总数 used 已经使用的内存数 free 空闲的内存数 shared 不同进程间用来进行数据交换,一般都是0(多个进程共享的内存总额) buffers 是由各种进程分配的,被用在如输入队列等方面,一个简单的例子如某个进程要求有多个字段读入,在所有字段被读入完整之前,进程把先前读入的字段放在buffer中保存。: 153M cached 经常被用在磁盘的I/O请求上,如果有多个进程都要访问某个文件,于是该文件便被做成cache以方便下次被访问,这样可提供系统性能。:2718M 绿色部分: (-buffers/cache) used内存数:417M (指的第一部分Mem行中的used – buffers – cached) ( buffers/cache) free内存数: 3623M (指的第一部分Mem行中的free buffers cached) 黄色部分: 交换分区,就不说了,自己也会明白。 我们可能会纳闷儿,蓝色部分(Mem)与绿色部分(-/+ buffers/cache)的结果中,有关used和free为什么这么奇怪?我们可以从二个方面来解释: 对操作系统来讲是Mem的参数buffers和cached 都是属于被使用,它认为free只有752M。 对应用程序来讲是(-/+ buffers/cach),buffers和cached 是等同可用的,buffer和cached是为了提高程序执行的性能,当程序使用内存时,buffer和cached会很快地被使用。 以应用来看看,以(-/+ buffers/cache)的free和used为主.我们看这个就好了.Linux 为了提高磁盘和内存存取效率, 开发人员做了很多精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式:Buffer Cache和Page Cache.前者针对磁盘块的读写,后者针对文件inode的读写.这些Cache能有效缩短了I/O系统调用(比如read,write,getdents)的时间. 内存是拿来用的,不是拿来看的。不像windows,无论你的真实物理内存有多少,他都要拿硬盘交换文件来读。这也就是windows为什么有时会提示虚拟空间不足的原因。在内

linux系统-top 命令查看系统资源(CPU内存等)使用率

在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要。在Linux 中,可以通过top命令来查看 CPU 使用状况。运行top命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式 -- 用基于top的命令,可以控制显示方式等等。退出top的命令为 q (在top运行中敲 q 键一次)。 运行top 在命令行中输入“top” 即可启动top,运行后如上图所示: 如上图所示,top的全屏对话模式可分为3部分:系统信息栏、命令输入栏、进程列表栏。 第一部分 -- 最上部的系统信息栏: 第一行(top): “00:11:04”为系统当前时刻; “3:35”为系统启动后到现在的运作时间; “2 users”为当前登录到系统的用户,更确切的说是登录到用户的终端数 -- 同一个用户同一时间对系统多个终端的连接将被视为多个用户连接到系统,这里的用户数也将表现为终端的数目; “load average”为当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数,一般的可以认为这个数值超过 CPU 数目时,CPU 将比较吃力的负载当前系统所包含的进程;

第二行(Tasks): “59 total”为当前系统进程总数; “1 running”为当前运行中的进程数; “58 sleeping”为当前处于等待状态中的进程数; “0 s top ed”为被停止的系统进程数; “0 zombie”为被复原的进程数; 第三行(Cpus): 分别表示了 CPU 当前的使用率; 第四行(Mem): 分别表示了内存总量、当前使用量、空闲内存量、以及缓冲使用中的内存量; 第五行(Swap): 表示类别同第四行(Mem),但此处反映着交换分区(Swap)的使用情况。通常,交换分区(Swap)被频繁使用的情况,将被视作物理内存不足而造成的。 第二部分 -- 中间部分的内部命令提示栏: top运行中可以通过top的内部命令对进程的显示方式进行控制。内部命令如下表: s - 改变画面更新频率 l - 关闭或开启第一部分第一行top信息的表示 t - 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示 m - 关闭或开启第一部分第四行 Mem 和第五行 Swap 信息的表示 N - 以 PID 的大小的顺序排列表示进程列表(第三部分后述) P - 以 CPU 占用率大小的顺序排列进程列表(第三部分后述) M - 以内存占用率大小的顺序排列进程列表(第三部分后述) h - 显示帮助 n - 设置在进程列表所显示进程的数量 q - 退出top s - 改变画面更新周期 第三部分 -- 最下部分的进程列表栏: 以 PID 区分的进程列表将根据所设定的画面更新时间定期的更新。通过top内部命令可以控制此处的显示方式。

Linux系统信息查看命令大全(查看内存使用情况)

系统 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # hostname # 查看计算机名 # lspci -tv # 列出所有PCI设备 # lsusb -tv # 列出所有USB设备 # lsmod # 列出加载的内核模块 # env # 查看环境变量 资源 # free -m # 查看内存使用量和交换区使用量 # df -h # 查看各分区使用情况 # du -sh <目录名> # 查看指定目录的大小 # grep MemTotal /proc/meminfo # 查看内存总量 # grep MemFree /proc/meminfo # 查看空闲内存量 # uptime # 查看系统运行时间、用户数、负载 # cat /proc/loadavg # 查看系统负载 磁盘和分区 # mount | column -t # 查看挂接的分区状态 # fdisk -l # 查看所有分区 # swapon -s # 查看所有交换分区 # hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备) # dmesg | grep IDE # 查看启动时IDE设备检测状况 网络 # ifconfig # 查看所有网络接口的属性 # iptables -L # 查看防火墙设置 # route -n # 查看路由表 # netstat -lntp # 查看所有监听端口 # netstat -antp # 查看所有已经建立的连接 # netstat -s # 查看网络统计信息 进程

unix linux系统查看进程内存(UNIX Linux system view process memory)

unix linux系统查看进程内存(UNIX Linux system view process memory) Unix/linux system view process memory Classification: operating system Abstract: This paper describes the management process when the basic concept and process management tools; for example, classification of the introduction and application of the focus on process management tools, including PS, pgrep, top, kill, pkill, killall, nice and renice etc.. Catalog 1, procedures and processes; 1.1 process classification; Attribute of 1.2 process; 1.3 parent process and child process; 2, process management; 2.1 PS monitor process tool; 2.1.1 PS parameter description; Examples of 2.1.2 PS applications; 2.2 pgrep

3, the termination of the process of kill, killall, pkill tools and xkill; 3.1 kill 3.2 killall 3.3 pkill 3.4 xkill 4, top monitoring system task tools; 4.1 top command usage and parameters; Examples of 4.2 top applications; 5, process priorities: nice and renice; 6, about this article; 7, postscript; 8. Reference document; 9. Related documents; ++++++++++++++++++++++++++++++++++++++ text

Linux查看机器常用命令

1,查看磁盘 df -h 2,查看内存大小 free free [-m|g]按MB,GB显示内存 vmstat 3,查看cpu cat /proc/cpuinfo 只看cpu数量grep "model name" /proc/cpuinfo | wc -l 4,查看系统内存 cat /proc/meminfo 5,查看每个进程的情况 cat /proc/5346/status 5347是pid 6,查看负载 w uptime 7,查看系统整体状态 top

最后一些输出信息的解释: load average: 0.09, 0.05, 0.01 三个数分别代表不同时间段的系统平均负载(一分钟、五分钟、以及十五分钟),它们的数字当然是越小越好。“有多少核心即为有多少负荷”法则:在多核处理中,你的系统均值不应该高于处理器核心的总数量 进程使用的内存可以用top,有3个列VIRT RES SHR, 标示了进程使用的内存情况, VIRT标识这个进程可以使用的内存总大小, 包括这个进程真实使用的内存, 映射过的文件, 和别的进程共享的内存等. RES标识这个这个进程真实占用内存的大小. SHR标识可以和别的进程共享的内存和库大小. 8,性能监视sar命令 sar -u输出显示CPU信息。-u选项是sar的默认选项。该输出以百分比显示CPU的使用情况 CPU CPU编号 %user 在用户模式中运行进程所花的时间 %nice 运行正常进程所花的时间 %system 在内核模式(系统)中运行进程所花的时间

%iowait 没有进程在该CPU上执行时,处理器等待I/O完成的时间 %idle 没有进程在该CPU上执行的时间 sar 5 10 sar以5秒钟间隔取得10个样本 sar -u -p ALL 5 5 分cup显示 sar -n { DEV | EDEV | NFS | NFSD | SOCK | ALL } sar 提供六种不同的语法选项来显示网络信息。-n选项使用6个不同的开关:DEV | EDEV | NFS | NFSD | SOCK | ALL 。DEV显示网络接口信息,EDEV显示关于网络错误的统计数据,NFS统计活动的NFS客户端的信息,NFSD统计NFS服务器的信息,SOCK显示套接字信息,ALL显示所有5个开关。它们可以单独或者一起使用。 sar -n DEV 各参数含义 IFACE LAN接口 rxpck/s 每秒钟接收的数据包 txpck/s 每秒钟发送的数据包 rxbyt/s

查看LINUX进程内存占用情况

可以直接使用top命令后,查看%MEM的内容。可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令: (1)top top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器 可以直接使用top命令后,查看%MEM的内容。可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令: $ top -u oracle 内容解释: PID:进程的ID USER:进程所有者 PR:进程的优先级别,越小越优先被执行 NInice:值 VIRT:进程占用的虚拟内存 RES:进程占用的物理内存 SHR:进程使用的共享内存 S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数 %CPU:进程占用CPU的使用率 %MEM:进程使用的物理内存和总内存的百分比 TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。 COMMAND:进程启动命令名称 常用的命令: P:按%CPU使用率排行 T:按MITE+排行 M:按%MEM排行 (2)pmap 可以根据进程查看进程相关信息占用的内存情况,(进程号可以通过ps查看)如下所示:$ pmap -d 14596 (3)ps 如下例所示: $ ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' 其中rsz是是实际内存 $ ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | grep oracle | sort -nrk5 其中rsz为实际内存,上例实现按内存排序,由大到小

linux下查看系统CPU内存硬盘使用情况

linux下查看系统CPU内存硬盘使用情况 linux下查看系统CPU内存硬盘使用情况 用'top -i' 看看有多少进程处于Running 状态,可能系统存在内存或I/O 瓶颈,用free 看看系统内存使用情况,swap 是否被占用很多,用iostat 看看I/O 负载情况... 还有一种办法是ps -ef | sort -k7 ,将进程按运行时间排序,看哪个进程消耗的cpu时间最多。 top: 主要参数 d:指定更新的间隔,以秒计算。 q:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行。 c:显示进程完整的路径与名称。 S:累积模式,会将己完成或消失的子行程的CPU时间累积起来。 s:安全模式。 i:不显示任何闲置(Idle)或无用(Zombie)的行程。 n:显示更新的次数,完成后将会退出to 显示参数: PID(Process ID):进程标示号。 USER:进程所有者的用户名。

PR:进程的优先级别。 NI:进程的优先级别数值。 VIRT:进程占用的虚拟内存值。 RES:进程占用的物理内存值。 SHR:进程使用的共享内存值。 S:进程的状态,其中S表示休眠,R表示正在运行,Z 表示僵死状态,N表示该进程优先值是负数。 %CPU:该进程占用的CPU使用率。 %MEM:该进程占用的物理内存和总内存的百分比。 TIME+:该进程启动后占用的总的CPU时间。 Command:进程启动的启动命令名称,如果这一行显示不下,进程会有一个完整的命令行。 top命令使用过程中,还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的。 :立刻刷新。 P:根据CPU使用大小进行排序。 T:根据时间、累计时间排序。 q:退出top命令。 m:切换显示内存信息。 t:切换显示进程和CPU状态信息。 c:切换显示命令名称和完整命令行。 M:根据使用内存大小进行排序。

Linux中CPU与内存性能监测

Linux中CPU与内存性能监测(出处:) 在系统维护的过程中,随时可能有需要查看CPU 使用率内存使用情况的需要,尤其是涉及到JVM,程序调优的情况,并根据相应信息分析系统状况的需要。 top命令 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。运行top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式-- 用基于top 的命令,可以控制显示方式等等。退出top 的命令为q (在top 运行中敲q 键一次)。 可以直接使用top命令后,查看%MEM的内容。可以选择按进程查看或者按用户查看,如想查看Oracle用户的进程内存使用情况的话可以使用top -u oracle,以下为在CentOS中top命令的截图: 内容解释: 第一行(top): 15:59:14 系统当前时刻 167 days 系统启动后到现在的运作时间 1 user 当前登录到系统的用户,更确切的说是登录到用户的终端数-- 同一个用户同一时间对系统多个终端的连接将被视为多个用户连接到系统,这里的用户数也将表现为终端的数目 load average 当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数,一般的可以认为这个数值超过CPU 数目时,CPU 将比较吃力的负载当前系统所包含的进程 第二行(Tasks): 75 total 当前系统进程总数 1 running 当前运行中的进程数

74 sleeping 当前处于等待状态中的进程数 0 stoped 被停止的系统进程数 0 zombie 僵尸进程数 第三行(Cpus): 0.0% us 用户空间占用CPU百分比 0.3% sy 内核空间占用CPU百分比 0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比 99.7% id 空闲CPU百分比 0.0% wa 等待输入输出的CPU时间百分比 0.0% hi 0.0% si 0.0% st 第四行(Mem): 1018600k total 物理内存总量 798356k used 使用的物理内存总量 220244k free 空闲内存总量 180628k buffers 用作内核缓存的内存量 Swap: 192772k total 交换区总量 0k used 使用的交换区总量 192772k free 空闲交换区总量 123988k cached 缓冲的交换区总量 第五行(Swap): 表示类别同第四行(Mem),但此处反映着交换分区(Swap)的使用情况。通常,交换分区(Swap)被频繁使用的情况,将被视作物理内存不足而造成的。 0k total 交换区总量 0k used 使用的交换区总量 0k free 空闲交换区总量 420732k cached 缓冲的交换区总量 最下部分的进程列表栏: 以PID 区分的进程列表将根据所设定的画面更新时间定期的更新。通过top 内部 命令可以控制此处的显示方式: PID:进程的ID USER:进程所有者 PR:进程的优先级别,越小越优先被执行 NInice:值 VIRT:进程占用的虚拟内存 RES:进程占用的物理内存 SHR:进程使用的共享内存

动态监控linux内存并进行简单统计处理

2018-09-25至2018-09-30 学习周报 刘凯 利用top和awk命令定向监控系统的内存资源并进行相应的处理分析 上一周分享了如何使用top、mpstat、vmstat命令来监控内存资源和CPU 资源,但是这些命令有不足之处,例如top命令只能动态地显示资源使用情况,对于用户来说,有时候我们更关心的是某一项资源的实际使用情况,并且渴望能够以直观的表达方式来呈现。例如,图1所示为top命令显示的资源使用情况,但其实我们更关心RES(Resident Memory Usage)的使用情况,它表示进程实际还在占用的物理内存,但是top命令本身无法统计RES的占用总量,只是列举了每个进程各自的占用量。 现在,想要动态抽取RES并实现累加,需要利用四个命令,top、head、t ail和awk,其中head、tail命令基本上可以见名知义,不必过多解释,awk是一个极其强大的文本处理命令,可以将任何文本的内容作为处理对象进行逐行处理。编写.awk处理代码如下: BEGIN{ sum=0 print "RES total:" }

{ print $7 gsub("m","000",$7) sum += $7 } END{ print sum/1000 “M\n” } 图1 用top命令查看系统资源占用情况执行命令并统计RES总使用量(图2所示):

图2 用top命令抽取RES参数并统计总使用量 根据这种处理思路,可以自己想出很多种抽取和处理的方式,例如将上述命令以linux脚本的形式编写,加上一个循环语句就可以动态捕捉任意参数的实时变化并进行相应的处理。

linux查看系统资源

LINUX查看系统资源 1.查看磁盘 用#df –h这个命令。查看信息如下: 其中Size是总共的磁盘大小,这里是19G Used是用了多少 Avail是可用的大小。 2.查看内存大小 #free –m这个命令即可 Total:内存总大小 Used:已占用内存大小 Free:空闲内存大小 Swap:一般在linux里,swap是物理内存的2倍 3.查看cpu cat /proc/cpuinfo,显示信息如下,这是cpu一些基本信息(咱们查看时候可以忽律)

4.最后用top命令,查看所有状态 Top命令的作用是显示系统当前的进程和其他状况;top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止. 比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定. 输入#top命令,显示信息如下: 统计信息区 前五行是系统整体的统计信息。第一行是任务队列信息,同uptime 命令的执行结果。其内容如下: 08:57:45 当前时间 up 7:19系统运行时间,格式为时:分 1 user 当前登录用户数

load average: 0.00, 0.00, 0.00 系统负载,即任务队列的平均长度。 三个数值分别为1分钟、5分钟、15分钟前到现在的平均值。 第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。内容如下: Tasks: 107 total 进程总数 2 running 正在运行的进程数 105 sleeping 睡眠的进程数 0 stopped 停止的进程数 0 zombie 僵尸进程数 Cpu(s): 0.0% us 用户空间占用CPU百分比 0.3% sy 内核空间占用CPU百分比 0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比 99.7% id 空闲CPU百分比 0.0% wa 等待输入输出的CPU时间百分比 0.0% hi 0.0% si 最后两行为内存信息。内容如下: Mem: 509472k total 物理内存总量 433500k used 使用的物理内存总量 75972k free 空闲内存总量 28548k buffers 用作内核缓存的内存量 Swap: 1048568k total 交换区总量 112k used 使用的交换区总量 1048456k free 空闲交换区总量 186688k cached 缓冲的交换区总量。 内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖, 该数值即为这些内容已存在于内存中的交换区的大小。 相应的内存再次被换出时可不必再对交换区写入。 进程信息区 统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。 序号列名含义

在linux查看内存的大小

用free -m查看的结果: # free -m total used free shared buffers cached Mem: 504 471 32 0 19 269 -/+ buffers/cache: 183 321 Swap: 996 0 996 查看/proc/kcore文件的大小: # ll -h /proc/kcore -r-------- 1 root root 512M 10月26 20:40 /proc/kcore 在Linux下查看内存我们一般用free命令: [root@scs-2 tmp]# free total used free shared buffers cached Mem: 3266180 3250004 16176 0 110652 2668236 -/+ buffers/cache: 471116 2795064 Swap: 2048276 80160 1968116 下面是对这些数值的解释: total:总计物理内存的大小。 used:已使用多大。 free:可用有多少。 Shared:多个进程共享的内存总额。 Buffers/cached:磁盘缓存的大小。 第三行(-/+ buffers/cached): used:已使用多大。 free:可用有多少。 第四行就不多解释了。 区别:第二行(mem)的used/free与第三行(-/+ buffers/cache) used/free的区别。这两个的区别在于使用的角度来看,第一行是从OS的角度来看,因为对于OS,buffers/cached 都是属于被使用,所以他的可用内存是16176KB,已用内存是3250004KB,其中包括,内核(OS)使用+Application(X, oracle,etc)使用的+buffers+cached. 第三行所指的是从应用程序角度来看,对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候, buffer/cached会很快地被回收。 所以从应用程序的角度来说,可用内存=系统free memory+buffers+cached。 如上例: 2795064=16176+110652+2668236 接下来解释什么时候内存会被交换,以及按什么方交换。当可用内存少于额定值的时候,就会开会进行交换。

相关主题
文本预览
相关文档 最新文档