Linux proc文件系统杂记

P2P(点到点-点对点)通信实现实例 互联网上的某些知名应用,使用了P2P通信技术。这种技术,可以让没有公网IP的两个用户进行直接的通信。 这是怎么实现的呢? linux_dev_framework软件包中的p2p_server.c及p2p_client.c就是P2P通信的一个实现示例。 linux_dev_framework软件包编译后,生成的程序中,包含p2p_server.exe及p2p_client.exe两个程序。 阅读详情

一、cpu占用率相关

1. 系统总体cpu占用

/proc/stat

示例输出:

[root@test]# cat /proc/stat 
cpu  166709 34158 278899 243448347 302989 0 345 0 0 0
cpu0 84510 17883 137112 121703575 152650 0 304 0 0 0
cpu1 82199 16274 141787 121744771 150338 0 41 0 0 0
intr 75906613 128 3 0 0 1145 0 3 0 1 0 0 0 5 0 0 0 0 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10721640 10872206 50816463 1 969791 20 519 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ctxt 61301504
btime 1463641857
processes 2841411
procs_running 1
procs_blocked 0
softirq 71894122 0 9598905 245185 50867002 970583 0 1 4522038 39180 5651228


具体函义,可以查看内核源码。下面是从top命令的源码top.c中摘出的一点代码。也可以看出一些函义。

    file = fopen("/proc/stat", "r");  
    fscanf(file, "cpu  %lu %lu %lu %lu %lu %lu %lu", &new_cpu.utime, &new_cpu.ntime, &new_cpu.stime,  
            &new_cpu.itime, &new_cpu.iowtime, &new_cpu.irqtime, &new_cpu.sirqtime); 

2. 每个进程的cpu占用

/proc/pid/stat

示例输出

[root@test]# cat /proc/12/stat
12 (rcuos/0) S 2 0 0 0 -1 2129984 0 0 0 0 0 3161 0 0 20 0 1 0 2 0 0 18446744073709551615 0 0 0 0 0 0 0 2147483647 0 18446744071579888989 0 0 17 1 0 0 0 0 0 0 0 0 0 0 0 0 0

下面是从top命令的源码top.c中摘出的一点代码。也可以看出一些函义。

    /* Split at first '(' and last ')' to get process name. */  
    open_paren = strchr(buf, '(');  
    close_paren = strrchr(buf, ')');  
    if (!open_paren || !close_paren) return 1;  
  
    *open_paren = *close_paren = '\0';  
    strncpy(proc->tname, open_paren + 1, THREAD_NAME_LEN);  
    proc->tname[THREAD_NAME_LEN-1] = 0;  
      
    /* Scan rest of string. */  
    sscanf(close_paren + 1, " %c %*d %*d %*d %*d %*d %*d %*d %*d %*d %*d "  
                 "%lu %lu %*d %*d %*d %*d %*d %*d %*d %lu %ld",  
                 &proc->state, &proc->utime, &proc->stime, &proc->vss, &proc->rss);  



3. 每个线程的cpu占用

/proc/pid/task/tid/stat

示例输出

[root@test]# cat /proc/12/task/12/stat
12 (rcuos/0) S 2 0 0 0 -1 2129984 0 0 0 0 0 3161 0 0 20 0 1 0 2 0 0 18446744073709551615 0 0 0 0 0 0 0 2147483647 0 18446744071579888989 0 0 17 1 0 0 0 0 0 0 0 0 0 0 0 0 0

其格式与/proc/pid/stat格式相同
什么是数据挖掘?数据挖掘到底在解决什么问题? 本文我将借助5W1H的思想来带你从整体上了解一下数据挖掘。比如什么是数据挖掘为什么要做数据挖掘在哪些场景下用数据挖掘怎么做数据挖掘第一个问题,什么是数据挖掘?这个问题看似很简单,但似乎也很难有一个明确的答案。如果非要给数据挖掘一个定义的话,那么我认为数据挖掘就是寻找数据中隐含的知识,并用于产生商业价值。也就是说它是我们在数据中,尤其是在大量的数据中找到一些有价值,甚至是非常有价值的东西的一种手段。 阅读详情

相关推荐

【论文阅读笔记】One Shot 3D Photography

