导航:首页 > 操作系统 > linux线程内存占用

linux线程内存占用

发布时间:2022-06-12 12:10:03

linux查看服务器cpu,内存使用情况

第一种:用 top 命令 中的cpu 信息观察
Top可以看到的cpu信息有:
Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% si
具体的解释如下:
Tasks: 29 total 进程总数
1 running 正在运行的进程数
28 sleeping 睡眠的进程数
0 stopped 停止的进程数
0 zombie 僵尸进程数
Cpu(s):
0.3% us 用户空间占用CPU百分比
1.0% sy 内核空间占用CPU百分比
0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比
98.7% id 空闲CPU百分比
0.0% wa 等待输入输出的CPU时间百分比
0.0% hi
0.0% si
0.0% wa 的百分比可以大致的体现出当前的磁盘io请求是否频繁。如果 wa的数量比较大,说明等待输入输出的的io比较多。
第二种:用vmstat
vmstat 命令报告关于线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息。由 vmstat 命令生成的报告可以用于平衡系统负载活动。系统范围内的这些统计信息(所有的处理器中)都计算出以百分比表示的平均值,或者计算其总和。
输入命令:
vmstat 2 5
如果发现等待的进程和处在非中断睡眠状态的进程数非常多,并且发送到块设备的块数和从块设备接收到的块数非常大,那就说明磁盘io比较多。
vmstat参数解释:
Procs
r: 等待运行的进程数 b: 处在非中断睡眠状态的进程数 w: 被交换出去的可运行的进程数。此数由 linux 计算得出,但 linux 并不耗尽交换空间
Memory
swpd: 虚拟内存使用情况,单位:KB
free: 空闲的内存,单位KB
buff: 被用来做为缓存的内存数,单位:KB
Swap
si: 从磁盘交换到内存的交换页数量,单位:KB/秒
so: 从内存交换到磁盘的交换页数量,单位:KB/秒
IO
bi: 发送到块设备的块数,单位:块/秒
bo: 从块设备接收到的块数,单位:块/秒
System
in: 每秒的中断数,包括时钟中断
cs: 每秒的环境(上下文)切换次数
CPU
按 CPU 的总使用百分比来显示
us: CPU 使用时间
sy: CPU 系统使用时间
id: 闲置时间

② 为什么linux下多线程程序如此消耗虚拟内存

为什么linux下多线程程序如此消耗虚拟内存,解答如下

③ Linux 内存 为什么会一直被占满

Linux的内存管理机制跟Windows是不同的!

Windows在用内存的时候同时会用硬盘上的虚拟内存,而且对程序的内存管理不够好…有些程序虽然关掉,但是会有碎片占据部分内存而且不会被自动清理,所以越用越卡…

Linux是尽量把内存全部利用起来尽量不用交换空间(所以一旦用到交换空间意味着配置低了该加内存了),而且内存管理是用过的程序暂时放在内存里面等需要再用的时候直接从内存读取,这样速度快很多!

当然如果内存满又要运行新的程序,系统会自动按照程序的重要性进行内存清理,关掉部分不重要的程序把部分内存资源交给需要运行的新程序…

④ 如何在Linux系统中,查看某个进程中线程占用cpu或内存等信息

1、查看物理CPU的个数
[root@MysqlCluster01 ~]# cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l
1
2、查看逻辑CPU的个数
[root@MysqlCluster01 ~]# cat /proc/cpuinfo |grep "processor"|wc -l
4
3、查看CPU是几核(即,核心数)
[root@MysqlCluster01 ~]# cat /proc/cpuinfo |grep "cores"|uniq
cpu cores : 4
4、查看CPU的主频
[root@MysqlCluster01 ~]# cat /proc/cpuinfo |grep MHz|uniq
cpu MHz : 2499.982
5、当前操作系统内核信息
[root@MysqlCluster01 ~]# uname -a
Linux MysqlCluster01 2.6.32-431.20.3.el6.x86_64 #1 SMP Thu Jun 19 21:14:45 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
6、当前操作系统发行版信息
[root@MysqlCluster01 ~]# cat /etc/issue
CentOS release 6.4 (Final)
Kernel \r on an \m
7、内存使用情况
[root@MysqlCluster01 ~]# free -m
total used free shared buffers cached
Mem: 7863 2738 5125 0 141 835
-/+ buffers/cache: 1761 6102
Swap: 3967 0 3967

