首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python统计httpd 进程内存

本文结构: 介绍用命令行如何统计内存占用百分比 介绍用python 如何通过读取进程文件,统计进程内存总大小,然后计算系统内存的百分比 第一部分: 在linux 下,统计apache 进程内存使用百分比...,有很多方法: 使用命令将所有apache 的进程进行统计,然后相加,然后和系统的物理内存相除,求百分比。...如图,"ps   aux" 命令输出的第六个字段就是某个进程所占的物理内存,单位是KB.然后就可以将需要的apache 进程过滤出来,统计。 最后,用free 就可以看到系统的总内存: ?...可以通过读取文件,获取各个apache 进程的VmRSS(物理内存)大小,以及系统的总内存。 2.1 通过什么文件查看进程占用内存的信息?...如上图,VmRSS 这行就是内存大小。 2.2 如何获取所有apache 的进程id号? 因为apache 通常都会fork 很多的子进程,这些子进程都会占用内存

1.3K20

python 进程间通信(四) -- 共享内存服务器进程

进程间通信(三) — 进程同步原语及管道与队列 回顾操作系统所提供的所有进程间通信方式的系统调用,我们会发现还有两种进程间通信方式我们还没有介绍:共享内存与域套接字,本文我们就来介绍这剩下的几种 IPC...但 Python 的 multiprocessing 包中仍然提供了两种方法让你可以在多进程环境下共享数据: 共享内存 服务器进程 3....服务器进程 — server process python 提供了一种十分类似共享内存的数据共享机制 — 服务器进程。...通过 multiprocessing 包中的 Manager 类可以构造一个服务器进程对象,他支持用于进程间共享的多种数据类型: list dict Namespace Lock RLock Semaphore...BoundedSemaphore Condition Event Barrier Queue Value Array 一旦创建,对象的使用与原生类型的用法是完全相同的,因此相比于共享内存服务器进程的使用更为简单和灵活

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

因Full GC导致CPU飙升到100%问题排查记录

如果在业务高峰期,调用这个商品查询接口的频次很高的话,会导致堆内存飙升,老年代空间飙升,最终导致Full GC,如果不停地请求这个接口,会发现GC垃圾回收的时间会不停地加长,因为刚回收完,又产生了大量的对象放到了老年代中...核心排查步骤 1.执行“top”命令:查看所有进程系统CPU的排序。极大可能排第一个的就是咱们的java进程(COMMAND列)。PID那一列就是进程号。...2.执行“top -Hp 进程号”命令:查看java进程下的所有线程CPU的情况。...统计间隔毫秒 统计次数(缺省代表一致统计)”,查看某进程GC持续变化情况,如果发现返回中FGC很大且一直增大-》确认Full GC!...-》dump出内存,查找程序哪里内存溢出了。-》可明确看到gc的原因!

83610

谈谈 Linux 假死现象

你可以尝试 Fork 很多进程,系统会变得很慢,但是 SSH 通常还是能连上去的;你可以尝试分配很多内存,但是内存多到一定程度 Linux 的 OOM 机制的 Killer 进程就会杀掉你的进程,来保证其它服务能正常工作...假死现象是如何出现的 有一个确定可以把系统搞成假死的办法是:主进程分配固定内存,然后不停的 Fork,并且在子进程里面 Sleep(100)。...也就是说,当主进程不停 Fork 的时候,很快会把系统的物理内存用完。当物理内存不足时候,系统会开始使用 Swap。那么当 Swap 不足时会触发 OOM 机制的 Killer 进程来杀掉多余进程。...这样就会一直得不到系统调度,从而始终无法正确的提供服务来与 SSH 客户端建立新的连接。 Linux 出现假死现象,我们应该怎么办为什么要费那么大的力气把服务器搞死呢?...建议使用 nice 命令将 SSHD 的进程优先级调高,这样当系统内存紧张时,还能勉强登陆服务器进行调试,然后分析故障。

7.2K20

性能测试-性能测试指标

