Python 踩坑之旅进程篇其五打不开的文件!

Android 注解系列之EventBus3“加速引擎“(五) bus.jpg 前言 在上篇文章 Android 注解系列之 EventBus3 原理(四)中我们讲解了 EventBus3 的内部原理,在该篇文章中我们将讲解 EventBus3 中的 “加速引擎"---索引类。阅读该篇文章我们能够学到如下知识点。 EventBus3 索引类出现的原因 EventBus3 索引类的使用 EventBus3 索引类生成的过程 Even... 阅读详情

代码示例支持 平台: Centos 6.3 Python: 2.7.14 代码示例: 菜单 - Python踩坑指南代码示例 1.1 踩坑案例

长期运行的daemon进程或者socket测试类进程, 经常遇到的坑是:

IOError: [Errno 24] Too many open files

即进程遇到 IO 错误, 无法打开更多的文件.

1.2 填坑和分析Python学习交流群:1004391443

一般从两个方面入手:

1.2.1 从程序优化入手

  • 检查文件打开是否遵循了"谁打开谁关闭"原则
  • 文件是否存在关闭泄露

a. 谁打开谁关闭是个普适的原则:

  • 只有逻辑设计者自己最熟悉
  • 哪些文件 FD 需要一直维持打开状态
  • 哪些文件直到某个事件发生后关闭
  • 短暂的文件读写打开推荐使用 pythonic 的 with statement
# with 语法会在生命周期后自动关闭打开的文件 FD
with open('xxxx_path.file', 'w') as fhandle:
    fhandle.dosth()

b. 检查文件 FD 是否存在泄漏

系统设计阶段一般会预估系统总体可打开的 FD 情况. 当出现如下情况时可能出现了泄漏 BUG

  • 外围监控系统发现该进程 FD 大量突破了设计预估
  • 打开 FD 增长趋势异常
  • 一般随着业务增加, FD 会线性增长, 但有限度和规律
  • 如果增长曲线不停的出现陡峭增长且在业务低峰期也如此可能出现了泄露

Python 基础库 CUP 提供对进程打开 FD 的支持, 详见示例代码.

1.2.2 从资源软硬限入手

  • 了解系统的资源软硬限制
  • 检查进程可打开的FD是否突破了系统限制
  • 长期运行的 daemon 进程尤其注意

以 Centos 6.3 Linux系统 为例, 查看 /etc/security/limits.conf 获得系统软硬限资源

* soft nofile 10240
* hard nofile 10240

其中, 用户不能突破系统的硬线 hard nofile limit .

用户也可以通过 shell 命令 ulimit -n 来限定该 shell 启动的所有进程的 nofile

  • 当然非 root 用户是不能突破系统硬线的
  • 用户为了进程控制, 可以设定nofile更小

ulimit -a 可以查看当前用户被设定的限制, 示例:

[test@agent1 ~]$ ulimit -a
core file size          (blocks, -c) 0
.......
open files                      (-n) 10240
.....
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

1.4.1 技术关键字

  • Open FD
  • 资源 Soft limit / Hard limit

下期坑位预告

  • PyDaemon 进程长什么样

Life is short. We use Python.

关于anaconda navigator打不开问题的解决 在cmd中输入anaconda-navigator,运行出现There ia an instance of Anaconda Navigator already running. 阅读详情

相关推荐

简单使用python多进程并发下载大量图片

如果有大量图片想要下载,肯定希望速度越快越好,那么就要使用多任务。 python支持多线程和多进程。但是解释器中的GIL锁导致任何Python线程执行前,必须先获得GIL锁,然后,每执行100条字节码,解释器就自动释放GIL锁,让别的线程有机会执行。所以多线程并不能达到理想的效果。 使用多进程的话,mutilprocessing是个很好用的库。如果是一个进程一个进程的创建,使用其中的Proce...

threegirl的专栏 1643

EventBus源码分析

EventBus一篇就够

stone_cold_cool的博客 242

解决anaconda navigator打不开问题

解决anaconda navigator打不开问题

weixin_43402278的博客 4925

关于OSError: [Errno 24] Too many open files的windows运行python的问题

windows操作系统下,在进行图片分割成小块的时候,在如下代码中出错 OSError: [Errno 24] Too many open files

windmyway的博客 3365

Python错误提示:[Errno 24] Too many open files的分析与解决

主要给大家介绍了Python中出现错误提示:[Errno 24] Too many open files的分析与解决,需要的朋友可以参考借鉴,下面来一起看看吧。

手把手教你用STM32的ADC读取PT100模块,实现高精度温度采集(附完整代码)

本文详细介绍了如何利用STM32的ADC模块读取PT100温度传感器信号,实现高精度温度采集系统。从硬件选型、ADC配置校准到温度计算算法和软件滤波技术,提供完整的实现方案和优化技巧,帮助工程师快速构建稳定可靠的温度监测系统。

weixin_29185199的博客 349

