首页
学习
活动
专区
圈层
工具
发布

python统计httpd 进程的内存占

本文结构: 介绍用命令行如何统计内存占用百分比 介绍用python 如何通过读取进程文件,统计进程的内存总大小,然后计算占系统内存的百分比 第一部分: 在linux 下,统计apache 进程的内存使用百分比...,有很多方法: 使用命令将所有apache 的进程进行统计,然后相加,然后和系统的物理内存相除,求百分比。...如果使用python 那么可以怎么实现?可以通过读取文件,获取各个apache 进程的VmRSS(物理内存)大小,以及系统的总内存。 2.1 通过什么文件查看进程占用内存的信息?...2.3 知道了apache 的pid 号,还有在什么文件查看内存使用情况,就可以写python 脚本了,先统计所有的pid号: #!... 的命令,需要使用subprocess 模块 """定义一个函数,用于获取所有的httpd 的pid号""" def  getPid():     p = Popen(["pidof", "httpd

1.8K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    dotnet 6 使用 HttpWebRequest 进行 POST 文件将占用大量内存

    我有用户给我报告一个内存不足的问题,经过了调查,找到了依然是使用已经被标记过时的 HttpWebRequest 进行文件推送,推送过程中,由于 System.Net.RequestStream 将会完全将推送的文件全部读取到内存...return bytes; } } } 也如上面代码的注释,在 .NET 6 使用此方法 POST 一段大一点的数据,将会非常的浪费内存。...使用 MemoryStream 时,申请的内存都是两倍两倍申请的,超过 500MB 的数据,将会在 MemoryStream 申请 1GB 的内存空间,对于 x86 的应用来说,基本上能用的内存就是只有...这是一个很浪费的行为,因为如果能直接使用 HttpClient 进行网络请求,那直接使用 Stream 即可,可以减少一次内存的拷贝和内存占用 也如上面代码,可以看到,完全可以使用 HttpClient...remote add origin https://github.com/lindexi/lindexi_gd.git 获取代码之后,进入 BujeardalljelKaifeljaynaba 文件夹 那此内存大量占用问题可以如何解决呢

    1.7K10

    明明还有大量内存,为啥报错“无法分配内存”?

    # service docker stop -bash fork: 无法分配内存 # vi 1.txt -bash fork: 无法分配内存 看到这个提示,大家的第一反应肯定是怀疑内存真的不够了。...但查看内存占用却发现根本没有,内存还空闲了一大把!(多试几次才有机会执行成功一次) 飞哥和群里的同学们一起参谋这个问题以后,帮出了三个思路。让这位读者回去挨个试。...2.numa架构下,如果所有内存都插到一个槽,其它node就会没内存 3.查看下现在的进(线)程数是多少,是不是超过最大限制了 在经过一段时间的排查以后,这位读者的问题顺利解决。...给使用者造成了很大的困惑。 1.2 导致 alloc_pid 失败的原因 那我们接着再来详细看看都有哪些情况下分配 pid 会失败呢?...第一种错误情况是如果内存申请失败,alloc_pid 会返回失败。这种情况下确实是内存问题,出错后内核返回 ENOMEM 无可厚非。

    3K20

    解决retrofit OKhttp创建大量对外连接时内存溢出

    然后运行程序后,发现线程数急剧上升,没几秒就跑到了2000多个线程,然后发生内存溢出,程序就挂掉了。 ? 这是刚启动项目时,线程数只有50多个。当开启多线程任务后 ?...OkHttpCall.java:180) at com.mindata.ecserver.global.http.CallManager.execute(CallManager.java:25) 通过监控界面可以看到,大量的线程...OKHttp ConnectionPool,也是导致内存溢出的主要原因。...那么问题就出在这里了,我在短时间内发起了大量网络连接,每个是一个线程,而且每个都默认保存5分钟,很快线程数就超标了。...因为我的项目中,多个地方会使用retrofit,会创建baseUri不同的请求,所以我想成了每次请求都创建一个客户端的方式。没想到这样会创建一个额外的线程。

    4K20

    Python使用SQLite插入大量数据

    前言 使用Python爬虫代理IP时,最先使用了sqlite作为存储ip数据库,sqlite简单、灵活、轻量、开源,和文件系统一样。...而当大量插入爬取的数据时,出现了严重的耗时,查看一起资料后,发现:sqlite在每条insert都使用commit的时候,就相当于每次访问时都要打开一次文件,从而引起了大量的I/O操作,耗时严重。...0.142000198364 0.119999885559 0.176000118256 0.124000072479 0.115999937057 0.111000061035 0.119999885559 显式使用事务的形式提交...在批量插入数据之后再进行事务提交,把大量操作的语句都保存在内存中,当提交时才全部写入数据库,此时,数据库文件也就只用打开一次,会显著的提高效率。...但实际上,在这种情况 下很可能你的硬盘已经不能使用,或者发生了其他的不可恢复的硬件错误。 设置为synchronous OFF (0)时,SQLite在传递数据给系统以后直接继续而不暂停。

    4K10

    linux下Apache服务器使用入门----httpd.conf

    如果安装centos,系统本身已经安装了apache,名字为httpd这个服务就是对应的apache service httpd start service httpd stop service httpd...restart 下面介绍一下apache的几个重要的配置文件 1 httpd.conf 这个文件在/etc/httpd/conf目录下,文件大致分为三个部分: 主服务器部分 这个部分主要是使用一些参数定义服务器的功能等等...ServerRoot "/etc/httpd" ---------定义与服务器所在的目录,这个目录在安装时由-prefix=ServerRoot 来选定 ......PidFile run/httpd.pid ... Timeout 60 ... KeepAlive Off ... MaxKeepAliveRequests 100 ......"/var/www/error">         AllowOverride None         Options IncludesNoExec----------------决定在那些目录中使用那些服务器的特性

    2.5K50

    Linux下多线程程序为什么消耗大量虚拟内存

    探索 一开始首先排除掉内存泄露,不可能每次都泄露64M内存这么巧合,为了证明我的观点,首先,我使用了valgrind。...在多次使用valgrind无果以后,我开始怀疑程序内部是不是用到mmap之类的调用,于是使用strace对mmap,brk等系统函数的检测: strace -f -e"brk,mmap,munmap"...MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f53d04a8000 Process 19495 attached 我检查了一下trace文件也没有发现大量内存...总结一下,glibc为了分配内存的性能的问题,使用了很多叫做arena的memory pool,缺省配置在64bit下面是每一个arena为64M,一个进程可以最多有 cores * 8个arena。...假设你的机器是4核的,那么最多可以有4 * 8 = 32个arena,也就是使用32 * 64 = 2048M内存。

    2.4K30

    DeepSeek用的GRPO占用大量内存?有人给出了些破解方法

    在表格中,你可以找到 GSM8K 数据集上训练的前 100 步中的峰值内存使用情况。...虽然这会使训练速度减慢约 20-30%,但它显著减少了内存使用。 结合这些技术,即使对 GPU 资源有限的人来说,也能够训练更大的模型。...不过,作者还是建议大家在内存瓶颈得到修复之前使用 num_generations=4,也能获得不错的性能。...影响 VRAM 的一些因素 要对所有影响显存(VRAM)使用的因素进行全面的超参数验证,需要进行大量的实验。简单起见,这里只指出了需要注意的设置,以及实验中使用的具体数值。...对 VRAM 使用的粗略估算 如果你正在使用 FP16 精度进行训练,以下是一些简单的估算方法,可以帮助你了解内存主要用在了哪些地方: 模型参数:每个参数占用 2 字节。

    80210

    一日一技:小内存使用最小堆从大量数据中寻找最小的N个数

    如今,我们的硬盘空间远远大于内存。所以很容易出现硬盘中放得下的数据,在内存中放不下的情况。 现在我们有一个100GB的文本文件,它的内容如下: 19930021-913287607653.........电脑内存为1GB。 由于内存非常小,因此不可能把全部数据读入内存,先排序再取最大的100个数。那么我们就需要边读文件边排序,并始终保留最大的100个数字。 肯定有同学会想到使用列表来解决这个问题。...这篇文章里面,我们将会使用上一篇文章讲到的 heapq来实现这个目的。...0]: heapq.heapreplace(heap, num)print(f'最大的100个数为:{heap}') 在Python 3里面,文件句柄f是一个生成器,对它使用...文本文件读出来的内容一定是字符串,所以需要使用 int(num)转换为数字。如果堆的节点数不够100,那么直接把数字插入堆里即可,heapq会自动决定这个数字在堆里面的位置。

    1.7K21

    使用bitmap进行大量数据的排序、判断存在与否

    使用bitmap主要是可以减少存储空间的使用,用一个bit来存储一个元素的状态。当我们需要在一亿个数中判断某个数是否存在时,我们不需要将这一亿个数同时放入内存。...当我们使用待排序数组完成对bitmap的填充之后,只需要按位输出存在的数就可以了。.../** * created by tianfeng on 2018/11/9 * 使用bitmap进行排序(待排序数组中无重复数字) */ public class BitmapSort {...不过也因为bitmap的这个特点——重复的数字只出现一次,我们可以使用同样的代码对一堆数字进行去重操作。 判断一个数是否存在 一个文件里有一亿个数,我们如何判断88是否存在其中?...简单就是遍历一遍,但是如果内存不够呢?如果数是int型,占4个byte,一亿个数就是400M,如果十亿个数呢?4个G。把四个G的数都放入内存,才能完成这个遍历。如果内存不够呢?

    1.5K20
    领券