SSH高性能并发的注意事项(个人总结)

1、  应该尽量减小service事务代码块的大小,在事务中对记录进行修改时,会对相应表加锁,如:A事务对table1 和table2表的记录进行修改,那么B事务再对table1 和table2表的记录进行修改时会等A事务commit以后才能获得table1和table2的锁,这样事务太长并发量大的时候系统就会变慢

2、  事务里对表的更新操作应该按一定顺序,如果顺序不同则可能会出现数据库表死锁的情况,如:A事务先对两张表的修改顺序是table1、table2,而B事务对两张表的修改顺序是table2、table1,这样并发执行的时候就会出现死锁情况

3、 程序里指定事务隔离级别,默认是数据库的隔离级别,mysql是行级锁,sql server是表级锁,如果是sql server则需要开启快照模式

  <tx:advice id="txAdvice">
  <tx:attributes>
   <tx:method name="get*" read-only="true" />
   <tx:method name="find*" read-only="true" />
   <tx:method name="load*" read-only="true" />
   <tx:method name="sum*" read-only="true" />
   <tx:method name="count*" read-only="true" />
   <tx:method name="auto*" read-only="true" />
   <tx:method name="*" isolation="READ_COMMITTED" timeout="60000"/>
  </tx:attributes>
 </tx:advice>   

4、  开启hibernate二级缓存(建议使用EHcache),这样大大提高效率

<prop key="hibernate.cache.use_query_cache">

           ${hibernate.cache.use_query_cache}

        </prop>

        <prop key="hibernate.cache.provider_class">

               ${hibernate.cache.provider_class}

        </prop> 

hibernate.cache.use_query_cache=true

hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider

dao中查询前使用getHibernateTemplate().setCacheQueries(true);

5、  如果有系统出现内存溢出没有规律的现象,则应该考虑常用模块是否有程序中有遍历集合循环查询数据库的问题,排除这种情况后就只能在配置上下手了,以jboss4.2.3为例说明

set JAVA_OPTS=-server –Xms512m -Xmx512m-XX:PermSize=512m -XX:MaxPermSize=512m  -XX:+UseParallelGC-XX:+UseParallelOldGC

详细参数说明大家可以在网上自己查找,这里需要指出的是JVM有一个最大内存限制,网上说这个限制一般是 2GB-3GB(一般来说Windows系统下为1.5G-2G,Linux系统下为2G-3G),有说64位操作系统没这个限制的,但本人在64位的widows2008上验证,同样有这个限制


程序问题往往是造成内存溢出的主要原因,大家一定要注意自己代码的质量

6、  使用集群,web应用服务器集群(可以使用apahce+modjk+tomcat/jboss或者linux下使用LVS+Keepalived),数据库如果使用sql server可以使用2008版本自带的集群,如果是mysql建议使用双机热备来增强安全性

最终架构:

 

内容来源于 小红提技术博客,http://www.xiaohongti.com/ 转载请保留地址,尊重版权。

基于FRP + ttyd 的远程Web终端控制:无SSH环境下的救急方案 摘要:无SSH环境下的远程Web终端控制方案 当SSH服务不可用且无法安装图形化工具时,本文提出了一种基于FRP内网穿透和ttyd Web终端的应急远程控制方案。该方案通过在受控服务器本地运行ttyd创建Web终端,利用FRP的STCP模式建立安全隧道,使控制端通过浏览器即可访问服务器命令行界面。方案具有轻量级、无需复杂依赖、绕过SSH限制等特点,特别适合紧急恢复场景。文章详细介绍了FRP服务器配置、ttyd安装、安全密钥设置等关键步骤,并强调了双因素认证等安全措施。 阅读详情

相关推荐

SSH架构一般支持多少个并发?

在公司使用struts spring hibernate ibatis开发了一个项目,数据库使用的是DB2,发布使用AIX操作系统。 容器使用的Websphere Application Server。 Jsp  页面使用了jstl处理。 其中访问权限系统使用了Webservice访问LDAP提供用户登录等认证。 对WAS和连接池进行了调优。1024M的最大JVM空

马如林的IT博客 5250

打造高并发安全系統(ssh)应该注意的几个问题