论文主页:https://facebookresearch.github.io/one_shot_3d_photography/ 代码地址:https://github.com/facebookresearch/one_shot_3d_photography   该3D照片方向,由于刚入门,所以会倾向于翻译文章。每个操作上的选择,及为什么不进行另外操作的原因都如数放上。 论文小结   本作的工作是从单张RGB图片生成一个移动视角的3D照片。   其管道大致如下: 由RGB图像通过单目深度估计网络估计深度图

时光机 °的博客 1840

linux读取内存文件,linux 用代码读取CPU,内存信息

linux有top命令可以直接查看cpu,内存等的信息,所以一开始想用top命令,把top命令中的输出信息截取对应的字符即可,但top命令默认只显示所有cpu总体的情况,要再按1才能显示每个cpu的情况,由于没有找到一种方法让top命令默认显示所有(网上看到可以修改配置,这样代码的移植性比较弱),本文直接从文件中读取对应的信息让后再计算。在Linux系统中,可以用/proc/stat文件来计算cp...

weixin_39968852的博客 541

非线性功率放大器对QAM传输BER性能的影响及补偿

1、线性功率放大器对传输性能的影响 为表述非线性功率放大器对传输性能的影响,以Saleh模型进行观察。具体来说,在QAM调制器之后添加一个非线性模块,使调制后的波形经历AM / AM和AM / PM转换。 在Saleh模型中,转换用四个参数表示,即AM / AM转换为????a和????a,AM / PM转换为????p和????p。 在Saleh模型中,AM / AM和AM / PM方程以输入电压u的大小表示为: 式中,FAM / AM是AM / AM转换的输出电压与输入电压的关系,而FAM

太阳帅帅的博客 2081

linux /proc/stat 计算线程cpu,Linux下用/proc/stat文件来计算cpu的利用率(附源码)

总的Cpu使用率计算计算方法:1、采样两个足够短的时间间隔的Cpu快照,分别记作t1,t2,其中t1、t2的结构均为:(user、nice、system、idle、iowait、irq、softirq、stealstolen、guest)的9元组;2、计算总的Cpu时间片totalCpuTimea)把第一次的所有cpu使用情况求和,得到s1;b)把第二次的所有cpu使用情况求和,得到s2;c)s2...

weixin_35089715的博客 508

Ubuntu18.04环境搭建与疑难解析:从零复现YOLO-6D姿态估计算法

本文详细介绍了在Ubuntu18.04环境下从零开始复现YOLO-6D姿态估计算法的完整流程,包括系统配置、Conda环境搭建、PyTorch安装、依赖项管理、源代码获取、数据集准备以及训练验证过程。针对Singleshotpose算法的特殊需求,提供了详细的疑难解析和性能优化技巧,帮助开发者高效完成算法复现和应用部署。

weixin_30369041的博客 457

API安全攻防实战:从信息搜集到漏洞利用的完整路径

本文详细解析了API安全攻防实战的全过程,从信息搜集到漏洞利用,涵盖了渗透测试的核心技巧和工具使用。通过真实案例展示如何发现和利用API漏洞,如HTTP方法滥用、内容类型转换攻击等,并提供企业级防御策略和测试心得,帮助安全研究人员提升API安全防护能力。

weixin_30394981的博客 434

linux下用/proc/stat文件来计算cpu的利用率(附源码)

注:本文思想借鉴博客http://www.blogjava.net/fjzag/articles/317773.html,源码为自己写的。本着尊重原创的目的请大家看他的博客,学的更多! proc文件系统介绍     /proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为内核与进程提供通信的接口。用户和应用程序可以通过/proc得到系统的

jk110333的专栏 3万+

告别混乱接线!用EPLAN 3D布局图,手把手教你搞定电气柜的3D建模与自动布线

本文详细介绍了如何使用EPLAN 3D布局图进行电气柜的3D建模与自动布线,帮助工程师告别混乱接线。从项目准备、基础结构建模到智能设备布局与逻辑定义,再到高级布线技术与问题排查,提供了一套完整的实战指南。通过EPLAN的3D功能,显著提升设计效率与系统可靠性。

weixin_30680385的博客 341

利用/proc/stat 获取cpu利用率,源代码分享

