操作系统复习——如何查看一个进程的详细信息,如何追踪一个进程的执行过程 ,如何在 Linux 系统下查看 CPU、内存、磁盘、IO、网卡情况?epoll和select区别?
1. 如何查看一个进程的详细信息,如何追踪一个进程的执行过程
通过pstree命令(根据pid)进行查询进程内部当前运行了多少线程:# pstree -p 19135(进程号)
使用
top
命令查看(可以查看到线程情况)
# top -Hp 19135
2. 跟踪某个应用程序的运行过程
跟踪已运行的进程:strace -p pid
3. 在 Linux 系统下查看 CPU、内存、磁盘、IO、网卡情况:
# cat /proc/cpuinfo # 查看CPU信息
# ps -ef # 查看所有进程
# top # 实时显示进程状态
# hdparm -i /dev/hda # 查看磁盘参数
# grep MemTotal /proc/meminfo # 查看内存总量
# hostname # 查看计算机名
# uptime # 查看系统运行时间、用户数、负载
# fdisk -l # 查看所有分区
都是多路I/O机制的解决方案,
区别(epoll相对select的区别):select的句柄数目受限,epoll的最大好处是不会随着FD的数目增长而降低效率,使用mmap加速内核与用户空间的消息传递。
5. 查看一个进程的端口号:
如果知道进程ID的话就直接利用:netstat -anp | grep 进程ID 就可以查询出来了。
不然就用ps命令查看进程ID:ps -ef | grep 进程名