这些东西只在/proc/xxxx/下的statm maps memmap 里有体现
你只需要查看这些虚拟文件在linux内核的实现即可
例如cat /proc/1/statm ,出来的7组数据里,第二组就是进程1的物理内存使用量,单位是当前内核的PAGE_SIZE
具体说明详见 Documentation/filesystems/proc.txt
具体实现就是fs/proc/array.c 下的
C/C++ code?123456789101112131415int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns,struct pid *pid, struct task_struct *task){unsigned long size = 0, resident = 0, shared = 0, text = 0, data = 0 struct mm_struct *mm = get_task_mm(task)if (mm) {size = task_statm(mm, &shared, &text, &data, &resident) mmput(mm) }seq_printf(m, "%lu %lu %lu %lu 0 %lu 0\n",size, resident, shared, text, data)return 0}
这个函数改成你需要的结果,只有一个难点,就是根据pid得到对应的 task_struct。
不知道有没现成的api。遍历查找一下全局 task_struct链表应该不难解决
当然可以。方法:
工具/原料:
Linux version 3.19.0-15-generic Ubuntu 4.9.2-10ubuntu13
方法/步骤
1/4分步阅读
第一种方法:/proc/meminfo
>>/proc文件夹中的meminfo文件可以提供内存信息。
2/4
>>cd /proc 进入/proc文件夹
3/4
>>dir可以看到该文件夹中的meminfo文件
4/4
>>more meminfo查看该文件的内容。
PS:Linux是一套免费使用和自由传播的类Unix *** 作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的 *** 作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络 *** 作系统。
分享一些在Linux中,查看内存信息的命令,不明觉厉,希望以后用的到
1. 查看内存插槽数,已使用插槽数,每条内存多大
sudo dmidecode|grep -P -A 5 "Memory/s+Device" | grep Size|grep -v Range
2.%20支持的最大内存容量
sudo%20dmidecode%20|%20grep%20-P%20'Maximum/s+Capacity'
公司的电脑居然只支持4G,,本来还想申请根4G的内存条呢。
3. 查看内存频率
sudo dmidecode | grep -A16 "Memory Device"|grep 'Speed'
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)