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#如何读取当前进运的进程及进程占有的内存大小等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)