针对读写操作频繁的应用系统的LINUX调优设置

2023-11-19

在线签约系统调优

============

#项目类型
 IO限制型应用,需要频繁调用PDF进行签章,调用的PDF保存在
 磁盘中。
#项目业务设计实现
 这里写图片描述


这里简要说明一下业务流程:前端业务系统过来的请求通过Nignx进行分流,通过网关DSS,将各自的请求转发到相应的老,新签章系统进行处理
这里需要说明一下,每一个签章请求都需要电签系统处理完成之后,给业务端返回一个PASS标识,在这个过程当中,可能出现的问题:1.网络流量因素。2.大并发情况下,IO瓶颈的限制 3.中间件问题,而导致签约失败。
#测试环境
物理数据库服务器一台
华为服务器应用一台
华为服务器网关应用一台
千兆局域网
千兆交换机,出口,入口的流量 未做限制
#测试完成后数据如下
=======
并发15用户时
IO负载过高
这里写图片描述
内存使用状况如下图 
这里写图片描述


由内存使用状况可知,系统在相应的压力下,频繁读取PDF的文件,导致用来缓存的文件cache减少,memfree下降,但应用程序使用的内存并未见异常,从图可知,应用程序使用内存稳定。
测试完成的数据来看,一个签章请求到处理完这个请求的响应时间均大于25秒,系统每秒处理请求不到3个,TPS典线波动及响应时间曲线波动较大。
暂不考虑应用层代码问题
现仅针对此应用服务器中的磁盘进行简单的调优设置,不动任何应用层:
首先需要说明的是:系统在使用PDF文件是存在放磁盘最内的目录,使用的文件系统为ext2 ,在创建这个文件系统时,未指定块的大小。
现将应用系统中的:磁盘做如下设置

–指定ext 2中的块为4096byte字节,减少文件碎片
–将存放PDF目录放在磁盘最靠外的圆柱
–不使用文件中的atime属性,减少文件每次在读写时的记录时间
–针对这个系统的特性,可以使用虚拟文件系统tmpfs,防止使用此容量过大导致性能下降或死机,可以通过mount tmpfs /mnt/tmpfs -t tmpfs -o size=1G进行设置
经过上述调整后,在来测试:
IO使用如下图
这里写图片描述
内存使用如下图
这里写图片描述
由上述图可知,频繁读取PDF文件,CACHE内存与次测试相比,没有明显的下降,且使用稳定;
IO两次测试相比,负载都很高,对比CPU的使用率,及网络资源的使用资源来看,没有出现相应的异常情况,直接的原因是代码在处理PDF的写读逻辑出现问题,每次请求从磁盘读取同个文件的次数基本超过了5次,且这5次的读写操作都从直接从物理盘读取;
未完待续

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

