- 博客(29)
- 问答 (2)
- 收藏
- 关注
原创 服务性能优化排查-01
1.查看服务堆栈信息 【jmap -heap pid】 , 发现服务jvm内存使用99%;查看服务日志,有oom异常,FULLGClog。判断服务进行fullgc导致cpu飙高。命令生成线程堆栈文件,定位到10个线程在查同一个接口,并且线程运行到相同位置代码。发现大对象,定位对象位置,找到线程--代码位置。百万数据表全量数据查询查表。继上一个问题处理后, 发现CPU仍然报警。sql性能不太好准备优化。背景:服务收到cpu超过阀值报警通知。
2024-01-20 11:19:27 373
原创 docker了解使用一
安装portainer_data: docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer。vi /etc/docker/daemon.json 在文件中添加以下内容。其中,<target_host> 是要 ping 的目标主机。Dockerfile 中,使用。指令声明容器将监听的端口。
2023-12-27 10:21:40 375
原创 记网络宽带预警问题
作为服务开发者,服务上线之初作为担心的内容就是网站没有访问量,但在服务稳定运行后,随着用户与业务的增长,网络宽带也许会成为系统瓶颈。静态文件大小会严重影响网站应用流量使用,通常网站开发者也容易忽略这一块内容,这里也会严重影响网站加载速度。后台接口业务数据返回,通常要做分页处理,如果返回数据量过大,网站宽带,前端渲染与内存都会收到严重影响。第一个是网络请求数据量,就是网站页面发起的http请求数据量。请求量越大,网站流量使用越高。第二个是请求与返回包大小,包越大网络宽带相应也会越大。
2023-07-03 10:22:25 110
原创 当网页加载很慢的时候,应如何分析其原因并解决问题?
答案是看网页瀑布图。用chrome打开网页,按住option+command+i(windows是F12,但是如果你按的是这个,那么你怎么敢说你要装逼,前端团队都是清一水的mac啊亲,先换个mac再装逼),打开开发者工具看network。一般网页第一个请求是动态请求的概率比较大,如果这个请求特别耗时,那肯定不是前端的责任,不是妹子的问题,伦家的html都没加载完呢,你怎么就能说是前端的问题呢。作为一个后端RD,你应该有这种觉悟,勇敢的说这是你的责任,表现出一个男人的气魄来,让妹子觉得你是一个负责的好男人。
2023-06-21 11:25:49 338
原创 svn迁移git并保留所有提交记录
1 获取svn开发人员信息 到svn项目目录下执行svn log --xml | grep "^<author" | sort -u | \awk -F '<author>' '{print $2}' | awk -F '</author>' '{print $1}' > authors.txt2 生成用户映射文件 authors.txtwan1 = wang1 <wangq5hope.cn>wa9 = wang9 <wangfthope.cn
2021-12-22 19:22:33 176
原创 记一次高并发引起的服务假死
生产收到大量用户反馈页面加载失败问题,紧急处理问题重启服务,这个当然解决不了根本问题,果然后面发生相同的问题。查服务假死原因1 top查看服务器情况,跟想象的一样,服务器性能完全没问题2 查服务进程情况,服务进程存在3 查看进程堆栈信息,依然正常4 服务连接情况查看 出现大量CLOSE_WAIT连接,未知原因引起连接未正常关闭5 获取堆栈信息,下载下来分析具体线程情况6 服务堆栈信息分析所有http线程都是类似情况,进行对象锁竞争,这个就是...
2021-08-16 13:43:05 1022
原创 记一次接口返回超慢问题排查
用户反馈页面打开缓慢,前端小伙伴排查后发现调用后端接口返回时间超长。要来接口信息测试,接口返回正常在70毫秒左右,是不是客户网络问题?为了确定循环多次测试 ,终于复现了,服务是有问题的。查看后端服务器,发现一台服务发生oom,但是服务进程依然存在,这应该就是导致问题发生的原因了。先生成一个dump文件,然后重启服务临时解决一下。jmap -dump:format=b,file=/datavg/cps/cpsdump.hprof 30631接下来分析一下为什么发生oom..
2021-07-27 10:49:23 2001
原创 记一次生产内存溢出
客户反馈服务无法登陆,1 查看服务器中服务进程存在2 查看服务内存情况,内存已满,gc报错toolang3 查看服务获取服务堆栈信息,拉下来分析4
2021-05-17 17:10:28 139 2
转载 apollo多环境配置
Apollo多环境配置Apollo预先定义的环境有四种:(DEV, FAT, UAT, PRO)。 DEV 开发环境 FAT 测试环境,相当于alpha环境(功能测试) UAT 集成环境,相当于beta环境(回归测试) PRO 生产环境 分布式多环境部署图:lyliyongblue-apollo-deployment.png...
2020-04-20 10:31:09 2899
转载 apollo部署
Apollo 配置中心安装&使用做微服务有一段时间了,但是一直没有去碰配置中心这块,其实在微服务当中,配置中心至关重要,比如:网关的配置的更改、网关限流策略的变更、数据源的切换等等,同时也需要实现热加载,选来选去,就选择了最近比较流行的Apollo配置中心,以此文章记录学习笔记。Apollo 简介Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不...
2020-04-17 19:48:04 247
转载 appolo本地开发启动
一、准备工作1.本地运行时环境 Java: 1.8+ MySQL: 5.6.5+2.创建数据库(见apollo入门指引)二、本地启动1.Apollo Config Service和Apollo Admin Service 在本地开发时,一般会在IDE中同时启动apollo-configservice和apollo-adminservice ...
2020-04-17 19:20:17 311
原创 github访问加速
1、打开IPAddress.com查询网址对应ipgithub.comassets-cdn.github.comgithub.global.ssl.fastly.net二、修改本地电脑系统hosts文件windows: C:\Windows\System32\drivers\etc linux: /etc/hosts直接在最后加入以下代码:140.82.112.3 ...
2020-04-17 15:45:40 188
转载 linux权限修改命令
Linux命令:修改文件权限命令chmod、chgrp、chown详解Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作。文件或目录的访问权 限分为只读,只写和可执行三种。以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作。可执行权限表示允许将该文件作为一个程序执行。文 件被创建时,文件所有者自动拥有对该文件...
2020-03-19 19:32:23 1067
转载 post、get请求编码乱码
提交数据中文乱码问题:post提交方式,想不乱码,只需要设置request对象的编码即可注意:客户机数据是以哪种编码提交的,request就应该设什么编码 程序中设置request编码就可控制request.setCharacterEncoding("UTF-8");get提交方式,设置request对象的编码是无效的,用户想不乱码,只能手工转换String dat...
2020-03-19 19:32:13 164
转载 线程池
线程池是对象池的一个有用的例子,它能够节省在创建它们时候的资源开销。并且线程池对系统中的线程数量也起到了很好的限制作用。·线程池中的线程数量必须仔细的设置,否则冒然增加线程数量只会带来性能的下降。·在定制ThreadPoolExecutor时,遵循KISS原则,通常情况下会提供最好的性能。线程池类为java.util.concurrent.ThreadPollExecut...
2020-02-27 17:36:44 148
转载 spring生命周期
Spring Bean的生命周期是Spring面试热点问题。这个问题即考察对Spring的微观了解,又考察对Spring的宏观认识,想要答好并不容易!本文希望能够从源码角度入手,帮助面试者彻底搞定Spring Bean的生命周期。只有四个!是的,Spring Bean的生命周期只有这四个阶段。把这四个阶段和每个阶段对应的扩展点糅合在一起虽然没有问题,但是这样非常凌乱,难以记忆。要彻底搞清楚...
2020-02-26 12:22:44 167
转载 dubbo留存
1、抓包分析dubbo的协议和调用过程1.1、支持的协议1.1.1dubbo协议Dubbo缺省协议采用单一长连接和NIO异步通讯,使用基于于netty+hessian(序列化方式)交互。适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况。Dubbo缺省协议不适合传送大数据量的服务,比如传文件,传视频等,除非请求量很低。1.1.2 rmi协议走j...
2020-02-24 17:27:18 136
转载 分布式设计理论
CAP理论定义:一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。2000年7月,加州大学伯克利分校的Eric Brewer教授在ACM PODC会议上提出CAP猜想。2年后,麻省理工学院的Seth Gilbert和Nancy Lynch从理论上证明了CAP。之后,CAP理论正...
2020-02-24 17:10:30 149
转载 redis持久化
redis持久化的几种方式1、前言Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务 器。Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到...
2020-02-24 16:47:34 119
转载 java系统调优
代码之所以把代码放到第一位,是因为这一点最容易引起技术人员的忽视。很多技术人员拿到一个性能优化的需求以后,言必称缓存、异步、JVM等。实际上,第一步就应该是分析相关的代码,找出相应的瓶颈,再来考虑具体的优化策略。有一些性能问题,完全是由于代码写的不合理,通过直接修改一下代码就能解决问题的,比如for循环次数过多、作了很多无谓的条件判断、相同逻辑重复多次等。数据库数据库的调优,总的来说分...
2020-02-24 15:24:12 313
转载 jvm垃圾回收机制
Java回收机制概述Java技术体系中所提倡的自动内存管理最终可以归结为自动化地解决了两个问题:给对象分配内存以及回收分配给对象的内存,而且这两个问题针对的内存区域就是Java内存模型中的 堆区。垃圾回收机制的引入可以有效的防止内存泄露、保证内存的有效使用,也大大解放了Java程序员的双手,使得他们在编写程序的时候不再需要考虑内存管理。本文着重介绍了判断一个对象是否可以被回收的两种...
2020-02-24 11:56:45 127
原创 spring 后置处理器
spring 中的注解,比如@Autowired 、dubbo的@AutowiredDubbo,还有@Value等等的使用,是如何完成依赖注入的?在spring中,有提供一类特殊的接口,叫做后置处理器这类接口提供给处理类,可以修改bean的值,或者在bean实例化过程中添加其他处理:public interface BeanFactoryPostProcessor { ...
2019-06-26 14:48:03 913 2
原创 spring boot自动注册
spring boot自动注册,是如何实现的?@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan( excludeFilters = ...
2019-06-26 11:41:08 682
原创 注解浅析
注解是JDK5的新特性,是一种特殊的类,它作用相当于一个注释和标记,它可以应用于包,类(类,接口,枚举和注释类型),变量(类,实例和局部变量 - 包括在for或while循环中定义的变量),构造函数,方法和参数。注解的使用减少了大量配置文件的使用,使代码更加易读。注解是一个特殊的接口,使用@interface定义注释类型,注解中元素值允许基础类型,字符串,枚举,Class和它们的数组。元素使用...
2019-06-11 09:50:20 419
空空如也
java 映射实体类使用
2016-03-21
java关于Protocol Buffer
2016-03-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人