文件句柄

article/2025/9/3 21:58:45

 

一、文件句柄是什么?

对象在内存中是经常来回移动的,如何快速定位找到这个对象呢?

句柄说: “我来帮你找”

windows系统给出的方案

1.进程创建时,windows系统为进程构造了一个句柄表

2.当该进程希望获得一个内核对象句柄或者创建一个内核对象从而获得该对象句柄时

3.系统会将在句柄表中增加一个表项,表项的内容中存储了指向目标内核对象的指针

4.同时,系统返回这个表项在句柄表中的索引作为句柄。

 

联系:句柄表--户口本

 

二、文件句柄的本质

唯一标识符 (eg:身份证号)

 

三、线上问题概述

错误: Socket/File : too many open files(打开的文件过多)

这里的files不单是文件的意思,也包括打开的通讯链接(比如socket),正在监听的端口等等,所以有时候也可以叫做句柄(handle)

四、解决方案

  • 方案 – 增加系统最大连接数

1.临时(重启后失效):

ulimit -n 4096(非root用户限制到4096)   

2.永久生效(需要重启)

vim /etc/security/limits.conf 

#在最后加入 

* soft nofile 4096 

* hard nofile 4096

  • 根源上解决--检查程序问题:

lsof -p 进程id > openfiles.log  查看句柄全部详情

1)打开的这些文件是不是都是必要的?

2)定位到打开这些文件的代码

3)是否程序操作了文件写入,但是没有进行正常关闭

4)是否程序进行了通讯,但是没有正常关闭(也就是没有超时结束的机制) --(eg:post.releaseConnection()关闭连接)

 

延伸

        代码中只用post.releaseConnection()关闭连接,经过再网上查找资料,说这种关闭并没有真正关闭连接,而是将该连接提交给 MultiThreadedHttpConnectionManager,等待复用。

       Close_wate需要延迟几秒钟才能关闭连接,而每个Socket连接都需要等待几秒钟,压力过大时,开启的Socket连接超过了系统所能承受的最大连接数(ulimit -u 1024),所以抛出Too many open files异常。

 


http://chatgpt.dhexx.cn/article/ACqUmQWv.shtml

相关文章

linux开关机命令

shutdown -h now/或者是具体的时间hh:mm; 关机; -h:关机。;-r: 重启 ;-c: 取消前一个关机命令。一般就只用shutdown这个命令;halt,poweroff,init 0 关机;init 6&#xff…

Linux命令之关机命令

shutdown命令可以用来进行关闭系统,并且在关机以前传送讯息给所有使用者正在执行的程序,shutdown 也可以用来重开机使用者权限:管理员用户 语法如下: shutdown [-t seconds] [-rkhncfF] time [message] 参数说明: …

Linux 关机 命令

一、正确的关机方法 如果直接按下电源开关,数据有可能中断。若不正常关机,则有可能造成文件系统的损毁。因此,正常关机情况下,应注意以下: 1)查看系统的使用状态 查看目前有谁在线,使用“who…

部署图详解

部署图 一、部署图概要 ​ 部署图用于静态建模,是表示运行时过程节点结构、构件实例及其对象结构的图。如果含有依赖关系的构件实例放置在不同节点上,部署视图可以展示出执行过程中的瓶颈。部署图的两种表现形式:实例层部署图和描述层部署图…

EA_画部署图

EA_画部署图 新建部署图增加个性化图标画一个范围Boundary 新建部署图 右键–>添加图 增加个性化图标 右键图标–>外观–>选择可替代图像 选择自定义的图标 画一个范围Boundary

UML-----构件图与部署图

构件图和部署图这两个图都属于实现图。它是用来描述实现方面的信息。构件图用来显示一组构件之间的组织及依赖关系;而部署图则用来描述系统硬件的物理拓扑结构以及在此结构神执行的软件。 构件图 构件图是从软件结构的角度来描述一个系统的主要功能,如子…

移动端UML图应用之UML结构图——包图、部署图和组件图

系列文章目录 移动端UML图应用之UML图简述 移动端UML图应用之UML行为图——用例图、活动图和状态机图 移动端UML图应用之UML交互图——顺序图和通信图 移动端UML图应用之UML结构图——包图、部署图和组件图 移动端UML图应用之UML结构图——类图 文章目录 系列文章目录一、包图…