理发师还有空抽个烟,刷个手机;顾客来了就剪,剪完就走,体验不错 Heavy Load: 师傅少客多;理发师虽然忙个不停,但仍然井井有条; 顾客等待的时间越来越长 Buckle Zone: 师傅少客人贼多...%Cpu(s): $用户比, $系统比, $用户优先级更改比, $空闲比, $等待比, $硬中断(Hardware IRQ)占用CPU的百分比,软中断(Software Interrupts...)占用CPU的百分比, %虚拟机比 Kib Mem: $内存总览, $空闲内存, $已使用内存, $内核缓存内存 Kib Swap: $交换区总量, $空闲交换区总量, $已使用交换区总量 ......差 2*核心数 >85% 很差 内存swap 概念 内存使用率: 即物理内存已使用区域对总内存比 swap: 磁盘上的一个特殊区域, 物理内存紧张是,会将不长访问的数据放到swap中....cache,因此,内存利用率高达 99%并不是问题,内存的问题主要看某个进程占用的内存是否非常大以及是否有大量的swap(虚拟内存交换)。

22610

线上问题排查思路、工具小结

java \-jar cpu-reaper.jar & 第一步:定位出问题的线程 方法 A: 传统的方法 top 定位CPU 最高的进程 执行top命令,查看所有进程系统CPU的排序,定位是哪个进程搞的鬼...要注意的是,arthas的cpu比,和前面两种cpu比统计方式不同。...前面两种针对的是Java进程启动开始到现在的cpu比情况,arthas这种是一段采样间隔内,当前JVM里各个线程所占用的cpu时间总cpu时间的百分比。...如果你发现full gc 之后堆内存几乎没有下降,那么可以推断:**堆中有大量不能回收的对象且在不停膨胀,使堆的使用比超过full GC的触发阈值,但又回收不掉,导致full GC一直执行。...负值表示高优先级,正值表示低优先级 VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES RES 进程使用的、未被换出的物理内存大小,单位kb。

3K40

Linux性能优化

过多的切换则会将原本运行进程的CPU时间消耗在寄存器,内核及虚拟内存等数据保存和恢复上 CPU缓存命中率 CPU缓存的复用情况,命中率越高性能越好....32位系统内核空间占用1G,用户空间3G。 64位系统内核空间和用户空间都是128T,分别内存空间的最高和最低处,中间部分为未定义。 并不是所有的虚拟内存都会分配物理内存,只有实际使用的才会。...RES 常驻内存的大小,即进程实际使用的物理内存大小,不包括swap和共享内存 SHR 共享内存大小,与其他进程共享的内存,加载的动态链接库以及程序代码段 %MEM 进程使用物理内存系统总内存的百分比...此时可以通过memleak工具来跟踪系统或进程内存分配/释放请求 /usr/share/bcc/tools/memleak -a -p $(pidof app) 从memleak输出可以看到,应用在不停地分配内存...,例如在apache和nginx这种web服务器中,我们一般做性能测试时会进行几千并发甚至几万并发的测试,选择web服务器进程可以由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了

2.7K20

架构必知:Linux性能优化全景指南(建议收藏)

过多的切换则会将原本运行进程的CPU时间消耗在寄存器,内核及虚拟内存等数据保存和恢复上 CPU缓存命中率 CPU缓存的复用情况,命中率越高性能越好....32位系统内核空间占用1G,用户空间3G。64位系统内核空间和用户空间都是128T,分别内存空间的最高和最低处,中间部分为未定义。 并不是所有的虚拟内存都会分配物理内存,只有实际使用的才会。...RES 常驻内存的大小,即进程实际使用的物理内存大小,不包括swap和共享内存 SHR 共享内存大小,与其他进程共享的内存,加载的动态链接库以及程序代码段 %MEM 进程使用物理内存系统总内存的百分比...此时可以通过memleak工具来跟踪系统或进程内存分配/释放请求 /usr/share/bcc/tools/memleak -a -p $(pidof app) 从memleak输出可以看到,应用在不停地分配内存...,例如在apache和nginx这种web服务器中,我们一般做性能测试时会进行几千并发甚至几万并发的测试,选择web服务器进程可以由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了

1.5K30

Linux性能优化指北大全

过多的切换则会将原本运行进程的 CPU 时间消耗在寄存器, 内核及虚拟内存等数据保存和恢复上 CPU 缓存命中率 CPU 缓存的复用情况, 命中率越高性能越好....32 位系统内核空间占用 1G,用户空间 3G。64 位系统内核空间和用户空间都是 128T,分别内存空间的最高和最低处,中间部分为未定义。...常驻内存的大小,即进程实际使用的物理内存大小,不包括 swap 和共享内存 SHR 共享内存大小,与其他进程共享的内存,加载的动态链接库以及程序代码段 %MEM 进程使用物理内存系统总内存的百分比...,应用在不停地分配内存,并且这些分配的地址并没有被回收。...,例如在apache和nginx这种web服务器中,我们一般做性能测试时会进行几千并发甚至几万并发的测试,选择web服务器进程可以由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了