⑤ linux查看什么线程占用内存

:14;m
7: 4
4;cpuinfo |grep "cpuinfo |grep "cache;etc/.982
5.3:45 UTC 2014 x86_64 x86_64 x86_64 GNU/.20,核心数)
[root@MysqlCluster01 ~]# cat /、当前操作系统内核信息
[root@MysqlCluster01 ~]# uname -a
Linux MysqlCluster01 2;|uniq
cpu cores : 1761 6102
Swap;issue
CentOS release 6、查看物理CPU的个数
[root@MysqlCluster01 ~]# cat /proc/、查看逻辑CPU的个数
[root@MysqlCluster01 ~]# cat /.el6;cpuinfo |grep ".4 (Final)
Kernel \proc/.32-431;physical id"、查看CPU的主频
[root@MysqlCluster01 ~]# cat /proc/.6;cpuinfo |grep MHz|uniq
cpu MHz : 7863 2738 5125 0 141 835
-/、内存使用情况
[root@MysqlCluster01 ~]# free -m
total used free shared buffers cached
Mem;|sort |uniq|wc -l
1
2.x86_64 #1 SMP Thu Jun 19 21、查看CPU是几核(即;proc/、当前操作系统发行版信息
[root@MysqlCluster01 ~]# cat /cores"|wc -l
4
3: 2499;Linux
6;r on an \+ buffers/processor"

⑥ linux 下怎么查看一个进程占用内存大小

这里介绍下查看一个进程占用内存大小的方法。

1、首先单击桌面左上角的应用程序,选择系统工具选项,如下图所示。

⑦ Linux进程的内存使用解析

进程XXX占用了多少内存?这是个经常被问到,也经常被答错的问题。linux进程的内存分配是个比较复杂的话题,而linux上的工具往往把这个问题过分简单化,因此引出不少误解和困惑。首先把ps,
top这类工具扔掉,然后看这么一个简单程序:[root@pczou
pczou]#
cat
./prog.c#i
nclude#i
nclude#i
nclude#i
nclude#define
ONEM
(1024*1024)
www.shiwu.com
int
func(){char
s[16*ONEM];char*
p;p
=
malloc(32*ONEM);pause();return
0;}int
main(){printf(pid:
%d/n,
getpid());func();return
0;}其中func()这个函数分配了32MB的内存,以及16MB的堆栈。运行一下这个prog程序,prog会停在pause()的位置,看看ps怎么说:USER
PID
%CPU
%MEM
VSZ
RSS
TTY
STAT
START
TIME
COMMANDroot
4238
0.0
0.0
52396
352
pts/0
S
21:29
0:00
./progVSZ指的是进程内存空间的大小,这里是52396KB;RSS指的是驻留物理内存中的内存大小,这里是352KB。一般系统管理员知道VSZ并不代表进程真正用到的内存,因为有些空间会仅在页表中挂个名,也就是说只是虚拟存在着,只有真正用到的时候内核才会把虚拟页面和真正的物理页面映射起来。比如,prog.c中用malloc()分配的32MB内存,由于程序中并没有用到这些内存,没有物理内存被分配,也就不应算到进程的帐上。
www.shiwu.com
进程的内存使用情况比较复杂,这是因为:进程所申请的内存不一定真正会被用到真正用到了的内存也不一定是只有该进程自己在用
(比如动态共享库)所以酒足饭饱结帐的时候,饭馆打出的帐单中往往漏洞百出,不是计入了没上的菜,就是一个菜算了两份钱。而ps给出的就是这样的糊涂帐单,不足为凭。算清楚帐的唯一办法是把每个菜都仔细过一遍,看看有没有上,有没有重复。下面的帐单要清楚多了:Virtual
memory
:
52396
KBEffective
VM
:
52120
KBMapped
:
352
KBEffective
mapped:
76.6
KBSole
use
:
72
KBPer
file
memory
useld-2.3.4.so
:
VM
94208
B,
M
90112
B,
S
8192
Bprog
:
VM
8192
B,
M
8192
B,
S
8192
Blibc-2.3.4.so
:
VM
1180
KB,
M
221184
B,
S
16384
B可以看出,虽然虚拟地址空间是52396KB,实际映射(a.k.a.
分配)的空间是352KB,这和ps给出的结果一致。再看Effective
Mapped这个值,仅为76.6
KB。这个值的计算方法是:有效的实际使用内存
=
该进程独占的内存
+
共享的内存A
/共享A的进程数目
+
共享的内存B
/共享B的进程数目
+
...比如对于一个kde应用程序kontact,它用的Qt库的虚拟地址空间为
7M,而实际映射的空间有4.5M,也就是说真正给
Qt分配物理内存大小为4.5M。假设有10个KDE应用正在运行,那么记到kontact帐上的就不应该是4.5M,而是A-A之后的0.45M。这么算帐虽然并不十分准确,但Effective
Mapped已经足以说明进程所占用内存的实际大小了。
www.shiwu.com
OK,最后用这个方法给系统中所有进程都结下帐:从上面的统计结果可以看出:虽然firefox的占用虚拟空间是最大的,但其实际占用的内存却比X
Server要少。firefox
的实际占用的内存和其RSS
(a.k.a.
mapped)差别不大,占RSS的99%;而kontact的实际占用内存却仅占RSS的63%,有27%的内存是共享的。由此可以粗略看出我用的窗口管理器是KDE而非Gnome,why?
因为Qt之类的共享库被很多KDE进程分担了。sole值可以理解为private
mapped,也就是这个进程退出后可能被释放的内存
(对于非匿名的映射页面可能还会存留一段时间)。作者
railon