[代码修订版] Python 踩坑之旅进程篇其五打不开的文件

目录 1.1 踩坑案例 1.2 填坑和分析 1.2.1 从程序优化入手 1.2.2 从资源软硬限入手 1.4.1 技术关键字 下期坑位预告 代码示例支持 平台: Centos 6.3 Pyt...

weixin_30297281的博客 137

海康WEB3.3控件开发包 V3.3 前端vue项目调用实时监控画面

本需求的完成离不开后端将设备映射到公网, 以及前端单独部署demo页面这个思路的转变。

hero8011的博客 1万+

Python 踩坑之旅进程篇其五打不开的文件

代码示例支持 平台: Centos 6.3 Python: 2.7.14 代码示例: 菜单 - Python踩坑指南代码示例 1.1 踩坑案例 长期运行的daemon进程或者socket测试类进程, 经常遇到的坑是: IOError: [Errno 24] Too many open files 即进程遇到 IO 错误, 无法打开更多的文件. 1.2 填坑和分析 一般从两...

262

从零实现机械臂抓取仿真:用MoveIt+Gazebo完成物体pick&place全流程

本文详细介绍了如何使用ROS的MoveIt框架与Gazebo仿真环境,从零构建机械臂抓取仿真系统。涵盖环境搭建、MoveIt配置、Gazebo集成、抓取动作实现等全流程,帮助开发者掌握机械臂控制的核心技术,实现高效的pick&place任务。

weixin_29250403的博客 478

Win11 24H2共享访问被禁?深入聊聊SMB签名和‘不安全的来宾登录’那点事

本文深入解析Win11 24H2共享访问故障,探讨SMB签名的安全机制与‘不安全的来宾登录’问题。提供从注册表修改到组策略配置的多层次解决方案,特别针对家庭网络和打印机共享场景给出实用建议,帮助用户在安全与便利之间找到平衡。

weixin_42556197的博客 568

python打不开文件数据-Python 踩坑之旅进程篇其五打不开的文件

代码示例支持平台: Centos 6.3Python: 2.7.14代码示例: 菜单 - Python踩坑指南代码示例1.1 踩坑案例长期运行的daemon进程或者socket测试类进程, 经常遇到的坑是:IOError: [Errno 24] Too many open files即进程遇到 IO 错误, 无法打开更多的文件.1.2 填坑和分析一般从两个方面入手:1.2.1 从程序优化入手检查文...

weixin_37988176的博客 357

WhatsApp API接口的隐秘角落:从协议解析到自定义消息引擎

本文深入解析WhatsApp API接口的隐秘角落,从协议逆向工程到自定义消息引擎开发实战。通过分析WhatsApp的二进制XML协议和加密机制,构建超越官方API限制的自定义消息引擎,实现高效、灵活的即时通讯解决方案。文章还提供了企业级架构设计和风控规避策略,助力开发者突破官方限制,提升消息到达率和成本效益。

q3r4s5t的博客 761

python保存的文件为什么打不开_[代码修订版] Python 踩坑之旅进程篇其五打不开的文件...

代码示例支持平台: Centos 6.3Python: 2.7.14代码示例: 菜单 - Python踩坑指南代码示例1.1 踩坑案例长期运行的daemon进程或者socket测试类进程, 经常遇到的坑是:IOError: [Errno 24] Too many open files即进程遇到 IO 错误, 无法打开更多的文件.1.2 填坑和分析一般从两个方面入手:1.2.1 从程序优化入手检查文...

weixin_39942191的博客 1027

renderdoc的使用

renderdoc可以用来捕获帧渲染情况,排查一些GPU渲染、资源规格等问题。 下面讲述一些该软件连接真机调试使用。 一、下载安装renderdoc 软件的下载地址:https://renderdoc.org/可直接点击下载即可。该软件是开源免费的,不用破解。 下载后直接安装即可使用。 二、打开使用renderdoc 打开界面后,默认的界面布局如下图所示,(这里我已经设置了黑色主题,可以忽略这点),renderdo中主要的窗口有Texture Viewer(纹理查看器)、Event B.

x_xingduo_2315的博客 2万+

基于STM32设计的遥控灭火消防小车_296

随着城市化进程的加速和火灾发生频率的增加,传统的消防方式在应对初期火灾时存在反应慢、效率低等问题。为了提高火灾响应速度和灭火效率,本设计开发了一款基于STM32单片机的遥控灭火消防小车。该小车配备了烟雾检测、温湿度监测、火源定位、灭火操作等功能,能够通过蓝牙和WIFI实现远程控制与实时视频传输。设计采用了MQ2烟雾传感器、SHT30温湿度传感器、火光传感器和ESP32摄像头模块等硬件设备。系统不仅能够自动检测和定位火源,还可以手动调整灭火器对准位置,进行干粉灭火。此外,蜂鸣器用于火源报警,确保操作人员及时得

726

