告别重启大法,CPU飙高问题如何排查详细教程以及解决方案 本篇是本人认为最实用的一篇,在日常开发运维工作中,经常遇到CPU较高的情况,一开始时还不知道怎么定位是哪个方法导致了CPU过高,一头雾水,无法定位问题,本文详细介绍如何定位CPU过高的问题修改。本章的标题是告别重启大法,就是我们以后遇到问题后,已经知道怎么取定位以及解决问题了,不再是稀里糊涂的把系统重启后,反复出现问题。
线上问题的排查之内存溢出(OOM)问题如何排查 和往期性能优化类文章一样,步骤基本上大差不差 ,查找日志,分子日志,定位问题,审核代码,优化代码。并进行测试验证,一般就在测试环境进行测试,不要在正式进行,避免出现生产事故。
线上问题的排查之频繁FullGC问题如何排查 通过这个详细的排查过程,我们1.使用GC日志和监控工具识别了问题2.通过堆内存分析找到了内存泄漏的根源3.优化了代码中的内存使用模式4.调整了IVM参数以更好地适应应用特性。
线上问题排查之文件导入导出导致内存的溢出如何排查 在Java应用程序中,文件导入导出导致内存溢出(OutOfMemoryError)是一个常见的问题,特别是在处理大文件时。内存溢出通常是由于程序试图在堆内存中加载过多的数据,超过了IM的内存限制。下面提供一个详细的排查和解决过程,以及一个具体的示例。此篇主要还是处理大文件的问题,包括下载大文件时,bytes[]接收太多数据,一样会出现内存溢出,本文使用的逐行处理大文件也分而治之的意思,java处理小文件才不会出现问题。
线上问题的排查之慢SQL问题如何排查 通过系统化的步骤,快速识别并优化慢SQL,不仅提升了应用响应速度,同时改善了用户体验。每个步骤都有助于从不同角度发现潜在问题,并通过合适的方法进行解决。这样的流程在不同类型的数据库上可以适当调整,但核心原则是一致的。
线上问题的排查-java死锁问题如何排查 排查Java死锁问题涉及识别现象、获得详细线程转储信息、代码分析、优化同步逻辑等。在实战中,通过良好的设计可以避免大多数常见死锁问题。使用高层次 并发工具(如java.util.concurrent包)也能显著简化编程,从而减少死锁额可能性。持续的监控和测试是确保应用稳定性的关键。
线上问题排查的思路 编写详细的问题分析报告。总结经验教训,更新相关文档和最佳实践。此篇文章以后,以后出现 的安全线上事故都会写线上报告。以警示自己出现线上问题,这也估计也是有利于我们成长的,所以从本月开始,出现线上事故就编写事故报告,写一篇文章,以博客的形式出现。
日常工作采坑,关于图片压缩哪些坑一次性踩完。 1、什么是 MyBatis?答:MyBatis 是一个可以自定义 SQL、存储过程和高级映射的持久层框架。2、讲下 MyBatis 的缓存答:MyBatis 的缓存分为一级缓存和二级缓存,一级缓存放在 session 里面,默认就有,二级缓存放在它的命名空间里,默认是不打开的,使用二级缓存属性类需要实现 Serializable 序列化接口(可用来保存对象的状态),可在它的映射文件中配置3、什么是控制反转(IOC)?什么是依赖注入? 控制反转是应用于软件工程领域中的,在运行时被装配器对象来绑定
Redis高级篇之bigKey理论介绍以及优化 python学习numTensorFlow框架学习,pytorch学习,基本语法的学习numpyscipy 科学运算matplotlib 图片scikit-learn 机器学习tensorflow(Keras)/pytorch/Teano 深入学习 语言识别2.2安装pip命令集成开发环境Anaconda 集成开发环境...
图解关于InnoDB存储结构的一切 这是开启MySQL系列以来的第四篇文章,全部都是理论方面的内容,以前听说一位DBA说过,如果要学习成为DBA最好不要先学MySQL,而是oracle开始学习,因为MySQL是根据oracle原理设计的,但是作为开发人员学MySQL,因为MySQL的使用率比较高,又是免费开源的,互联网公司多数用的是MySQL。页a、页b、页c…页n 这些页可以 不在物理结构上相连,只要通过双向链表相关联即可。
Redis高阶篇之Redis单线程与多线程 之前写过关于Redis的十篇文章,关于Redis快的原因是单线程执行指令和IO多路复用比较笼统,所以打算单开一篇文章深入介绍Redis单线程与多线程。以及Redis不同版本的多线程和IO多路复用情况。Redis自身出道就是优秀,基于内存操作、数据结构简单、多路复用和非阻塞I/O、避免了不必要的线程上下文切换等特性,在单线程的环境下依然很快;
Redis进阶篇-Redis集群算法详细介绍 为了在节点数目发生改变时尽可能少的迁移数据。将所有的存储节点排列在收尾相接的Hash环上,每个key在计算Hash后会顺时针找到临近的存储节点存放。而当有节点加入或退出时仅影响该节点在Hash环上顺时针相邻的后续节点。加入和删除节点只影响哈希环中顺时针方向的相邻的节点,对其他节点无影响。数据的分布和节点的位置有关,因为这些节点不是均匀的分布在哈希环上的,所以数据在进行存储时达不到均匀分布的效果。为什么redis集群的最大槽数是16384个?
连肝了多天学习MySQL索引与性能优化,详细总结一下索引的使用与数据库优化 索引是什么? 是存储引擎用于快速找到记录的一种数据结构。索引的作用 一个系统后期的性能调优大概就是数据库调优了,由于系统到了后期维护阶段,数据量庞大,索引对性能的影响愈发的重要。 索引的优化应该是对查询优化最有效的的手段了。索引能够轻易的将 查询性能提高几个数量级,“最优”的索引有时比一个“好的”索引性能要好几个数量级。创建一个真正“最优”的索引经常需要重写查询语句。初步认识索引 要了解MySQL中索引是如何工作的,最简单的方法就是去看看一本书的目录部分:如果想在一本书中找到某个特定主题,一般会
Redis哨兵详细理论实操教程 文件的内容,在运行期间会被sentinel动态进行更改;Master-slave切换后,master_redis.conf、slave_redis.conf和sentinel.conf的内容都会发生改变即master_redis.conf中会多一行slaveof的配置,sentinel.conf的监控目标会随之调换;生产上都是不同机房不同服务器,很少出现3个哨兵全部挂掉的情况可以同时金童多个master,一行一个。
redis主从复制的理论和实战详细教程 1.slave启动成功链接到master后会发送一个sync命令。2.slave首次全新连接master,一次完全同步(全量复制)将被自动执行,slave自身原有数据会被master数据覆盖清除。
Redis高级篇-缓存过期淘汰策略详细教程及分析 Redis系列还有两篇就结束了,后面还会开始新的系列,也是理论结合实际的文章,希望以此增加自己的技术能力,写博客我除了提升自己以外,其他结果也没有那么注重了。希望看到文章的人不虚此行,仅此而已了。然后在此写下博客以后,多年后回顾这段幼稚的文字描述估计也是很有趣的。
Redisson分布式锁分析,可重入、可续锁(看门狗) 失败了多少个机器实例后我还是可以容忍的,所谓容就是数据的一致性还是可以的,CP数据一致性还是可以满足,加入在集群环境中,redis失败1台,可以接受。2X + 1 = 2* 1 +1 = 3, 部署3台,死了1个剩下2个可以正常工作,那就部署3台。加入在集群环境中,redis失败1台,可以接受。2X + 1 = 2* 2 +1 = 5, 部署5台,死了2个剩下3个可以正常工作,那就部署5台。最少的机器,最多的效果。加入集群环境中,redis失败1台,可接受。2N + 2 = 2 * 1 + 4,部署4台。