⑧ linux 怎么查看进程 内存占用

ps
aux
USER
PID
%CPU
%MEM
VSZ
RSS
TTY
STAT
START
TIME
COMMAND

USER,进程所有者的用户名。

PID,进程号,可以唯一标识该进程。

%CPU,进程自最近一次刷新以来所占用的CPU时间和总时间的百分比。

%MEM,进程使用内存的百分比。

VSZ,进程使用的虚拟内存大小,以K为单位。

RSS,进程占用的物理内存的总数量,以K为单位。

TTY,进程相关的终端名。

STAT,进程状态,用(R--运行或准备运行;S--睡眠状态;I--空闲;Z--冻结;D--不间断睡眠;W-进程没有驻留页;T停止或跟踪。)这些字母来表示。

START,进程开始运行时间。

TIME,进程使用的总CPU时间。

COMMAND,被执行的命令行。

⑨ linux下,内存占用太高,需要查看哪个进程占用,查看命令是哪个

在LINUX下,内存占用太高,如果想进行查看的话,可以打开任务管理器,然后点击内存的选项,这样就可以看到当前运行的程序具体的占用空间情况

⑩ linux查看内存使用情况

linux查看内存使用情况的方法是,1,proc。meminfo,查看 RAM 使用情况最简单的方法是通过 ,procmeminfo。这个动态更新的虚拟文件实际上是许多其他内存相关工具 free ,ps ,top的组合显示。

2,atop。atop 命令是一个终端环境的监控命令。它显示的是各种系统资源,CPU, memory, network, IOkernel的综合,并且在高负载的情况下进行了彩色标注。

3,free。free 命令是一个快速查看内存使用情况的方法,它是对 ,proc,meminfo 收集到的信息的一个概述。

4,GNOME System Monitor。GNOME System Monitor 是一个显示最近一段时间内的 CPU内存交换区及网络的使用情况的视图工具。它还提供了一种查看 CPU 及内存使用情况的方法。

5,htop。htop 命令显示了每个进程的内存实时使用率。它提供了所有进程的常驻内存大小,程序总内存大小,共享库大小等的报告,列表可以水平及垂直滚动。6,KDE System Monitor功能同 4 中介绍的 GENOME 版本。

阅读全文

与linux线程内存占用相关的资料

热点内容
matlab信赖域算法 浏览:423
互联网编程难吗 浏览:390
c语言算法书籍 浏览:526
3D图怎么加密 浏览:943
单片机程序图片 浏览:186
剪应力计算法 浏览:819
如何自己搭建url跳转服务器 浏览:983
广数980tb3用g83钻孔怎么编程 浏览:576
程序员上海与北京 浏览:405
安卓手机的动态照片为什么卡 浏览:538
ad编译集成库时最常见的问题 浏览:848
matlab微分方程编程 浏览:700
安卓手机如何打开esp文件 浏览:547
什么app能安装应用 浏览:201
手机用什么app看电视剧电影好 浏览:603
导入原理图为什么文件夹不显示 浏览:658
androidapp风格 浏览:211
php取服务器url地址 浏览:293
linux时间调度算法 浏览:771
单片机最小电路详解 浏览:185