python的代码保存到文档中 打不开怎么办_[代码修订版] Python 踩坑之旅进程篇其五打不开的文件...

代码示例支持平台: Centos 6.3Python: 2.7.14代码示例: 菜单 - Python踩坑指南代码示例1.1 踩坑案例长期运行的daemon进程或者socket测试类进程, 经常遇到的坑是:IOError: [Errno 24] Too many open files即进程遇到 IO 错误, 无法打开更多的文件.1.2 填坑和分析一般从两个方面入手:1.2.1 从程序优化入手检查文...

weixin_39911567的博客 333

【MATLAB代码】雷达观测目标跟踪模型|H-infinity Filter(H无穷大滤波)与EKF(扩展卡尔曼滤波)的对比。附完整代码,订阅专栏后可直接查看

对比了经典扩展卡尔曼滤波(EKF)与H∞优化的EKF(H∞-EKF)在目标跟踪中的性能。通过MATLAB仿真实验,结果显示:在存在模型误差和测量噪声的情况下,H∞-EKF相比经典EKF在位置误差上降低

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 245

Anaconda安装配置后打不开解决办法

用的是anaconda3,win11系统。(写文章比较少,请见谅!) 前景提要,anaconda的环境变量已经弄好了,也安装完成,可是打开会弹出黑窗口再关闭再弹出来,后面会卡在绿色圆圈loading

2301_80141324的博客 6847

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

python使用xlwings合并excel踩坑(格式、copy、进程未退出等问题)

问题总览安装使用xlwings、pyinstaller、pip升级文件格式混合处理问题(xls、xlsx)跨工作簿copy报错xlwings的两种copy方法退出后,wps进程未关闭excel合并小程序(按实际需要自行修改) 安装使用xlwings、pyinstaller、pip升级 安装xlwings库: win+R打开运行窗口,cmd,在命令行中输入pip installer xlwings,使用操作看最下面的程序 安装pyinstaller: 命令行中输入pip installer pyinstall

aiyaya333的博客 7142

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

docker+jupyter+chrome-driver+selenium踩坑

我突然有了疑惑,为啥,为啥绑定到了PID1,神特么奇诶,于是我没有在ipynb文件上运行,而是使用了python 直接拉起了一个py文件,结果显而易见没有僵尸进程了,所以如果你不想或者不能重新搞个容器同时你又对执行过程不在意,直接用python拉起你的代码,别用ipynb那种图形的偷懒。-------一个菜狗,但是轴。诶,问题解决,但是我不服,为啥会有这种问题出现,为啥这个过程就通过重新弄个容器就好了,于是我开始了许多尝试,包括手动删除,增加参数等一系列方案,最后我还是败了。时隔好久发个帖子记录踩坑。

qqqeqweqwtr的博客 292

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Anaconda navigator打不开一直loading,运行conda update anaconda卡在solving environment不动的解决

anaconda navigator打不开,一直在loading画面。百度解决方法,用网上的方法在命令窗口里运行conda update anaconda结果一直显示solving environment卡在那里。又尝试用管理员身份运行还是不行,打开后出现There in aninstance of Anaconda Navigator already running 然后又去搜索解决方法,终于解决,解决步骤如下: 1、按ctri+alt+delete打开任务管理器 ,在进程里把python都结束。 .

bluebowl402的博客 1万+

避坑指南:解决Windows交叉编译ARM版Qt时‘打不开make进程’等5个常见错误

本文详细解析了在Windows环境下交叉编译ARM版Qt时常见的5个错误,特别是'打不开make进程'等典型问题。通过分析问题根源、提供多种解决方案和优化建议,帮助开发者高效完成aarch64架构的Qt编译工作,避免常见陷阱。

weixin_30301449的博客 468

「Python 避坑 · 第 12 篇」读个文件,内存怎么就爆了?

如果你身边也有一个被文件 I/O 折磨的朋友,把这篇文章转给 ta——「你看,读个 5GB 文件,毛毛姐的内存就爆了。」

MARST.ZHANG的博客 17

python3.7的idle连接异常_python3.7.1中IDLE突然打不开;spyder3打不开解决方案

标签:@1.python3.7.1自带IDLE突然打不开时,解决方法:#环境:win10 专业版#打开IDLE时显示:如下信息错误信息(IDLE’s subprocess didn’t make connection.Either IDLE can’t start a subprocess or personal firewall is blocking the connection.)#解决办法...

weixin_39938312的博客 256

python启动进程_python 怎么运行一个新的进程

使用win32apiwin32api.WinExec(r'winrar.exe E:\123.rar')这个总也打不开,提示:Traceback (most recent call last):File "", line 1, in error: (2, 'WinExec', '\xcf\xb5\xcd\xb3\xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5...

weixin_40000457的博客 527
上一篇: 代码详解:Python虚拟环境的原理及使用!
下一篇: Python装饰器以及高级用法!
普通网友
博客等级 码龄7年 438粉丝 263原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值