针对读写操作频繁的应用系统的LINUX调优设置 的相关文章

  • 如何在 Linux 中重新添加 unicode 字节顺序标记?

    我有一个相当大的 SQL 文件 它以 FFFE 的字节顺序标记开头 我使用 unicode 感知的 linux 分割工具将此文件分割成 100 000 行块 但是当将这些传递回窗口时 它确实not与第一个部分以外的任何部分一样 只是它具有
  • ubuntu 的 CSS 更少(并且自动编译)? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我尝试过 simples 但现在 l
  • Python将文件从Linux复制到WIndows

    我正在构建一个网站 该网站有一个表单 可以捕获用户数据并在用户数据上运行一些cgi cgi 的第一步是需要将文件从 Linux Web 服务器复制到 Windows 计算机 服务器将使用 Active Directory 角色帐户作为复制凭
  • 裸机交叉编译器输入

    裸机交叉编译器的输入限制是什么 比如它不编译带有指针或 malloc 的程序 或者任何需要比底层硬件更多的东西 以及如何才能找到这些限制 我还想问 我为目标 mips 构建了一个交叉编译器 我需要使用这个交叉编译器创建一个 mips 可执行
  • 为什么默认情况下不启用 arp 忽略/通告 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我有一个需要经验才能回答的具体问题 为什么 arp ignore arp announce 在 Linux 安装 例如 debian 上默认不启用 有
  • Visual Studio - X11:缺少 DISPLAY 环境变量

    我正在使用 Visual Studio 2019 Enterprise 开发跨平台 Windows Linux x64 GUI 应用程序 在这个 2019 版本中 我们可以使用 Visual Studio调试平台 Windows 本机 和
  • pthread_self() 返回的线程 ID 与调用 gettid(2) 返回的内核线程 ID 不同

    这句话来自于pthread self 的手册页 http linux die net man 3 pthread self 那么 我应该根据什么来决定是否应该使用pthread self or gettid确定哪个线程正在运行该函数 两者都
  • 在嵌入式系统上将内核控制台发送到哪里?

    我正在开发一个嵌入式系统 该系统当前通过串行端口 1 上的控制台输出启动 Linux 使用启动加载程序中的控制台启动参数 然而 最终我们将使用这个串行端口 内核控制台输出的最佳解决方案是什么 dev null 能否以某种方式将其放在 pty
  • 亚马逊 Linux - 安装 openjdk-debuginfo?

    我试图使用jstack在 ec2 实例上amazon linux 所以我安装了openjdk devel包裹 sudo yum install java 1 7 0 openjdk devel x86 64 但是 jstack 引发了异常j
  • Apache LOG:子进程 pid xxxx 退出信号分段错误 (11)

    Apache PHP Mysql Linux 注意 子进程 pid 23145 退出信号分段错误 11 tmp 中可能存在 coredump 但 tmp下没有找到任何东西 我怎样才能找到错误 PHP 代码中函数的无限循环导致了此错误
  • 隐式声明“gets”

    据我所知 隐式声明 通常意味着该函数必须在调用之前放置在程序的顶部 或者我需要声明原型 然而 gets应该在stdio h文件 我已包含 有没有什么办法解决这一问题 include
  • Unix 中的访问时间是多少

    我想知道访问时间是多少 我在网上搜索但得到了相同的定义 读 被改变 我知道与touch我们可以改变它 谁能用一个例子来解释一下它是如何改变的 有没有办法在unix中获取创建日期 时间 stat结构 The stat 2 结构跟踪所有文件日期
  • 如何在 bash_profile 文件中添加导出语句?

    我正在尝试了解是否必须添加导出语句来在 bash profile 文件中设置变量 我该怎么做呢 例如 如果我必须添加 export AX name 那么我应该将其简单地写在文件末尾还是我还需要编写其他内容 简单写一下export AS na
  • 如何使用 nohup 获取正在运行的程序列表

    我正在通过 SSH 连接访问运行 CentOS linux 发行版 的服务器 由于我无法始终保持登录状态 因此我使用 nohup command 来运行我的程序 我找不到如何获取我开始使用 nohup 的所有程序的列表 工作 只有在我注销之
  • 如何在 Linux 中向热敏打印机发送 ESC/POS 命令

    我正在尝试在热敏打印机上发送 ESC POS 命令 但每当我发送它们时 热敏打印机都会将它们打印为文本 而不是作为命令执行它们 我在 prn 文件中编写这些命令 每当我执行 lp 命令来打印文件时 这些 prn 文件也会被打印 但作为文本
  • grep 彩色线条

    我编写了一个简单的 PHP shell 脚本 它解析文件并输出某些元素 它产生大量的输出 采用不同的 bash 颜色 绿色表示正常 黄色表示警告 红色表示错误等 在开发过程中我想过滤掉一些行 例如 所有包含红色文本的行 我可以使用grep
  • Linux 中的 Windows NAmed Pipes 替代品

    我们正在将现有的 Windows 代码移植到 Linux 我们使用 ACE 作为抽象层 我们使用 Windows 命名管道与多个客户端进行通信并执行重叠操作 linux 下这个相当于什么 我检查了linux命名管道 FIFO 但它们似乎只支
  • 在 MacOS 上构建需要 net461 的 dotnet SDK 项目的最简单方法

    我有一个 dotnet SDK sln and a build proj with
  • 在 Linux 服务器上创建和编辑 MS-Word 文档?

    希望开发处理文档的服务器端应用程序 源文档大多是MS Word 2003 2007 即MS版本的Docx 希望服务器应用程序能够在linux或windows上运行 想知道在linux下读写MS Word文件最好的工具或库是什么 兼容性是最重
  • 如何使用 PyAudio 选择特定的输入设备

    通过 PyAudio 录制音频时 如何指定要使用的确切输入设备 我的电脑有两个麦克风 一个内置 一个通过 USB 我想使用 USB 麦克风进行录音 这流类 https people csail mit edu hubert pyaudio