<br />【转帖请注明出处:blog.youkuaiyun.com/lanmanck】<br />有关利用/proc/stat 获取cpu利用率的原理,博友可以搜索,这里就是:<br />http://www.linuxdiyf.com/viewarticle.php?id=109486<br /> <br />我这里要给出源码,省得大家看的一头雾水,我的口号是:不求最好,但求最简,哈哈,请多支持:<br /> <br />static int getArmCpuLoad(int *procLoad, int *cp

LYJ个人博客,记录技术、八卦、生活,分享各种心得,期待与朋友们一同进步 4145

机器人控制仿真软件:MATLAB Simulink Control System Toolbox_(1).MATLAB基础知识

MATLAB(Matrix Laboratory)是由MathWorks公司开发的一种高性能数值计算和可视化软件。它广泛应用于科学计算、工程设计、信号处理、控制系统设计、图像处理等领域。强大的矩阵运算能力:MATLAB的核心是矩阵运算,能够高效处理大规模的数值数据。丰富的工具箱:MATLAB提供了大量的工具箱,如Control System Toolbox、Simulink、Signal Processing Toolbox等,这些工具箱覆盖了多个应用领域。易于使用的图形界面。

kkchenjj的博客 907

Natural Language Processing

作者:禅与计算机程序设计艺术 1.简介 自然语言处理(NLP)是研究如何使计算机理解和处理自然语言的理论和方法,目的是让电脑更好的理解、获取、生成、存储和沟通人类语言。20世纪80年代末,IBM的三位博士陈天奇、周博磊和王力雄在贝尔实验室创建了首个自然语言处理系统——“布莱克多·艾森豪威尔”(Bletc

AI天才研究院 727

通过/proc/stat文件计算CPU的利用率

在linux下,CPU利用率分为 用户态、系统态和空闲态,分别表示CPU处于用户态执行的时间,系统内核执行的时间,和空闲系统进程执行的时间。CPU使用率:CPU的使用情况用户时间(User time) 表示CPU执行用户进程的时间,包括nices时间.通常期望用户空间CPU越高越好系统时间(System time) 表示CPU在内核运行时间,包括IRQ和softirq时间,系统CPU占用率高,表

Gino的专栏 2010

别再写XPath改DOM了!用OpenClaw零代码搞定爬虫全流程(抓取+清洗+存储)

免费版的大模型调用次数有限制(每天100次),但企业版是无限的,还能私有化部署;大模型分析DOM结构有时候会慢1-2秒,但比起节省的时间,完全可以接受;自定义Skill的文档还不够完善,但社区很活跃,有问题在Discord里问,很快就能得到回复。但总的来说,OpenClaw真的改变了我写爬虫的方式——以前我是“代码的奴隶”,现在我是“需求的提出者”,把时间花在更有价值的业务逻辑上,而不是重复繁琐的DOM调试上。如果你也在被传统爬虫折磨,强烈建议你试试OpenClaw,相信我,用了就回不去了。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1314

《Linux杂记》查看Linux系统信息

我们在使用一套装有Linux系统的设备后,免不了要查看其系统资源。 1 CPU型号 查看cpu型号 #cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 可以看到有2个逻辑CPU,同时也知道了CPU型号 查看物理cpu颗数 #cat /proc/cpuinfo | grep physical | uniq -c 说明实际上是4颗1核的CPU。 查看CPU运行模式 #getconf LONG_BIT 说明当前CPU运行在64bit模式下,也说明该系统

不问归期的博客 700

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

--杂记--

【代码】--杂记--

weixin_44929464的博客 365

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

linux杂记

Linux可划分为:linux内核、GNU工具、图形化桌面环境、应用软件。 内核主要负责:系统内存管理、软件程序管理、硬件设备管理、文件系统管理。 交换空间:内核通过硬盘上的存储空间来实现虚拟内存的这块区域。一、linux内核 内存管理 :分段分页 软件程序管理: 内核控制着linux系统如何管理运行在系统上的所有进程。内核创建的第一个进程称为init进程,它是用来启动系统上所有其他进程

王旭—201706毕业—实习生—后台开发 390

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

《Linux杂记》查看Linux内核版本的命令

方法一: 命令: uname -a 作用: 查看系统内核版本号及系统名称。 方法二: 命令: cat /proc/version 作用: 查看目录”/proc”下version的信息,也可以得到当前系统的内核版本号及系统名称 补充说明:   /proc文件系统,它不是普通的文件系统,而是系统内核的映像,也就是说,该目录中的文件是存放在系统内存之中的,它以文件系统的方式为访...

不问归期的博客 2509

linux目录杂记

linux目录是一个倒树状结构的分类,其中有/bin 常用的二进制命令目录/boot linux内核及引导系统程序所需要的文件目录/dev 设备文件目录,比如声卡,磁盘/etc 常用的二进制安装包的配置文件的目录 很重要/home 普通用户的家目录存放目录/lib 库文件存放目录/lost+found 在ext3文件系统中,当系统意外崩溃或技巧意外关闭 产生的碎片...

weixin_34279061的博客 73

2.13 课堂杂记

2.13 课堂杂记[@more@]/boot 目录下 vmlinuz-2.6.26-2-686是内核proc为虚拟文件系统,是内核运行的一个映像shfit + PageOn/PageDown 文本模式的上下翻屏alt + F7 ...

coffee1234567的博客 108

linux系统杂记

linux系统杂记

weixin_45361710的博客 315

运维杂记

1. 有个问题,在linux上只有一个cpu来处理中断,如果机器上的网卡特别繁忙的时候,有大量的小的数据包,需要解包,封装的话,会造成一颗cpu比较繁忙,您是怎么处理这样的问题的啊?        解决方案是:关闭irqbalance服务,然后通过设置/proc/irq/IRQ/smp_affinity,将网卡的硬中断人工分布在多个CPU内核上,软中断也会跟随硬中断分布到多个CPU内核上,解决某

Sarah Cla的专栏 604

_杂记_linux_

1.查看内核打印:  $cat /proc/kmsg > log2.内核版本信息:  $uname

b02042236的专栏 654

杂记:守护进程or守护进程脚本

的作用就是让标准输出重定向到/dev/null中(丢弃标准输出),然后错误输出由于重用了标准输出的描述符,所以错误输出也被定向到了/dev/null中,错误输出同样也被丢弃了。执行了这条命令之后,该条shell命令将不会输出任何信息到控制台,也不会有任何信息输出到文件中。这条命令的作用是错误输出将和标准输出同用一个文件描述符,说人话就是错误输出将会和标准输出输出到同一个地方。为了防止进程异常挂掉,为了避免影响业务,编写一个守护进程,定时检查某个进程是否存在,如果不存在则自动启动该进程。

qq_22560021的博客 661

Linux系统管理实战:从基础命令到高效运维技巧

Linux作为开源操作系统的代表,其核心价值在于高效的命令行操作和灵活的系统配置。通过Shell脚本和命令行工具,开发者可以实现自动化运维、批量文件处理等复杂任务。理解Linux文件系统布局、进程管理和权限控制等基础概念,是掌握系统管理的关键。在实际应用中,诸如sed/awk文本处理、网络诊断工具链、以及Docker容器适配等场景,都体现了Linux在服务器领域的统治力。本文特别分享`!$`参数复用和`ctrl+r`历史命令搜索等高效技巧,配合`htop`进程监控和`crontab`定时任务等实用工具,可显

weixin_34161083的博客 685

linux系统需要备份吗,准备好了吗?请备份你的Linux系统

一、我们需要备份什么?我的 Linux 系统是基于 Redhat 的Redhat Linux 9.0,同时配置了诸如 MySQL、PHP、Apache 等基础服务,同时又配有 Awstats、MRTG、MT 等应用服务程序,因此,我们需要备份的除了系统本身的重要文件以外,还需要备份数据库、log文件和统计数据文件等。当然另外一项必不可少的就是编译各项服务时的 ./configure 参数,这里就不...

weixin_39611413的博客 331

Linux下通过proc获取监测信息

最近项目中需要在linux操作系统下定时监测一些状态信息,如cpu使用率,ddr使用率,网卡带宽,硬盘使用率等。自己写代码时发现很多东西都可以从proc内存文件系统中读到,linux实在太强大了。这里把我写的代码整理在这里,供参考。 common的 /* * common.h * * Created on: 2018��8��16�� * Author: Admini...

无知的我 4344
上一篇: C程序的基础系统代码
下一篇: samba服务器的配置
无忧老猪
博客等级 码龄18年 200粉丝 112原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值