11# meituan-backend-pdf_abstract
2+ ## [ JVM源码] ( http://hg.openjdk.java.net/jdk8u )
3+
24## 2018
35```
46### netty堆外内存泄漏(netty-socketio)
@@ -144,26 +146,66 @@ ParameterHandler:负责对用户传递的参数转换成 JDBC Statement 所需
144146TypeHandler:负责 Java 数据类型和 JDBC 数据类型之间的映射和转换
145147```
146148
147- ### [ ES集群如何进行挨个重启?] ( https://elasticsearch.cn/question/4454 )
149+ ## 2020阿里
150+ ### 如何正确地实现重试(Retry)
151+ ```
152+ 固定循环次数方式: 不带 backoff 的重试,对于下游来说会在失败发生时进一步遇到更多的请求压力,继而进一步恶化。
153+ 带固定 delay 的方式:
154+ 虽然这次带了固定间隔的 backoff,但是每次重试的间隔固定,此时对于下游资源的冲击将会变成间歇性的脉冲;
155+ 特别是当集群都遇到类似的问题时,步调一致的脉冲,将会最终对资源造成很大的冲击,并陷入失败的循环中。
156+ 带随机 delay 的方式:
157+ 如果依赖的底层服务持续地失败,改方法依然会进行固定次数的尝试,并不能起到很好的保护作用。
158+ 对结果是否符合预期,是否需要进行重试依赖于异常。
159+ 无法针对异常进行精细化的控制,如只针部分异常进行重试。
160+ 可进行细粒度控制的重试:
161+ 推荐使用 resilience4j-retr y 或则spring-retry 等库来进行组合
162+
163+ 和断路器结合
164+ 虽然可以比较好的控制重试策略,但是对于下游资源持续性的失败,依然没有很好的解决。当持续的失败时,对下游也会造成持续性的压力。
165+ 常见的有 Hystrix 或 resilience4
166+ ```
148167
149168## linux查看哪个进程占用磁盘IO
169+ $vmstat 2
170+ 执行vmstat命令,可以看到r值和b值较高,r 表示运行和等待cpu时间片的进程数,如果长期大于1,说明cpu不足,需要增加cpu。
171+ b 表示在等待资源的进程数,比如正在等待I/O、或者内存交换等。
172+
173+ ### [ IO等待导致性能下降] ( https://serverfault.com/questions/363355/io-wait-causing-so-much-slowdown-ext4-jdb2-at-99-io-during-mysql-commit )
150174$ iotop -oP
151175命令的含义:只显示有I/O行为的进程
152176
153- $ iostat -dtxNm 2 10
177+ $ iostat -dtxNm 2 10
154178查看磁盘io状况
155179
156- $ dstat -r -l -t --top-io
180+ $ dstat -r -l -t --top-io
157181用dstat命令看下io前几名的进程
158182
159- $ dstat --top-bio-adv
183+ $ dstat --top-bio-adv
160184找到那个进程占用IO最多
161185
162186$ pidstat -d 1
163187命令的含义:展示I/O统计,每秒更新一次
164188
165- 网络上的人提供了如下三种解决方案:
189+ ### [ Linux 挂载管理(mount)] ( https://www.cnblogs.com/chenmh/p/5097530.html )
190+ $ vim /etc/fstab
191+ mount挂载分区在系统重启之后需要重新挂载,修改/etc/fstab文件可使挂载永久生效
192+
193+ $ mount -t ext4 /dev/sdb1 /sdb1
194+ -t:指定文件系统类型
195+
196+ $ mount -o remount,noatime,data=writeback,barrier=0,nobh /dev/sdb
197+ remount:重新挂载文件系统。
198+ noatime:每次访问文件时不更新文件的访问时间。
199+ async:适用缓存,默认方式。
200+
201+ $ fuser -m /dev/sdb
202+ 查看文件系统占用的进程
166203
204+ $ lsof /dev/sdb
205+ 查看正在被使用的文件,losf命令是list open file的缩写
206+
207+
208+ 网络上的人提供了如下三种解决方案:
167209升级内核
168210更改commit的次数, "mount -o remount,commit=60 /dev/sda1"
169211关闭文件系统日志功能: 操作类似于dumpe2fs 获取文件系统属性信息, tune2fs 调整文件系统属性, 之后e2fsck 检查文件系统(几乎大部分都不推荐这样做)
@@ -183,6 +225,18 @@ PUT _all/_settings
183225"index.refresh_interval" : "60s"
184226}
185227
228+ PUT /_ cluster/settings
229+ {
230+ "transient": {
231+ "cluster": {
232+ "routing": {
233+ "allocation.disk.watermark.high": "95%",
234+ "allocation.disk.watermark.low": "90%"
235+ }
236+ }
237+ }
238+ }
239+
186240PUT _ cluster/settings
187241{
188242 "transient" : {
@@ -225,3 +279,38 @@ nohup /home/op/KafkaOffsetMonitor/kafka-monitor-start.sh &
225279
226280jcmd 239312 GC.class_stats|awk '{print$13}'|sed 's/\( .* \)\.\( .* \) /\1/g'|sort |uniq -c|sort -nrk1
227281
282+ "logging_ad-guard_ * ",
283+ "logging_usercenter-profile-api_ * ",
284+ "logging_bigdata-aibo-query_ * ",
285+ "logging_ad-shield-cloud_ * ",
286+ "logging_bigdata-queryplatform_ * ",
287+ "logging_xueqiu-sms_ * ",
288+ "logging_ad-merger-cloud_ * ",
289+ "logging_bigdata-push_ * ",
290+ "logging_ad-auth_ * ",
291+ "logging_bigdata-label-platform_ * ",
292+ "logging_ad-business_ * ",
293+ "logging_usercenter-profile-server_ * ",
294+ "logging_usercenter-passport-api_ * ",
295+ "logging_snowflake-nebula_ * ",
296+ "logging_xueqiu-analysis_ * ",
297+ "logging_xueqiu-push-client_ * ",
298+ "logging_recommend-stock-page-consumer_ * ",
299+ "logging_ad-gateway_ * ",
300+ "logging_recommend-user-profile-consumer_ * ",
301+ "logging_status-frame-thread_ * ",
302+ "logging_usercenter-relation-server_ * ",
303+ "logging_snowcrawler_ * ",
304+ "logging_live-crm_ * ",
305+ "logging_ad-ssp-cloud_ * ",
306+ "logging_cube-thread_ * ",
307+ "logging_search-query_ * ",
308+ "logging_recommend-user-profile_ * ",
309+ "logging_cube-server_ * ",
310+ "logging_usercenter-extend-server_ * ",
311+ "logging_bigdata-authority-platform_ * ",
312+ "logging_ad-report_ * ",
313+ "logging_status-cds_ * ",
314+ "logging_message-group_ * ",
315+ "logging_ad-resource_ * ",
316+ "logging_ad-oplog_ * "
0 commit comments