1K20

Linux 性能优化的全景指南,可能都在这里了,建议收藏~

过多的切换则会将原本运行进程的CPU时间消耗在寄存器,内核及虚拟内存等数据保存和恢复上 CPU缓存命中率 CPU缓存的复用情况,命中率越高性能越好....32位系统内核空间占用1G,用户空间3G。64位系统内核空间和用户空间都是128T,分别内存空间的最高和最低处,中间部分为未定义。 并不是所有的虚拟内存都会分配物理内存,只有实际使用的才会。...RES 常驻内存的大小,即进程实际使用的物理内存大小,不包括swap和共享内存 SHR 共享内存大小,与其他进程共享的内存,加载的动态链接库以及程序代码段 %MEM 进程使用物理内存系统总内存的百分比...此时可以通过memleak工具来跟踪系统或进程内存分配/释放请求 /usr/share/bcc/tools/memleak -a -p $(pidof app) 从 memleak 输出可以看到,应用在不停地分配内存...,例如在apache和nginx这种web服务器中,我们一般做性能测试时会进行几千并发甚至几万并发的测试,选择web服务器进程可以由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了

2K21

你的 CPU 还好吗

(在实际中如果你看到平均负载突然升高,也就是三个值呈现递减的趋势,就需要考虑 CPU 问题了) CPU 使用率 定义 除了空闲时间外的其他时间总 CPU 时间的百分比 查看 top ps mpstat...如果是自愿上下文切换多,那么考虑 I/O 、内存等资源不够导致;如果是非自愿切换多,那么考虑 CPU 性能瓶颈 排查步骤 看了那么多指标,我想你也肯定头晕,我总不能每次到服务器上想看看有没有问题,就把所有命令全部一股脑敲一遍吧...监控告警,一般大公司或者云厂商都有服务器监控,监控项肯定包含 CPU,如果有肯定是要先看下监控数据 看服务器卡不卡,你要是敲个命令响应半天,排除你网络卡的原因,那么多半是服务器要不行了 确定当前压力...频繁的错误系统调用 有时可能你看到平均负载高,但是找不到进程。可能由于你执行一个什么命令,但是命令执行失败了,然后不停的重试导致。其中触发的频繁的系统调用,导致上下文切换频繁,从而出现问题。...僵尸进程 进程已经结束,但是父进程没有回收描述符 pid 等资源,一直 wait 下去。

82510

香港云服务器Linux系统文件删除策略

香港云服务器Linux系统文件删除策略 磁盘空间满   由于Linux没有回收站功能,所以线上服务器上所有要删除的文件都会先移动到系统/tmp目录下,然后定期清除/tmp目录下的数据。...既然找到了问题,那么删除/tmp目录下一些空间较大的数据文件即可,检查/tmp下最大的三个数据文。   ...删除文件空间不释放   一般来说不会出现删除文件后空间不释放的情况,但是也存在例外,比如文件被进程锁定,或者有进程一直在向这个文件写数据等,要理解这个问题,就需要知道Linux下文件的存储机制和存储结构...最后一列的“deleted”状态说明这个日志文件已经被删除,但由于进程还在一直向此文件写入数据,因此空间并未释放。...对待这种进程不停对文件写日志的操作,要释放文件占用的磁盘空间,最好的方法是在线清空这个文件,具体可以通过如下命令完成:   [root@localhost ~]# echo " " >/tmp/access_log

7.5K20

PHP脚本内存泄露导致Apache频繁宕机解决方法

PHP脚本内存泄露导致Apache频繁宕机,开机后不断的吃内存,重启apache之后内存占用会不停的上涨,直到swap用完,直到死机,由于是内网环境,服务器并发和压力都很小。...也就是说这些进程只有在apache重启(stop-start模式)或者服务器重启的情况下才会被kill,否则将一直运行下去,直到耗尽系统的最后一点资源(主要是内存)。   ...问题分析:   代码如下:   //服务器允许配置的进程数上限   ServerLimit 1500   //设置服务器启动时建立的子进程数量。...所谓空闲子进程是指没有正在处理请求的子进程。如果当前空闲子进程数少于MinSpareServers,那么Apache将以最大每秒一个的速度产生新的子进程。   ...50或30   MaxRequestsPerChild不能太大,也不能设置为0.最好设置为一个相对不大的数字,100内可能就够了,防止httpd进程有意外的内存泄露 免责声明:本站发布的内容(图片、

