首页 > 其他分享 >网站高并发

网站高并发

时间:2024-03-11 18:11:40浏览次数:17  
标签:文件 网站 业务 并发 内存 服务器 资源

最近两周官网出现一个问题,就是访问速度很慢,开始寻找是某个业务文件被清除了找不到,然后去修改代码,再次上线的时候又出现了相同问题。然后将日志功能开启,今天出现问题去查日志发现出现   java.io.IOException: 打开的文件过多  这个错误,查找资料,说在linux情况下每个应用程序打开系统文件的资源是有限的,使用命令查看通过lsof -p ${pid} | wc -l查看单个进程实际打开的文件句柄数  发现57.意思就是java应用程序在并发的情况下只能最高打开57个文件资源。所以出现了这个系统错误。为什么重新启动服务就好了,过段时间还是出现这个问题就是因为业务代码一直在循环等待系统资源,一直获取不到,当重新启动服务器的时候就释放了资源。那么接下以下解决办法:

1.使用redis去做消息队列,因为业务简单所以可以使用redis的list数据结构去做

2.使用RabbitMQ,因为服务器上没有RabbitMQ环境所以放弃了这个选择。

3.直接将这个业务文件读进内存中,缺点:只有系统结束获取手动释放才会释放掉内存(虽然不多7MB)

 

铭记:并发情况下服务器对于系统的文件资源有限,应对办法有提高当前应用获取文件资源的最大数(高并发也应对不了), 或将业务拆离开来,使用消息队列或装文件进系统内存

标签:文件,网站,业务,并发,内存,服务器,资源
From: https://www.cnblogs.com/binjianhuastudy/p/18066704

相关文章

  • 如何建设一个高性能的网站
    摘要:文章根据高性能网站建设指南,通过软件质量属性的六个一级指标,来讨论一个如何建立一个高性能的网站,主要强调了前端工程师的重要性以及前端建设对于一个的网站性能的重要性。关键词:响应速率请求高性能效率在书中有几个令我印象深刻的数据,前端的问题可能消耗掉整体时间的80%,......
  • 清除缓存问题 localStorage浏览器本地缓存需清除网站数据 sessionStorage 创建各自的
    localStorage浏览器本地缓存pc需清除网站数据,或者开启新的无痕网页移动端app需进入设置页面,点击“清除浏览数据”选项;pc端的开启无痕就相当于开启一个新的浏览器无痕项目,但是app端开启无痕不会自动先清除之前已保存的数据sessionStorage浏览器页面缓存Window.sessionStorage......
  • 并发修改异常
    什么是并发修改异常:当我们在遍历实现了collection接口与iterator接口的集合时(List、Set、Map),我们可以通过遍历索引也可以通过迭代器进行遍历。在我们使用迭代器进行遍历集合的时候,会获取到当前集合的迭代对象。在里面有封装了迭代器的remove方法与集合自带的remove方法,如果我们......
  • 网站 url 跳转 刷新打不开 但回车能打开 刷新不能访问但回车 能访问
    可能是跨域问题,可以对比两个网址的curl参数,有一个缺少Referer:https://account.wps.cn/  例如:curl^"https://authserver.gdmu.edu.cn/authserver/login?service=https^%^3A^%^2F^%^2Fms.gdmu.edu.cn^%^2Floginwps^"^-H"Accept:text/html,application/xhtml+xml,applic......
  • 多线程系列(十六) -常用并发原子类详解
    一、简介在Java的java.util.concurrent包中,除了提供底层锁、并发同步等工具类以外,还提供了一组原子操作类,大多以Atomic开头,他们位于java.util.concurrent.atomic包下。所谓原子类操作,顾名思义,就是这个操作要么全部执行成功,要么全部执行失败,是保证并发编程安全的重要一环。相......
  • 分布式锁——JVM锁、MySQL锁解决多线程下并发争抢资源
    分布式锁——JVM锁、MySQL锁解决库存超卖问题引入库存扣案例需求背景电商项目中,用户购买商品后,会对商品的库存进行扣减。需求实现根据用户购买商品及商品数量,对商品的库存进行指定数量的扣减publicStringdeductStock(LonggoodsId,Integercount){//1.查询商品......
  • IC设计及验证学习网站
    1.验证1.1chipverify.com不仅包括SV、UVM语法介绍,还包括一些小型项目可以增加对验证的熟悉。1.2testbench.in同样有SV、UV语法介绍和小项目。1.3verificationguide.com同样有SV、UV语法介绍和小项目。2.设计2.1Verilog编程。牛客网和HDLBits。2.2vlsitutorials.......
  • 使用C#和MemoryCache组件实现轮流调用APIKey以提高并发能力
    文章信息标题:使用C#和MemoryCache组件实现轮流调用APIKey以提高并发能力的技巧摘要:本文介绍了如何利用C#语言中的MemoryCache组件,结合并发编程技巧,实现轮流调用多个APIKey以提高系统的并发能力。通过示例代码和详细说明,读者将了解如何有效地管理APIKey的调用次数限制,并优化系......
  • 从零开始用Hexo+GithubPage搭建个人网站(保姆级)
    写在前面:猫世界-个人博客-GPT4订阅保姆级教程1.准备阶段1.1了解系统类型按WIN+R,输入cmd,回车输入以下内容并按下回车systeminfo我的电脑就是x64系统1.2Git下载点此处下载Git根据系统类型选择,因此我选64-bitGitforWindowsSetup注:下载后安装,安装过程除了安......
  • Java并发编程之CAS原理分析
    Java并发编程之CAS原理分析在并发编程中,我们经常需要处理多线程对共享资源的访问和修改。那么如何解决并发安全呢?一.解决并发安全问题的方案最粗暴的方式就是使用synchronized关键字了,但它是一种独占形式的锁,属于悲观锁机制,性能会大打折扣。olatile貌似也是一个不错的选择,......