查看LINUX进程内存占用情况
查看 LINUX 进程内存占用情况 Linux 操作系统中查看进程内存占用情况是系统管理员和开发人员日常任务中非常重要的一部分。通过查看进程内存占用情况,可以了解系统中进程的资源占用状况,故障排查和性能优化。下面是查看 LINUX 进程内存占用情况的多种方法: 1. 使用 top 命令 top 命令是 Linux 下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况。可以直接使用 top 命令后,查看 %MEM 的内容。可以选择按进程查看或者按用户查看,如想查看 oracle 用户的进程内存使用情况的话可以使用如下的命令: $ top -u oracle 其中,top 命令的输出结果包括以下信息: * PID:进程的 ID * USER:进程所有者 * PR:进程的优先级别,越小越优先被执行 * NInice:值 * VIRT:进程占用的虚拟内存 * RES:进程占用的物理内存 * SHR:进程使用的共享内存 * S:进程的状态。S 表示休眠,R 表示正在运行,Z 表示僵死状态,N 表示该进程优先值为负数 * %CPU:进程占用 CPU 的使用率 * %MEM:进程使用的物理内存和总内存的百分比 * TIME+:该进程启动后占用的总的 CPU 时间,即占用 CPU 使用时间的累加值 * COMMAND:进程启动命令名称 2. 使用 pmap 命令 pmap 命令可以根据进程查看进程相关信息占用的内存情况,进程号可以通过 ps 查看。例如: $ pmap -d 14596 3. 使用 ps 命令 ps 命令可以查看进程的详细信息,包括进程的内存占用情况。例如: $ ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' 其中,rsz 是实际内存,可以通过 grep 命令过滤出 oracle 用户的进程信息: $ ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | grep oracle | sort -nrk5 Linux 上如何查看某个进程的线程 在 Linux 中,线程是现代操作系统上进行并行执行的一个流行的编程方面的抽象概念。当一个程序内有多个线程被叉分出用以执行多个流时,这些线程就会在它们之间共享特定的资源(如,内存地址空间、打开的文件),以使叉分开销最小化,并避免大量高成本的 IPC(进程间通信)通道。 以下是查看 Linux 上某个进程的线程的几种方式: 1. 使用 ps 命令 在 ps 命令中,“-T”选项可以开启线程查看。下面的命令列出了由进程号为<pid>的进程创建的所有线程。 $ ps -T -p <pid> 其中,“SID”栏表示线程 ID,而“CMD”栏则显示了线程名称。 2. 使用 top 命令 top 命令可以实时显示各个线程情况。要在 top 输出中开启线程查看,请调用 top 命令的“-H”选项,该选项会列出所有 Linux 线程。在 top 运行时,你也可以通过按“H”键将线程查看模式切换为开或关。 $ top -H 要让 top 输出某个特定进程<pid>并检查该进程内运行的线程状况: $ top -H -p <pid> 3. 使用 htop 命令 htop 命令是一个对用户更加友好的方式,通过 htop 查看单个进程的线程,它是一个基于 ncurses 的交互进程查看器。该程序允许你在树状视图中监控单个独立线程。要在 htop 中启用线程查看,请开启 htop,然后按<F2>来进入 htop 的设置菜单。选择“设置”栏下面的“显示选项”,然后开启“树状视图”和“显示自定义线程名”选项。按<F10>退出设置。 现在,你就会看到下面这样单个进程的线程视图。