首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Java3y

    并发 MySQL 优化指南

    这里我给大家推荐一个免费的Mysql实训营,我朋友诸葛老师关于大厂数据库Mysql优化的分享——《并发Mysql性能优化与海量数据架构实战》,4天时间下来,你可以收获像我一样的优化MySQL数据库的实战经验 ►9月14日-9月17日每晚8点,集训四天,吃透Mysql 这个特训营课程一共有4天时间,通过这个课程: 让你对并发系统Mysql性能调优以及海量数据处理架构有一个深度的理解,深度掌握Mysql底层优化原理 ,快速提高分析与优化大型系统线上环境Mysql各种性能问题的能力以及构建大型并发可用海量数据处理架构的能力。 尤其是像数据库Mysql优化,这可以说是高级资深工程师必备和想进一线互联网公司必备的一块技能。 我之前已经学习过这个课程,里面讲的很多性能优化的技术,我已经用在公司项目里了,非常实用,强烈推荐! 、Kafka消费者并发设计,以及Kafka安装和应用等内容 设计模式 涉及常见的23种经典设计模式 Spring原理及应用  涉及Spring IoC原理、Spring AOP原理、Spring MVC

    3.1K20编辑于 2022-09-13
  • 来自专栏xdecode

    Java并发之锁优化

    本文主要讲并行优化的几种方式, 其结构如下: 锁优化 减少锁的持有时间 例如避免给整个方法加锁 1 public synchronized void syncMethod(){ 2 Collections.synchronizedMap 其本质是在读写map操作上都加了锁, 在并发下性能一般. JDK中各种涉及锁优化并发类可以看之前的博文: 并发包总结 ThreadLocal 除了控制有限资源访问外, 我们还可以增加资源来保证对象线程安全. 如果想要在并发场合下获取更好的性能, 则可以使用基于CAS的ConcurrentLinkedQueue.  关于无锁, 这边不再赘述, 之前博文已经有所介绍, 具体见: Java并发之无锁与Atomic源码分析

    87940发布于 2018-07-04
  • 来自专栏JavaQ

    并发编程-锁优化详解

    为了提高线程对共享数据访问的效率,HotSpot虚拟机从JDK1.5到JDK1.6做了重大改进,提供了很多锁优化技术,包括自旋锁、自适应自旋锁、锁消除、锁粗化、轻量级锁和偏向锁。 当线程挂起或恢复执行的时,会从用户态转入内核态中完成,这种操作是很消耗时间的,在并发情况下对应用和系统来说都有很大压力。 所以,线程并发请求锁的时候,让后来的线程在不放弃处理器执行时间的情况下稍等一下,线程做自旋,自旋期间观察持有锁的线程是否会很快释放锁,这种技术就是所谓的自旋锁。 锁消除 一些使用了锁控制的代码,在虚拟机即时编译器运行时检测到不存在对共享数据的竞争访问,也就是代码只会被一个线程访问,此时会对锁进行消除,这项优化称为锁消除。 但是,对于一些连续操作都对同一个对象进行反复加锁、释放锁的情况来说,缩小锁的作用范围会消耗更多的资源,这种情况需要扩大锁的作用范围,这项优化称为锁粗化。

    62430发布于 2018-12-06
  • 来自专栏技术知识分享

    并发下linux ulimit优化

    系统默认设置成1024,但是这个数字对于服务器特别是大并发的远远是不够的,所以,我们需要结合实际情况修改成一个更大更合理的值。 fs.file-max = 6553560 重启生效 另外还有一个,/proc/sys/fs/file-nr,可以看到整个系统目前使用的文件句柄数量 ulimit -u 比如我们在模拟大规模http并发测试的时候

    3.2K20发布于 2021-11-19
  • 来自专栏算法

    并发性能优化随笔

    并发性能优化技巧 在我的并发技巧系列文章中,我已经介绍了不少性能优化的技巧。为了保证这篇文章的完整性,可能会有一些重复。 并发高就分库:单库的资源有限,支持的连接数不会太高。 大多数情况下分库分表一起进行:因为量大和并发经常同时出现。 比如你要请求的两个接口没有关联性,可以考虑使用线程池去并发请求。 总结 本文介绍了多种并发性能优化技巧,包括 MySQL 的索引和分库分表、缓存的使用、消息队列与流量聚合、线程池的优化等。 这些技巧在实际开发中非常有用,可以帮助我们更好地应对并发场景,提升系统的性能和稳定性。

    44710编辑于 2025-01-24
  • 来自专栏A周立SpringCloud

    并发下的抽奖优化

    这很明显是一个并发下如何摆脱数据库读写,I/O瓶颈的问题。 一旦数据库同一时间片内的连接数被打满,就会导致这个时间片内其他后来的全部请求因拿不到连接而超时,导致访问此数据库的其他环节也出现问题,所以RT就会异常飙 于是我们在思考着怎么优化这个并发下的抽奖问题 优化细节 1. 抽奖详情页 a. 线上开启缓存 线上已写缓存逻辑,但是没有用switch开启。开启后可以减少数据库的并发IO压力,减少锁冲突。 b. 抽奖逻辑 a.队列削峰 用额外的单进程处理一个队列,下单请求放到队列里,一个个处理,就不会有qps的并发问题了。 在原来的代码中用的是for update行锁,在并发的情况下会很多这样的修改请求,每个请求都需要等待锁,某些线程可能永远都没有机会抢到这个锁,这种请求就会死在那里。

    1.9K10发布于 2020-02-20
  • 来自专栏XBD

    Linux并发内核参数优化

    通过上述步骤,就为支持并发TCP连接处理的通讯处理程序解除关于打开文件数量方面的系统限制。 此外,如果你的连接数本身就很多,我们可以再优化一下TCP的可使用端口范围,进一步提升服务器的并发能力。 在TCP并发的情形下,如果使用同步I/O,这会严重阻塞程序的运转,除非为每个TCP连接的I/O创建一个线程。但是,过多的线程又会因系统对线程的调度造成巨大开销。 综上所述,在开发支持并发TCP连接的Linux应用程序时,应尽量使用epoll或AIO技术来实现并发的TCP连接上的I/O控制,这将为提升程序对并发TCP连接的支持提供有效的I/O保证。 经过这样的优化配置之后,服务器的TCP并发处理能力会显著提高。以上配置仅供参考,用于生产环境请根据自己的实际情况调整观察再调整。

    5.3K21编辑于 2022-10-27
  • 来自专栏Java工程师成长之路

    SpringCloud并发性能优化

    SpringCloud并发性能优化 1.1. 前言 当系统的用户量上来,每秒QPS上千后,可能就会导致系统的各种卡顿,超时等情况,这时优化操作不可避免 1.2. 优化步骤 第一步:优化大SQL,对于多表关联的SQL,当单表数据几百上千万行时,执行可能会达到好几秒,对微服务系统来说,我是不建议join多表操作,除非是数据量少的维表,我们可以将一句大SQL拆分成多个过程 Hystrix参数优化 我们知道Hystrix线程池的大小和超时时间我们都是可以设置的,线上环境,我们需要对这些参数进行调整,该如何调整呢? 降级操作 对于降级操作,可以举些例子参考 比如redis挂了,对查询可以查本地缓存,mysql等 对插入操作,数据库挂了,可以尝试写入日志文件,或写入MQ之后恢复 参考: 每秒上万并发下的Spring Cloud参数优化实战 微服务架构如何保障双11狂欢下的99.99%可用

    2.8K31发布于 2019-08-21
  • 来自专栏微信公众号:Java团长

    (四)Java并发秒杀API之高并发优化

    SeckillExecution(seckillId, SeckillStatEnum.INNER_ERROR); } } 改造执行秒杀executeSeckill方法,减少一道虚拟机GC程序,优化性能

    1.1K20发布于 2018-12-25
  • 来自专栏雨临Lewis的博客

    Java并发秒杀API(四)之高并发优化

    并发优化分析 关于并发 并发性上不去是因为当多个线程同时访问一行数据时,产生了事务,因此产生写锁,每当一个获取了事务的线程把锁释放,另一个排队线程才能拿到写锁,QPS(Query Per Second 在本项目中高并发发生在哪? 并发发生的地方 在上图中,红色的部分就表示会发生并发的地方,绿色部分表示对于并发没有影响。 为什么需要单独获取系统时间? 这是为了我们的秒杀系统的优化做铺垫。 由于Jedis并没有实现内部序列化操作,而Java内置的序列化机制性能又不高,我们是一个秒杀系统,需要考虑并发优化,在这里我们采用开源社区提供的更高性能的自定义序列化工具protostuff。 项目笔记相关链接 Java并发秒杀API(一)之业务分析与DAO层 Java并发秒杀API(二)之Service层 Java并发秒杀API(三)之Web层 Java并发秒杀API(四)之高并发优化 ) Java并发秒杀API之业务分析与DAO层 Java并发秒杀API之Service层 Java并发秒杀API之Web层 Java并发秒杀API之高并发优化 警告 本文最后更新于 October

    1.8K20编辑于 2022-01-11
  • 来自专栏冰河技术

    并发并发环境下如何优化Tomcat性能?看完我懂了!

    作者个人研发的在并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。 写在前面 Tomcat作为最常用的Java Web服务器,随着并发量越来越高,Tomcat的性能会急剧下降,那有没有什么方法来优化Tomcat在并发环境下的性能呢? protocol="org.apache.coyote.http11.Http11AprProtocol" Tomcat并发优化 安装APR [root@binghe ~]# yum -y install 请求数超过这个数的请求将不予处理,默认100 enableLookups=”false” URIEncoding=”UTF-8″ /> 写在最后 如果觉得文章对你有点帮助,请微信搜索并关注「 冰河技术 」微信公众号,跟冰河学习并发编程技术 最后,附上并发编程需要掌握的核心技能知识图,祝大家在学习并发编程时,少走弯路。 ?

    1.3K30发布于 2020-10-29
  • 来自专栏视频加密

    并发视频网站优化技巧?

    并发视频网站的优化技术是很多网站程序员的重中之重,如何完善用户体验,如何节省带宽等,这里说到并发视频网站的优化就不得不提p2p技术的应用。    视频已成为网络资​‌‌源的主流趋势,并发视频网站播放视频实现边下边播完善用户体验,是一件十分重要的事情! 小编用自己的产品证实过(从PC到安卓和iOS手机都可以)了,分享一下p2p功能实现:   点量p2p视频播放技术追求的是更好的用户体验,可以实现如下性能:   1、并发下节省服务器带宽,降低成本   

    2K30发布于 2018-12-06
  • 来自专栏Java程序猿部落

    Java并发实战,锁的优化

    优化 这里的锁优化主要是指 JVM 对 synchronized 的优化。 自旋锁 互斥同步进入阻塞状态的开销都很大,应该尽量避免。在许多应用中,共享数据的锁定状态只会持续很短的一段时间。 concatString(String s1, String s2, String s3) { return s1 + s2 + s3; } String 是一个不可变的类,编译器会对 String 的拼接自动优化

    78940发布于 2019-05-29
  • 来自专栏开源部署

    并发优化Tomcat性能详解

    并发环境下,我知道优化配置tomcat,对连接数和线程池作修改,最重要的是connector的协议Http Connector使用NIO,而不是默认的AJP Connector,当时也没有仔细研究其原理 而APR是Apache Portable Runtime,是Apache可移植运行库,利用本地库可以实现可扩展性、高性能;Apr是在Tomcat上运行并发应用的首选模式,但是需要安装apr、apr-utils (之前没有用过APR,看来并发下要使用此协议啊) 2、如何指定protocol Connector使用哪种protocol,可以通过<connector>元素中的protocol属性进行指定,也可以使用默认值 而这个区别,在并发量较大的情形下可以带来Tomcat效率的显著提升: 目前大多数HTTP请求使用的是长连接(HTTP/1.1默认keep-alive为true),而长连接意味着,一个TCP的socket NIO,“读取socket并交给Worker中的线程”这个过程是非阻塞的,当socket在等待下一个请求或等待释放时,并不会占用工作线程,因此Tomcat可以同时处理的socket数目远大于最大线程数,并发性能大大提高

    2K10编辑于 2022-08-08
  • 来自专栏Java日常

    并发优化解决方案

    做电商等项目,免不了要接触并发问题,项目优化和瓶颈也是一个头疼的问题。那么到底应该怎么去做呢,从哪些方面着手呢?

    38010编辑于 2022-01-20
  • 来自专栏转行程序员

    Elasticsearch源码解析并发写入优化

    Macbook Pro 15,6核12线程 数据量 1000 万,每个 document 400 个字段,10 个线程并发(考虑 mac cpu Turbo 4.5G ,服务器 2.4G(24核),所以只采用 10 线程并发) 验证写入耗时 549s(约 10 分钟)。 经过初步的参数优化写入耗时降低到了 18 分钟,这是后面继续往下优化的基础。 写线程需要获取 readLock rollGeneration 拿走了 writeLock,会阻塞 readLock 而在 flush_threshold_size 的配置下,rollGeneration 我们通过调整下面两个参数提高性能: index.translog.flush_threshold_size 默认 512M,可以适当调大,但不能超过 indexBufferSize*1.5 倍/(可能并发写的大索引数量

    2.2K20发布于 2019-09-25
  • 来自专栏冰河技术

    并发】面试官:讲讲并发场景下如何优化加锁方式?

    作者个人研发的在并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。 写在前面 很多时候,我们在并发编程中,涉及到加锁操作时,对代码块的加锁操作真的合理吗?还有没有需要优化的地方呢? 问题阐述 在《【并发优化加锁方式时竟然死锁了!!》 那么,有没有什么方式对这种方案进行优化呢? 问题分析 既然使用死循环一直获取资源这种方案存在问题,那我们换位思考一下。当线程执行时,发现条件不满足,是不是可以让线程进入等待状态? 线程的等待与通知机制 我们可以使用线程的等待与通知机制来优化阻止请求与保持条件时,循环获取账户资源的问题。具体的等待与通知机制如下所示。 实现代码 我们优化后的ResourcesRequester类的代码如下所示。

    57421发布于 2020-10-29
  • 来自专栏用户2442861的专栏

    java处理并发负载类网站的优化方法

    一:并发负载类网站关注点之数据库 没错,首先是数据库,这是大多数应用所面临的首个SPOF。尤其是Web2.0的应用,数据库的响应是首先要解决的。     二:并发负载网站的系统架构之HTML静态化     其实大家都知道,效率最高、消耗最小的就是纯静态化的html页面,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是 四:并发负载网站的系统架构之图片服务器分离      大家知道,对于Web 服务器来说,不管是Apache、IIS还是其他容器,图片是最消耗资源的,于是我们有必要将图片与页面进行分离,这是基本上大型网站都会采用的策略 五:并发负载网站的系统架构之数据库集群和库表散列     大型网站都有复杂的应用,这些应用必须使用数据库,那么在面对大量访问的时候,数据库的瓶颈很快就能显现出来,这时一台数据库将很快无法满足应用, 在很长一段时间里,甲骨文都以其实时应用集群技术(Real Application Cluster,RAC)统治着集群数据库市场 六:并发负载网站的系统架构之缓存     缓存一词搞技术的都接触过

    1.3K20发布于 2018-09-20
  • 来自专栏大闲人柴毛毛

    java处理并发负载类网站的优化方法

    一:并发负载类网站关注点之数据库 没错,首先是数据库,这是大多数应用所面临的首个SPOF。尤其是Web2.0的应用,数据库的响应是首先要解决的。     二:并发负载网站的系统架构之HTML静态化     其实大家都知道,效率最高、消耗最小的就是纯静态化的html页面,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是 四:并发负载网站的系统架构之图片服务器分离      大家知道,对于Web 服务器来说,不管是Apache、IIS还是其他容器,图片是最消耗资源的,于是我们有必要将图片与页面进行分离,这是基本上大型网站都会采用的策略 五:并发负载网站的系统架构之数据库集群和库表散列     大型网站都有复杂的应用,这些应用必须使用数据库,那么在面对大量访问的时候,数据库的瓶颈很快就能显现出来,这时一台数据库将很快无法满足应用, 在很长一段时间里,甲骨文都以其实时应用集群技术(Real Application Cluster,RAC)统治着集群数据库市场 六:并发负载网站的系统架构之缓存     缓存一词搞技术的都接触过

    1.7K60发布于 2018-03-09
  • 来自专栏全栈程序员必看

    并发下的nginx性能优化实战

    fair , url_hash) 第六,nginx日志管理和日志切割 日志切割 注:如果要确定自己的定时是正常执行的,可以运行一下命令 tail -f /var/log/cron 结果如下: 并发架构分析

    63510编辑于 2022-07-11
领券