最近验收会终于开完了,也算是稍微松了一口气,之前系统定位是分布式部署,但是到了最后上线阶段又改为集中部署,这样性能问题就成了当前比较棘手的一件事,项目上线后频繁出线内存溢出、数据库锁表问题,加上后来压力测试时出现的系统并发慢的问题,经过这N久的折磨后,现在终于有了一些成果,下面简

yancaobisi的专栏 1131

ssh-perf:SSH性能测试工具

SSH性能 用于测试SSH,SCP和SFTP性能的工具。 特征 基准测试: 每秒原始连接 每秒执行命令 SCP / SFTP上传/下载速度 最大开放连接 单进程并发 多进程并发 交错/延迟的请求初始化 流 该工具是通过以下一种模式从CLI启动的: 每秒连接数 每秒执行人数 sftp性能 scp性能 对于SCP和SFTP,必须指定用于上载的本地路径或用于下载的远程路径(无主机名)。 该工具尝试测试到指定主机的连接。 如果失败,该工具将退出。 然后,该工具将按照指示启动尽可能多的工作程序和进程,并尝试以指定的方式尽快运行。 它每秒汇总一次所有请求的结果并以JSON格式打印运行摘要: [*] {"time":123.620521976,"successes_per_sec":0,"errors_per_sec":0, ... } 对运行满意后,必须手动停止工具*。 这与许多其他性能工

SSH超时断开连接的解决办法

高版本的Linux自带的OpenSSH在使用的时候,几分钟不操作的话就会自动断开连接,这是出于安全的考虑,但是对于需要长时间使用的用户来说很麻烦,每次都要重新连接。解决方法如下:将/etc/ssh/sshd_config中的“ClientAliveInterval”设置取消注释,并把0改为一个较小的数值(单位:秒)即可 。具体说明参看下面的解释:OpenSSH ClientAliveInterva

3884

什么事LLVM和Clang?Clang与GCC有什么区别?Clang如何使用?

这个问题主要讲Xcode编译器的认知,在学习iOS之前有必要学习一下Objective-C的编译环境。 在了解LLVM和Clang之前,先得了解一下什么是编译器。 编译器是一种计算机程序,它将某种编程语言(高级编程语言)写成的源代码转换成另一种编程语言(低级编程语言)。一个现代编译器的主要工作流程为:源代码->预处理器->编译器->目标代码->链接器->可执行程序...

Welcome~ 9724

Python气象数据处理实战:用PyCINRAD轻松绘制雷达PPI图像(附避坑指南)

本文详细介绍了如何使用Python库PyCINRAD处理中国CINRAD系列天气雷达的基数据,并绘制专业的PPI图像。内容涵盖从环境配置、数据读取、核心绘图到高级定制与批量处理的完整流程,并针对安装依赖、中文乱码、数据范围等常见问题提供了实用的避坑指南,帮助气象工作者高效完成雷达数据可视化。

dog123的博客 223

解决ssh超时连接断开

输入vi /etc/ssh/sshd_config,编辑ssh相关配置 1、大约92行,将TCPKeepAlive yes注释解掉 2、将96行ClientAliveInterval 0,97行ClientAliveCountMax 3 注释解除 名词解释: ClientAliveInterval的值即为服务端向客服端请求消息的时间间隔,单位为秒,默认值为0,即永不发送 ClientAliveCountMax 的值表示服务端向客户端发送请求消息未响应的最大次数 例如:ClientAliveInterva

xiaowang_test的博客 1496

ArcGIS:根据DEM数据提取区域水系

利用DEM数据提取区域水系是常见的水文分析应用,为了获取区域的矢量水系数据,我们可以通过ArcGIS对高程DEM数据进行水文分析,为地表水流建立模型,进而获取到该地的水系数据,DEM数据精度越高,获取到的水系数据精度也就越高。以下介绍如何用ArcGIS提供的工具提取水系。

Oruizn的博客 9110

VSCode Remote-SSH:无缝远程开发完全指南

Remote-SSH 是 Visual Studio Code(VS Code)的官方扩展,允许开发者通过 SSH 协议直接连接远程服务器进行开发,无需将代码下载到本地。它提供完整的开发功能(如代码补全、调试、终端),并保持与远程环境的一致性。

