开始记录一些东西

发布新日志

  • UNIX内存占用基本检查

    2009-10-26 14:25:53

     1: 使用top指令.

      top指令是按cpu占用率排序的,如果想一次获得所有进程的快照,使用命令

    top -n [最大进程数] -f 输出到文件,比如top -n 1000 -f topsnapshot.log

      top指令输出内存的统计信息包括

    Memory: 2614368K (2249100K) real, 5838616K (5264696K) virtual, 113028K free  Page# 1/1
    其中没有括号起来的是总数,括号括起来的部分是活动进程使用的内存数,free则是真实空闲的物理内存数.

    进程信息的列包括

    CPU TTY  PID USERNAME PRI NI   SIZE    RES STATE    TIME %WCPU  %CPU COMMAND

    和内存相关的只有SIZE和RES

    SIZE:任务的代码加上数据再加上栈空间的大小。 
    RES:任务使用的物理内存的总数量

    要检查进程是否有内存泄露,和实际占用的内存大小,看RES列即可.

    2:检查共享内存占用的内存容量

    使用ipcs -m -b命令,-m表示检查共享内存,-b表示输出每个内存的字节数,得到的共享内存信息输出列包括:

    T         ID     KEY        MODE        OWNER     GROUP      SEGSZ

    SEGSZ列则是字节数.把每列相加则是共享内存占用的内存总数.

    3: 调整内核动态高速缓冲区参数

    HP-UX某些型号的服务器运行的时候需要几乎1G的内存维持系统运行,比如作为设备缓冲什么的.

    可以用kmtune命令检查内核配置参数,动态高速缓冲区参数dbc_min_pct 和 dbc_max_pct参数表示一个高速缓冲区允许的可用内存的最小和最大百分比,dbc_max_pct的缺省值是50,一般设置为10即可.

    4:在HP-UX上还可以使用glance

    glance是个很强的工具,可惜不是免费的....

  • shell 中使用等号前后,不要有空格

    2009-05-06 16:33:42

    i=`expr $i - 1`

    i=的前后都不要有空格,但是expr 中运算符号前后必须是有空格的,两边都要有

  • 常用unix命令用法 - top/prstat命令

    2008-09-25 09:50:27

     


    在Solaris上安装TOP

    系统使用X86的Solaris 9,所以从下载top-3.5.1-sol9-intel-local.gz
    # gzip -d top-3.5.1-sol9-intel-local.gz
    # pkgadd -d top-3.5.1-sol9-intel-local

    如果未安装top,Soralis下可用prstat代替!

    top命令详解

    1.top命令的作用
    top命令用来显示执行中的程序进程和其他状况,使用权限是所有用户;top命令提供了实时的对系统处理器的状态监视,如果在前台执行该命令,它将独占前台,直到用户终止该程序为止;该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定.

    2. 使用参数说明
    d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
    n 显示更新的次数,完成后将会退出top

    3. 交互命令:
    [Space] 立即刷新显示
    [h] 显示帮助屏幕
    [k] 杀死某进程。你会被提示输入进程 ID 以及要发送给它的信号。 一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。
    [n] 改变显示的进程数量。你会被提示输入数量。
    [u] 按用户排序。
    [M] 按内存用量排序。
    [o][O] 改变显示项目的顺序。
    [P] 根据CPU使用百分比大小进行排序。
    [T] 根据时间/累计时间进行排序。
    [Ctrl+L] 擦除并且重写屏幕。
    [q] 退出程序。
    [r] 重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。
    [S] 切换到累计模式。
    [s] 改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。

    4. 显示说明
    ======================================================================
    17:31:42 up 18 days, 23:38, 1 user, load average: 0.00, 0.00, 0.00
    当前时间 系统运行时间 当前用户数 平均负责(1、5、10分钟)
    ======================================================================
    94 processes: 93 sleeping, 1 running, 0 zombie, 0 stopped
    进程总数 休眠进程数 运行进程数 僵死进程数 终止进程数
    ======================================================================
    CPU states: cpu user nice system irq softirq iowait idle
    total 0.0% 0.0% 0.1% 0.0% 0.0% 0.0% 99.8%
    cpu00 0.0% 0.0% 0.3% 0.0% 0.0% 0.0% 99.6%
    cpu01 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 100.0%
    cpu状态 用户占用 优先.. 系统.. 中断 软中断 ?? 空闲
    ======================================================================
    Mem: 3094664k av, 2627700k used, 466964k free, 0k shrd, 120776k buff
    1434068k actv, 155972k in_d, 41624k in_c
    Swap: 2048248k av, 130068k used, 1918180k free 1319416k cached
    内存使用情况:可用内存,已使用内存,空闲内存.......
    swap情况:
    =======================================================================
    PID USER PRI NI SIZE RES SHARE STAT %CPU %MEM TIME CPU COMMAND
    9590 root 25 0 172M 172M 11740 S 4.3 5.7 0:17 0 java
    PID 每个进程的ID
    USER 进程所有者的用户名
    PRI 每个进程的优先级别
    NI 每个优先级的值
    SIZE 进程的代码大小加上数据大小再加上堆栈空间大小的总数,单位是KB
    RES 进程占用的物理内存的总数量,单位是KB
    SHARE 进程使用共享内存的数量
    STAT 进程的状态。其中S代表休眠状态;D代表不可中断的休眠状态;R代表运行状态;Z代表僵死状态;T代表停止或跟踪状态
    %CPU 进程自最近一次刷新以来所占用的CPU时间和总时间的百分比
    %MEM 进程占用的物理内存占总内存的百分比
    TIME 进程自启动以来所占用的总CPU时间
    CPU CPU标识
    COMMAND 进程的命令名称

Open Toolbar