如何按占用内存大小查看Linux下的进程

如何按占用内存大小查看Linux下的进程,第1张

那么如何按占用内存大小查看Linux下的进程呢?

ps

常用参数

-A 所有进程均显示出来

-a 不与terminal有关的所有进程

-u 有效使用者相关的进程

-x 通常与a一起用,可列出较完整信息

按内存大小排序

ps -aux默认是按PID从小到大显示的,若想按占用内存大小排序则需要借助另外sort命令针对第4列(内存所在列)排序:

ps -aux | sort -k4rn

如果我们只想看前n个进程, 还可以借助head命令,比如查看前10个占用内存最大的进程:

ps -aux | sort -k4rn | head -n 10

我们还可以借助awk来指定显示哪几列信息:

ps -aux |awk '{print $2, $4, $11}' | sort -k2rn | head -n 10

注意:我们先用awk指定了要显示的列, 这时sort的参数也要变化了

top

常用参数

-d: 后面加数字指定数据刷新的频率, 预设是5秒

-p: 指定某些个pid进行观察

top执行过程中可使用的按键命令

: 显示top中可以输入的按键命令

P: 以cpu使用率排序显示

M: 以内存使用率排序显示

N: 以PID排序显示

查看一下数据库现有的进程数,是否已经达到参数processes的大小

   -- select count() from v$process;  取得数据库目前的进程数。

   -- select value from v$parameter where name = 'processes'; 取得进程数的上限

(1)查看当前会话数、processes和sessions值,发现session数14和processes值150已经非常接近

SQL> select count() from v$session;

  COUNT()

----------

       146

SQL> show parameter processes

NAME                                 TYPE                   VALUE

------------------------------------ ------------------------------

aq_tm_processes                      integer                0

db_writer_processes                  integer                2

gcs_server_processes                 integer                0

job_queue_processes                  integer                10

log_archive_max_processes            integer                2

processes                            integer                150

(2) Modify the two parameter(processes,sessions)

SQL> alter system set processes=300 scope=spfile;

System altered

SQL> alter system set sessions=335 scope=spfile;

System altered

(3) Let's shutdown and startup database in order to let the two parameter taken effect

SQL> shutdown immediate;

Database closed

Database dismounted

ORACLE instance shut down

SQL> startup        

ORACLE instance started

Total System Global Area 1610612736 bytes

Fixed Size                  2030456 bytes

Variable Size             989856904 bytes

Database Buffers          603979776 bytes

Redo Buffers               14745600 bytes

Database mounted

Database opened

SQL> exit

Disconnected from Oracle Database 10g Enterprise Edition Release 102030 - 64bit Production

With the Partitioning, OLAP and Data Mining options

$ sqlplus /nolog

(4) test the result

SQLPlus: Release 102030 - Production on 星期五 12月 9 09:53:13 2011

Copyright (c) 1982, 2006, Oracle  All Rights Reserved

SQL> conn sys/oracle@orcl as sysdba

Connected

SQL> 

--the end

废话少说,上代码

Process CurrentProcess = ProcessGetCurrentProcess();

CurrentProcessIdToString();//PID

((Double)(CurrentProcessTotalProcessorTimeTotalMilliseconds-CurrentProcessUserProcessorTimeTotalMilliseconds))ToString();//CPU

(CurrentProcessWorkingSet64 / 1024 / 1024)ToString() + "M (" + (CurrentProcessWorkingSet64 / 1024)ToString() + "KB)";//占用内存

CurrentProcessThreadsCountToString();//线程

以上就是关于如何按占用内存大小查看Linux下的进程全部的内容,包括:如何按占用内存大小查看Linux下的进程、查看一下数据库现有的进程数,是否已经达到参数processes的大小、C#如何读取当前进运的进程及进程占有的内存大小等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9350273.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存