随机推荐

  • 简单易懂的Git回滚操作(reset、revert)

    简单易懂的Git回滚操作 reset revert 一 问题描述 二 背景知识 git的版本管理 及HEAD的理解 三 解决方法 方法一 git reset 具体操作 方法二 git revert 具体操作 一 问题描述 在利用github
  • 在命令行运行 VSCode(macOS)

    在命令行运行 VSCode macOS系统 Windows 版 VSCode 的安装脚本带着一个是否把 Code 加入 PATH 的选项 而 macOS版却没有 有的人想到给 VSCode 做一个符号链接加入 PATH 中 但实际上这样做会
  • IBM power小型机HMC管理口默认IP地址和ASMI默认密码

    IBM硬件管理控制台 Hardware Management Console 提供了标准的用户接口来配置和管理Power System系列服务器以及服务器上的分区 通过HMC软件可以管理服务器 POWER5 HMC控制地址 192 168
  • HCIP——BGP第一天实验

    一 实验要求 除R5的5 5 5 0环回外 其他所有环回均可互相访问 二 实验拓扑 三 实验过程 1 配置IP地址 R1 r1 int g0 0 1 r1 GigabitEthernet0 0 1 ip add 12 1 1 1 24 r1
  • STM32 电机教程 29 - 无刷无感入门1

    前言 无刷直流 Brushless Direct Current BLDC 电机是一种正快速普及的电机类型 它可在家用电器 汽车 航空航天 消费品 医疗 工业自动化设备和仪器等行业中使用 正如名称指出的那样 BLDC 电机不用电刷来换向 而
  • uvm的config_db

    config db 是用于在各个uvm对象里传递参数 一般参数类型 是interface int等 据说参数必须是静态类型 这个可以在uvm config db相关代码里确认 后来知道 config db还能设置sequence和seque
  • C#如何从数据库SQLServer中同时读取多个结果集

    当需要从数据库中同时读取多个结果集时 比如执行如下的sql语句 select from tblClass select from tblStudent 同时从两个表格中获取结果 会获取两个结果集 此时需要使用SqlDataReader对象的
  • vue使用threejs加载模型问题整理

    1 如果出现错误 THREE WebGLRenderer Error creating WebGL context 需要开启浏览器的gpu加速 GPU acceleration 地址栏输入 chrome flags ignore gpu b
  • 国考省考申论:归纳概括多个主体身上的优秀品质,透过动词现象(怎么做的),找到名词(精神品质)本质

    国考省考申论 归纳概括多个主体身上的优秀品质 透过动词现象 怎么做的 找到名词 精神品质 本质 2022找工作是学历 能力和运气的超强结合体 公务员特招重点就是专业技能 附带行测和申论 而常规国考省考最重要的还是申论和行测 所以大家认真准备
  • dede:list分页与控制文章标题显示字数

    关于dedecms分页 百度上也有许多教程 本人记性不好所以写个博客保存下来 pagesize控制每页显示条数 在 dede list 结束标签 后边写上 dede pagelist 标签即可 如何控制文章显示字 让溢出部分用 代替呢 其实
  • IPS与防火墙旁路部署

    一 防火墙旁路部署 实现防护功能的同时 可以完全不需改变用户的网络环境 并且可以避免设备对用户网络造成中断的风险 用于把设备接在交换机的镜像口或者接在 HUB 上 保证外网用户访问服务器的数据经过此交换机 并且设置镜像口的时候需要同时镜像上
  • iview+page封装+强制刷新

    前言 iview的page封装 缺点无法固定页码按钮数量 而且current的页面恢复选中第一个实现不了 这里动态写了强制刷新的方法 下面是组件cpage vue
  • 【Spring

    上篇 Spring 事件监听概述 对 Spring 事件监听的机制有了个基本的了解 本篇来详细的解读下Spring 的 事件监听机制 事件监听详解 ApplicationEvent ApplicationListener 基于注释 异步 排
  • 多态的实现

    多态 之前介绍过多态的概念就是基类引用派生类对象且和派生类有相同的同名覆盖函数 那么现在我们就具体讲讲怎么实现多态 类方法实现多态性有两种方法 1 方法重载 可以声明多个同名但参数个数 类型 和顺序不同的方法 编译时根据参数 个数 类型和顺
  • win环境下SSH key 配置

    从Gitlab上拉取代码报错 Warning Permanently added gitlab wang cn 47 94 8 13 ECDSA to the list of known hosts Connection closed by
  • windows下使用FFmpeg生成YUV视频文件并播放(通过命令的方式)

    一 YUV的定义 YUV是一种颜色编码方法 它跟我们常见的RGB格式区分开来 常使用在各个视频处理组件中 其中 Y 代表明亮度 U 和 V 代表其色度 视频播放器把市面上流行的MP4等格式文件的视频部分解码出来 得到的一般会是YUV格式的数
  • Java方法重写注意事项

    系原创 只为需要它的人 Java方法重写的几个要求 重写的方法与父类方法签名 方法名称和参数列表 相同 子类重写的方法访问修饰符范围不能低于父类 父类的私有方法不能被重写 static修饰的方法不能被重写 返回值类型 如果父类中方法返回值类
  • 解决mybatis一对多只能获取部分数据的问题

    需求 building表和position表 Building类中含有List positionList mybatis查询方法需要查询到所有的building和building中含有所有的position 问题 sql语句和一对多方法写的
  • SQL如何进行优化

    SQL优化 前言 对于初级程序开发工程师而言 SQL是很多人的弱项 为此我给大家来做一下总结 希望能够帮到你们 课程说明 1 对MySQL SQL优化方案做讲解 学习如何排查慢查询 SQL优化 分页查询优化 一页一页的往下面翻这种查询方式
  • 针对读写操作频繁的应用系统的LINUX调优设置

    在线签约系统调优 项目类型 限制型应用 需要频繁调用 进行签章 调用的 保存在 磁盘中 项目业务设计实现 这里简要说明一下业务流程 前端业务系统过来的请求通过Nignx进行分流 通过网关DSS 将各自的请求转发到相应的老 新签章系统进行处理