56020

top 命令详解

概述 top 命令是 linux 下常用的性能分析工具,能够实时监控系统中各进程的资源占用情况。 top 命令会动态显示,不停刷新,显示系统中 CPU 最敏感的任务列表。...百分比 0.1%sy 内核空间CPU百分比 0.0%ni 用户进程空间内改变过优先级的进程占用CPU百分比 99.9%id 空闲CPU百分比 0.0%wa 等待输入输出的CPU时间百分比 0.0%hi...硬件中断CPU时间百分比 0.0%si 软件终端CPU时间百分比 0.0%st 提供给虚拟化环境执行CPU时间百分比 2.4....CPU时间总计(以秒为单位) TIME+ 进程使用的CPU时间总计(以1/100秒为单位) %MEM 进程使用物理内存百分比 VIRT 进程使用虚拟内存总量(以KB为单位) VIRT=SWAP+RES...SWAP 进程使用的虚拟内存中,被换出的大小 RES 进程使用的未被换出的物理内存大小(以KB为单位) RES=CODE+DATA CODE 可执行代码占用物理内存总大小 DATA 数据段+栈占用的物理内存总大小

3K10

坏代码导致的性能问题大赏:CPU占用飙到了900%!

解决 内存泄漏 于是赶快登陆探测服务器,首先是 top free df 三连,结果还真发现了些异常。 我们的探测进程 CPU 占用率特别高,达到了 900%。...内存满了之后,无法再给 HTTP 响应结果分配内存了,所以一直卡在 readLine 那。而我们那个大量 I/O 的接口报警次数特别多,估计跟响应太大需要更多内存有关。...CPU还是一直保持在超高,无奈之下,还是jstack 27683 看线程栈,无目的的乱看,但是发现了一个问题,当前的点我是下线的也就是没有用户访问的,CPU还是一直这么高,而且线程栈也在不停的打印,那么也就是说当前还在运行的线程很可能就是元凶...大量的这个线程信息出现,httpProxy_jsp这个jsp的线程在不停的活跃,这个是什么鬼jsp?难道服务器被攻击了?...jvm不停的疯狂GC把服务器CPU飚到了极限,然后服务器响应变得非常慢,问题终于找到了,而且非常符合问题的特点,果然把这个地方换了一种写法加了2秒钟超时的限制,问题没有再出现。

1.1K00

26-CPU知识

不同进程上下文切换:进程切换时要保存进程用户态资源(虚拟内存,栈等) 线程上下文切换 线程,共享进程的资源,但是线程也有自己所有的数据,如栈、寄存器 同进程中线程上下文切换:进程资源共享,切换线程私有资源...解决办法:项目所在的服务器, 减少运行中的进程 增加cpu的数量 实操二:线程上下文 # 在N核系统上,生成N个进程,每个进程1024个线程,模拟线程间竞争CPU的场景 $ stress-ng --cpu...pidstat -u -w 1 top:load值一直在增加,而且增长的非常大 top:CPU的us + sy 约等于100% us较低、sy较高 vmstat:procs的r就绪队列长度,正在运行和等待的...解决办法 减少项目启动的线程数 更换内存速度更高的内存条 更换使用CPU的缓存更大的CPU(效果不一定好) 改系统的交互分区 实战三:IO密集型 # 开启1个worker不停的读写临时文件,同时启动 6...个workers不停的调用sync系统调用提交缓存 $ stress-ng -i 6 --hdd 1 --timeout 150 $ top ?

59720

记一次 android 线上 oom 问题

,日志上报时并不是直接上报到服务器,而是放入一个队列,再由专门的线程负责上传。...一次上报并不会占用太多内存,但关键是一旦进入这个特定场景,日志就会一直产生,而主端会在传输数据的过程中频繁调用这个接口,导致大量的日志进入队列,特别是当用户处于非 WIFI 环境下,日志上报会被关闭来节省流量...于是基于有问题的版本,稍加修改让它一启动就不停上报日志,关闭 WIFI 打开 4G,用这个版本在测试机上跑了一整天,进程居然没崩溃!...内容非常多但都是重复的,看起来 Work 进程没有启动,导致连接端一直在进行重连。...(一般是 1024),这个值对于服务器程序来说一般是不够用的,需要通过系统设置来拉高上限。

1.1K40
领券