首页 > 系统相关 >记一次 Linux 生产环境,高并发处理过程

记一次 Linux 生产环境,高并发处理过程

时间:2022-09-03 15:56:36浏览次数:98  
标签:处理过程 random dev 并发 Linux java security 连接

一、关闭用不到的服务器资源:定时任务,减轻数据库的压力。 二、前端H5调用接口个数减少,减少请求连接次数。缓解服务器及数据库的压力,同时增大客户端与服务器端的连接超时时间,增加用户可以查询到数据的机率。 三、增加第三台tomcat负载,刚启动时有效。过后特别慢。 经过前三步,且加了负载,依然存在访问特别慢。故再次经过如下调整最终稳定快速运行。记录一下。感谢同事们的坚持。 四、解决 oracle 数据库,java jdbc连接异常 oracle 数据库,java jdbc连接异常:Could not get JDBC Connection; nested exception is java.sql.SQLException: Io 异常: Connection reset 解决过程: Connection reset显然是数据库连接断开,可能的原因:1、网络不稳定,断开时间过长,导致reset 2、数据库连接被其它线程关闭 3、数据库连接池配置的问题,导到程序获取到某个连接进行操作时,而实际上此连接已经失效导致出错。 当数据库连接池中的连接被创建而长时间不使用的情况下,该连接会自动回收并失效,但客户端并不知道,在进行数据库操作时仍然使用的是无效的数据库连接,这样,就导致客户端程序报“ java.sql.SQLException: Io 异常: Connection reset” 或“java.sql.SQLException 关闭的连接”异常。 原因:和Java的安全随机数生成器的实现原理相关。java.security.SecureRandom is a standard API provided by sun. Among various methods offered by this class void nextBytes(byte[]) is one. This method is used for generating random bytes. Oracle 11g JDBC drivers use this API to generate random number during login. Users using Linux have been encountering SQLException(“Io exception: Connection reset”). 1)/dev/random是Linux内核提供的安全随机数生成设备; 2)/dev/random依赖系统中断信息来生成随机数,当设备数目比较少时,产生随机数的速度比较慢,如果应用对随机数的需求比较大时就会供不应求; 3)/dev/random在读取时会阻塞调用线程; 4)/dev/urandom是/dev/random的改良版本,解决了随机数生成慢、阻塞调用的问题,但同时稍微降低了安全性; 5)Linux环境下man random命令可以查阅到/dev/random和/dev/urandom的介绍,比较详尽; /dev/random 是堵塞的,在读取随机数的时候,当熵池值为空的时候会堵塞影响性能,尤其是系统大并发的生成随机数的时候,如果在随机数要求不高的情况下,可以去读取/dev/urandom 1、启动jvm时,修改应用的JVM参数,方法有三种: -Djava.security.egd=file:/dev/../dev/urandom -Djava.security.egd=file:/dev/./urandom -Djava.security.egd=file:/dev/urandom  2、修改JRE的java.security文件变量securerandom.source 修改配置文件java.security 在$JAVA_HOME/jre/lib/security/java.security  参数 securerandom.source=file:/dev/urandom 五、配置各负载linux服务器 高并发socket最大连接数 Linux操作系统,无论是编写客户端程序还是服务端程序,在高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。 1、修改用户进程可打开文件数限制,如图所示: 说明: ulimit –n :查看当前系统允许当前用户进程打开的文件数限制。 默认为1024:表示当前用户的每个进程最多允许同时打开1024个文件。 这1024个文件中还得去除每个进程打开的标准输入、标准输出、标准错误、服务器监听socket等等,剩下的可用于客户端socket连接的文件数就只有 1024-10=1014个左右,也就是基于Linux的程序最多允许同时1014个TCP并发连接。 (1)修改Linux系统对用户打开软限制和硬限制,如图所示: vim /etc/security/limits.conf 添加 root soft nofile 65535         root hard nofile 65535         root soft noproc 65535         root hard noproc 65535   说明:root代表修改了root用户打开文件的数的限制,可以用“*”代表所有用户soft和hard指定要修改的软限制还是硬限制。65535 指定修改的新限制值,也就是最大打开的文件数(软限制一定要小于或等于硬限制) (2) 添加完成后,source /etc/security/limits.conf 使配置生效。 六、Nginx 配置分流机制 (1)已知后台登录与同步新生缴费数据接口只有少部分人进行使用,而大量接口调用来自于H5. 所以 可以按照url路径不同进行分流。 (2)为确保公司人员快解决故障问题。按指定ip进行访问指定服务器。 (3)负载服务器按内存及cpu资源使用情况,分配分流压力的比例、失败连接次数、超时时间。  

标签:处理过程,random,dev,并发,Linux,java,security,连接
From: https://www.cnblogs.com/zjp8023/p/16652807.html

相关文章

  • 并发的核心:CAS 是什么?Java8是如何优化 CAS 的?
    大家可能都听说说Java中的并发包,如果想要读懂Java中的并发包,其核心就是要先读懂CAS机制,因为CAS可以说是并发包的底层实现原理。今天就带大家读懂CAS是......
  • 并发的核心:CAS 是什么?Java8是如何优化 CAS 的?_2
    大家可能都听说说Java中的并发包,如果想要读懂Java中的并发包,其核心就是要先读懂CAS机制,因为CAS可以说是并发包的底层实现原理。今天就带大家读懂CAS是......
  • Linux df -h 命令卡住
    用df-h查看磁盘情况,无奈卡住无法显示解决方法:1、首先就是使用strace去追踪到底在哪里卡住了stracedf-h2、如果没有strace命令则进行安装即可yuminstallstrace......
  • LInux常用操作命令
    概述命令属于死东西,属于多用多会,不用就忘的知识,孰能生巧;Tab键可以实现自动补全和提示,要合理使用;history命令可以显示历史执行记录,或者使用方向键来切换前后执行过的命......
  • kali linux 2022 下安装vmware遇到vmmon、mvnet缺少问题
    #从github上下载$gitclonehttps://github.com/mkubecek/vmware-host-modulescd./vmware-host-modules#进入你clone的文件夹下:这个版本号根据你下载的版本定$git......
  • Linux Base controller
    Linux目录介绍常用命令初体验几个常用命令命令对应英文作用lslist查看当前目录下内容pwdprintworkdirectory查看当前所在目录cd[目录名]chan......
  • Linux 定时器介绍
    以下内容为本人的著作,如需要转载,请声明原文链接微信公众号「englyf」https://www.cnblogs.com/englyf/p/16651865.html曾经常去沙县小吃,就为了蹭上一碗4块钱的葱油拌面,......
  • C++并发编程实战(第2版)
    这本书翻译的烂,写的也不好。甚至不如看cppreference。这本书英文叫C++ConcurrencyinAction,SecondEdition英文原版也是垃圾,C++实在没有写得稍微好点的并发编程的书......
  • shell: list_executable_file - 列出可执行文件的名称(linux)
    shell:list_executable_file-列出可执行文件的名称(linux)    一、shell:list_executable_file 1#!/usr/bin/bash234#file_name=list_executabl......
  • Linux常用命令
    文件管理ls命令-a显示隐藏文件-A不包括.和..-l列表形式-t按最后修改时间排序-r以文件名相反次序,默认是按文件名次序输出,-r逆序-S根据文件大小-R递归......