linux – 如何查看ubuntu中程序使用的内存?

如何查看应用程序使用的原始内存数据?比如,假设我有一个文件名something.sh.现在我运行命令./something.sh,然后我想看看它在ram中访问的所有数据以及它在我的文件系统中访问的所有文件,网络数据或它使用的连接.可能是所使用的内存的十六进制转储这个应用程序.我可以在ubuntu中这样做吗?

解决方法:

How can I see the raw memory data used by an application…

获得进程’PID(例如,使用ps(1)pidof(8))后,您可以使用/ proc / PID / maps和/ proc / PID / mem访问其虚拟地址空间中的数据. Gilles wrote a very detailled answer about that here.

… and all the files its accessing in my filesystem, network data or connections

lsof可以做到这一点. netstat可能更适合与网络相关的描述符.例如 :

$netstat -tln    # TCP connections, listening, don't resolve names.
$netstat -uln    # UDP endpoints, listening, don't resolve names.
$netstat -tuan   # TCP and UDP, all sorts, don't resolve names.
$lsof -p PID     # "Files" opened by process PID.

注意:netstat的-p开关将允许您打印与每一行相关联的进程(至少是您的进程).要选择特定的进程,您只需使用grep:

$netstat -tlnp | grep skype    # TCP, listening, don't resolve (Skype).

有关这些工具的更多信息:netstat(8)lsof(8).另请参阅:proc(5)(以及其他答案中提到的工具).

上一篇:linux – 监控Firefox中选项卡的CPU%


下一篇:linux – 查看Postgresql内存使用情况