我的博客 1294

AXI4协议之AXI4-Lite接口详解及实战

本文首先对AXI4总线协议进行了一个简单的介绍,然后使用vivado提供的模板创建了一个AXI4-Lite Master的接口,并生成了一个具有Master和Slave的代码实例,阅读该示例代码,进行修改后用于自己的项目。

高阶近似的博客 2万+

安装glibc出现../sysdeps/nptl/pthread.h:744:47:error:argument 1 of type ‘struct __jmp_buf_tag *‘ 解决方案

本文主要介绍了安装glibc出现…/sysdeps/nptl/pthread.h:744:47:error:argument 1 of type ‘struct __jmp_buf_tag *’ 解决方案,希望能对使用Linux的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 12万+

ssh2-python 项目常见问题解决方案

ssh2-python 项目常见问题解决方案 项目基础介绍 ssh2-python 是一个基于 libssh2 C 库的 Python 绑定库,旨在提供高性能的 SSH2 协议支持。该项目的主要编程语言是 Python,但底层依赖于 C 语言库 libssh2。ssh2-python 的目标是为开发者提供一个高效、直接的接口来处理 SSH2 协议,适用于需要高性能 SSH 操作的场景。 新手使用注...

gitblog_00937的博客 960

【智能车Code review】——环岛的判定与补线操作

【1】效果展示图 状态1、状态2 状态3 状态4、状态5 状态6 状态7 状态8 【2】状态机设定需要的参数 以右环岛为例: k_left:左线的斜率 rou_of_left:左线的方差 last_rou_of_left:上一帧的左线方差 l_start:左线第一行为黑的所在行 right_turn_down; right_turn_middle; right_turn_up; 左线的下、中、上拐点 fiv_width[i]:第i行的赛道宽度 leftline_du

hanhan的博客 2万+

告别卡顿!用Vivado远程综合+SSH密钥+NFS共享,把编译任务甩给高性能服务器

本文详细介绍了如何通过Vivado远程综合与NFS共享技术,将FPGA开发中的计算密集型任务迁移到高性能服务器,显著提升编译效率。方案涵盖SSH密钥认证、NFS文件共享配置及Vivado远程执行优化,实测显示综合速度提升5倍,特别适合处理UltraScale+等高端器件设计。

weixin_33737774的博客 473

Python 爬虫实战:去哪儿网机票价格爬取与出行比价分析

本文介绍了一个基于Python的机票价格监控系统,通过爬取去哪儿网数据实现多航线查询与智能比价。系统采用requests+BeautifulSoup+selenium技术栈,具备以下功能: 实时查询指定航线价格 历史价格追踪与分析 最低价推荐与价格预警 数据可视化展示 文章详细解析了去哪儿网的页面结构和反爬机制,提供了Selenium浏览器的完整配置方案,并实现了一个可稳定运行的机票采集爬虫。该系统能帮助用户掌握价格波动规律,选择最优购票时机,每年可节省可观的出行成本。

u014481728的博客 673

告别 SAP GUI 事务码时代:手把手教你配置 SAP Fiori Launchpad

SAP S/4HANA私有云系统安装后,Fiori Launchpad空页面问题常因多层配置未完成所致。SAP仅提供基础技术配置,实际应用启用、业务目录创建、角色授权等需实施团队完成。Fiori配置分为跨客户端层(技术目录)、客户端定制层(业务目录、空间页面)和用户个性化层三层架构。标准授权流程需依次创建业务目录、业务角色、空间页面并正确分配。SAP建议使用最新的配置工具如FLPAM和FLPCM,并采用Spaces/Pages替代已弃用的Groups概念。完整授权需六步:分配基础角色、创建业务目录、维护业务

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 541

树莓派建立个人网站(三):frp内网穿透实现外网访问