【UML建模】(7) UML建模之部署图

您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦。 💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精通 ❤️ 2. Python爬虫专栏&#xf…

UML—部署图

一、简介: 部署图(Deployment Diagram)又名实施图。用来描述系统硬件的物理拓扑结构以及在此结构上执行的软件。显示了系统的硬件、安装在硬件上的软件、以及用于连接异构机器之间的中间件。系统所有的实施图一起表示系统的完整结构。具有以下…

【UML】部署图和构件图

一、实现图 1.UML中大部分模型描述了逻辑和设计方面的信息 2.实现图用来描述实现方面的信息 3.他从系统的层次来描述: (1)硬件的组成和布局 (2)软件系统划分和功能实现 4.实现图包括 (1)…

UML-部署图

今天我们来介绍下什么是部署图 一、部署图是什么? 部署图(deployment diagram,配置图)是用来显示系统中软件和硬件的物理架构。从部署图中,您可以了解到软件和硬件组件之间的物理关系以及处理节点的组件分布情况。使用部署图可以显示运行时系…

UML——实现图(构件图与部署图)

目录 实现图 构件图 构件的类型 构件的特点 构件与类 构件与接口 部署图 实现图 UML中大部分模型描述了逻辑和设计方面的信息,实现图用来描述实现方面的信息。 实现图有构件图和部署图两种形式 构件图:用来显示一组构件之间的组合与依赖关系。…

如何便捷绘制UML部署图?

四大部分,带你深入了解UML部署图: 什么是部署图? 部署图的组成 部署图实例 如何绘制部署图? 一、什么是部署图? 部署图描述的是系统运行时的结构,展示了系统的硬件配置、硬件部署,以及其软…

UML 部署图 deployment diagram

1. 什么是部署图 部署图描述的是系统运行时的结构,展示了硬件的配置及其软件如何部署到网络结构中。一个系统模型只有一个部署图,部署图通常用来帮助理解分布式系统。 2. 部署图中的事物 注:在rational rose工具中我还没找到怎么把构件放到节…

部署图的画法

部署图画法 1.部署图 1.1含义 部署图是把软件制品装配到计算机节点以及配置软件环境的工作 软件部署包含环境部署和软件制品部署 1.2软件部署 软件部署通过部署图对软件进行建模 1.3部署图 部署图常见的有制品 节点 设备 运行环境和部署规范 1.4部署图关系 在UML&…

软件工程 第九章:部署图

第九章:部署图 概述 作用:用来描述软件产品在计算机硬件系统和网络上的:安装、分发(delivery )、分布(distribution )描述: 静态特性用部署图(deployment diagram &…

流程图-时序图-架构图,部署图-拓扑图-ER图-类图-状态图-用例图

为啥要画图 复杂问题、复杂系统的根本解决之道,归根结底就是两个字:分解。 对问题的分析、分解过程,借助图形化的表达,可以达到“一图胜千言”的效果,于人于己好处多多。 图形表达的过程,即是建模的过程…

OOSE-6-部署图/包图

文章目录 1 部署图1.1 基本概念1.2 组成元素1.2.1 工件1.2.2 节点1.2.3 连接1.2.4 节点中的工件和执行环境 1.3 两个示例1.4 建模分析1.4.1 示例11.4.2 示例2 1.5 建模工具 2 包图2.1 包图的概念2.2 包的表示2.3 包图中的关系2.4 阅读包图2.5 创建包图2.5.1 示例12.5.2 其他示例…

UML之部署图

一、部署图概要 部署图描述处理器、硬件设备和软件构件在运行时的架构,它显示系统硬件的物理拓扑结构及在此结构上执行的软件。使用部署图可以显示硬件节点的拓扑结构和通信路径、节点上运行的软件构件、软件构件包含的逻辑单元(对象、类)等。 部署图常用于帮助人理…

UML--部署图详解

部署图 部署图用来描述业务过程中的组织机构和资源。 部署图的含义 部署图(Deployment Diagram)描述了一个系统运行时的硬件节点,以及在这些节点上运行的软件构件将在何处物理地运行和它们将如何彼此通信的静态视图。 在一个部署图中&…