如何获取系统信息
2006-11-01 12:48
204 查看
查看系统信息
cat /proc/cpuinfo - CPU (i.e. vendor, Mhz, flags like mmx)
cat /proc/interrupts - 中断
cat /proc/ioports - 设备IO端口
cat /proc/meminfo - 内存信息(i.e. mem used, free, swap size)
cat /proc/partitions - 所有设备的所有分区
cat /proc/pci - PCI设备的信息
cat /proc/swaps - 所有Swap分区的信息
cat /proc/version - Linux的版本号 相当于 uname -r
uname -a - 看系统内核等信息
(1) 处理器使用率
(2) 内存使用率
(3) 流入流出数据包
(4) 整体网络负载
这些数据分别要从/proc/stat、/proc/net/dev、/proc/meminfo三个文件中提取。如里有问题或对要提取的数据不太清楚,可以使用man proc来查看proc文件系统的联机手册。
(1) 处理器使用率
这里要从/proc/stat中提取四个数据:用户模式(user)、低优先级的用户模式(nice)、内核模式(system)以及空闲的处理器时间(idle)。它们均位于/proc/stat文件的第一行。CPU的利用率使用如下公式来计算。
CPU利用率 = 100 *(user + nice + system)/(user + nice + system + idle)
(2) 内存使用率
这里需要从/proc/meminfo文件中提取两个数据,当前内存的使用量(cmem)以及内存总量(amem)。
内存使用百分比 = 100 * (cmem / umem)
(3)网络利用率
为了得到网络利用率的相关数据,需要从/proc/net/dev文件中获得两个数据:从本机输出的数据包数,流入本机的数据包数。它们都位于这个文件的第四行。
性能收集程序开始记录下这两个数据的初始值,以后每次获得这个值后均减去这个初始值即为从集群启动开始从本节点通过的数据包。
利用上述数据计算出网络的平均负载,方法如下:
平均网络负载 = (输出的数据包+流入的数据包) / 2
获取cpu和内存的还有2种方法:
1)top
top -n 1 -p [pid1,pid2,,,] >>topinfo.txt
打开topinfo.txt就能获取进程的内存cpu信息。
2)ps
ps -aux|grep [pid name]|grep -v grep
获取到进程的内存cpu信息,其信息更加精练。
从以上来看,由于多线程程序cpu切换是与进程一样,因此无法体现真实的cpu使用率,要将上面方法综合使用才能获取到真实合理的系统信息。
cat /proc/cpuinfo - CPU (i.e. vendor, Mhz, flags like mmx)
cat /proc/interrupts - 中断
cat /proc/ioports - 设备IO端口
cat /proc/meminfo - 内存信息(i.e. mem used, free, swap size)
cat /proc/partitions - 所有设备的所有分区
cat /proc/pci - PCI设备的信息
cat /proc/swaps - 所有Swap分区的信息
cat /proc/version - Linux的版本号 相当于 uname -r
uname -a - 看系统内核等信息
(1) 处理器使用率
(2) 内存使用率
(3) 流入流出数据包
(4) 整体网络负载
这些数据分别要从/proc/stat、/proc/net/dev、/proc/meminfo三个文件中提取。如里有问题或对要提取的数据不太清楚,可以使用man proc来查看proc文件系统的联机手册。
(1) 处理器使用率
这里要从/proc/stat中提取四个数据:用户模式(user)、低优先级的用户模式(nice)、内核模式(system)以及空闲的处理器时间(idle)。它们均位于/proc/stat文件的第一行。CPU的利用率使用如下公式来计算。
CPU利用率 = 100 *(user + nice + system)/(user + nice + system + idle)
(2) 内存使用率
这里需要从/proc/meminfo文件中提取两个数据,当前内存的使用量(cmem)以及内存总量(amem)。
内存使用百分比 = 100 * (cmem / umem)
(3)网络利用率
为了得到网络利用率的相关数据,需要从/proc/net/dev文件中获得两个数据:从本机输出的数据包数,流入本机的数据包数。它们都位于这个文件的第四行。
性能收集程序开始记录下这两个数据的初始值,以后每次获得这个值后均减去这个初始值即为从集群启动开始从本节点通过的数据包。
利用上述数据计算出网络的平均负载,方法如下:
平均网络负载 = (输出的数据包+流入的数据包) / 2
获取cpu和内存的还有2种方法:
1)top
top -n 1 -p [pid1,pid2,,,] >>topinfo.txt
打开topinfo.txt就能获取进程的内存cpu信息。
2)ps
ps -aux|grep [pid name]|grep -v grep
获取到进程的内存cpu信息,其信息更加精练。
从以上来看,由于多线程程序cpu切换是与进程一样,因此无法体现真实的cpu使用率,要将上面方法综合使用才能获取到真实合理的系统信息。
相关文章推荐
- 如何用帮助系统获取PowerShell可用命令信息
- 【UWP开发】如何通过UWP获取系统用户Gamertag或者UserName等用户信息
- 如何用C语言获取系统的sid信息?
- 如何获取系统的串口信息
- Java如何获取系统cpu、内存、硬盘信息
- iOS如何获取屏幕宽高、设备型号、系统版本信息
- 如何在linux系统上获取命令的帮助信息
- 【UWP开发】如何通过UWP获取系统用户Gamertag或者UserName等用户信息
- 如何用帮助系统获取PowerShell可用命令信息
- 如何在Linux系统上获取命令的帮助信息
- 在C#中如何获取系统中所安装的所有软件信息,还有如何打开系统中某个程序
- 如何获取iphone的硬件版本以及系统信息
- Java如何获取系统cpu、内存、硬盘信息
- 如何获取iphone的硬件版本以及系统信息
- SQL 利用INFORMATION_SCHEMA系统视图如何一步一步获取表的主外键信息
- 【原创】如何获取系统目录和文件信息
- linux系统上获取命令的帮助信息,man文档的章节是如何划分的
- 如何获取系统默认的时区信息