流程一览:一:实现方案二:frp的使用1. 准备工作2. 安装frp3. 访问方式(下方的域名可替换为公网IP地址)4. 树莓派上的frpc的开机启动三:注意事项四:参考博文 一:实现方案   依照目前针对内网穿透的三种方案: 获得自家的公网IP,使用路由器进行端口映射 使用第三方的软件进行内网穿透,如花生壳等 使用工具进行内网穿透,如frp等   其中第一种方案因为ipv4地址紧张,ipv6还未普及等原因,很难获取到自家的公网IP,且IP固定因为不便于更换服务器位置。   第二种方案和第三种方案其实本

一叶知秋境 1555

温度PID控制PLC程序

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

SSH ControlPath设置连接复用路径

通过配置SSH的ControlPath和ControlMaster,实现多会话共享同一加密通道,显著减少重复握手带来的延迟。尤其在频繁执行scp、端口转发或自动化脚本时,可将连接耗时从数百毫秒降至几十毫秒,大幅提升远程开发效率,适用于深度学习、CI/CD等高频交互场景。

weixin_42103128的博客 410

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Java并发编程:ConcurrentHashMap深度解析

在当今的互联网时代,高并发已经成为系统性能的关键考量因素。以Java为例,在高并发环境下,如何有效地管理并发访问和更新数据结构,成为了开发者必须面对的挑战。ConcurrentHashMap作为Java并发编程中的重要工具,其重要性不言而喻。想象一下,在一个大型在线交易系统中,成千上万的用户同时进行交易操作,如何确保数据的一致性和系统的稳定性?这正是ConcurrentHashMap能够发挥作用的场景。

AIHacksCash的博客 846

SSH X11转发:在远程服务器上显示图形界面

通过SSH X11转发,可在无图形界面的远程服务器上安全地显示Matplotlib等可视化结果。结合Miniconda环境管理,既保持轻量又支持交互式调试,特别适合AI开发中的临时图形需求,无需安装完整桌面环境。

weixin_36311421的博客 1201

Parallec性能优化:从理论到实践的并发控制技巧

Parallec作为一款高性能的Java并发网络客户端库,支持HTTP、SSH、TCP、UDP和Ping等多种协议,能够在20行代码内聚合10万个API请求,并在12秒内完成对8000台服务器的Ping或HTTP调用。本文将从理论到实践,详细介绍Parallec的并发控制技巧,帮助开发者充分发挥其性能优势。 ## 一、并发控制核心组件 ### 1.1 CapacityAwareTaskSche

gitblog_00327的博客 769

SSH ControlMaster配置:实现多通道共享单一连接

通过SSH ControlMaster配置,多个会话可共享单一安全连接,避免重复认证与网络延迟。尤其在深度学习开发中,频繁访问远程GPU服务器时,能显著提升终端、文件传输和自动化脚本的响应速度,实现毫秒级接入和高效协同。

weixin_42284380的博客 1114

Java并发编程:Atomic类深度解析

在当今的软件开发领域,Java作为一门广泛使用的编程语言,其并发编程能力尤为重要。尤其是在多核处理器普及的今天,如何高效地利用多核优势,实现高并发处理,成为了提升系统性能的关键。然而,在高并发环境下,对共享资源的访问和修改往往容易引发线程安全问题。为了解决这一问题,Java提供了一系列的并发工具和类库,其中Atomic类就是其中之一。在多线程环境中,共享资源的状态更新往往需要多个步骤来完成,如读取、计算、更新等。在这个过程中,任何一个步骤的延迟或错误都可能导致数据不一致或竞态条件。

JavaCodePro的博客 983

macOS终极指南:通过SSH安全挂载远程文件系统

想要在macOS上像访问本地文件一样安全地操作远程服务器文件吗?🚀 SSHFS正是你需要的解决方案!作为基于SSH文件传输协议的文件系统客户端,SSHFS让你能够轻松挂载远程目录到本地,享受无缝的文件操作体验。 ## 什么是SSHFS?🤔 SSHFS是一个基于SSH文件传输协议的文件系统客户端。由于大多数SSH服务器已经支持这个协议,设置起来非常简单:服务器端无需任何额外配置,客户端挂载文

gitblog_01046的博客 700
上一篇: (四)避免对象的内存泄露
下一篇: 将博客搬至优快云
yufei_java
博客等级 码龄10年 18粉丝 60原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值