😥 整理不易,此资源只针对正式星主开放,
还请入驻星球后再来观看。

GOLANG ROADMAP

阅读模式

  • 沉浸
  • 自动
  • 日常
首页
Go友会
  • 城市
  • 校园
Go学院
  • Go小课
  • Go小考
  • Go实战
  • 精品课
Go求职
  • 求职辅导🔥
  • Offer收割社群
  • 企业题库
  • 面试宝典
Go宝典
  • 在线宝典
  • B站精选
  • 推荐图书
  • 每日博文
Go仓库
实验区
  • Go周边
  • Go下载
  • Go月刊
消息
更多
  • 用户中心

    • 我的信息
    • 推广返利
  • 玩转星球

    • 星球介绍
    • 角色体系
    • 星主权益
  • 支持与服务

    • 联系星主
    • 成长记录
    • 常见问题
    • 吐槽专区
  • 合作交流

    • 渠道合作
    • 课程入驻
    • 友情链接
author-avatar

GOLANG ROADMAP


首页
Go友会
  • 城市
  • 校园
Go学院
  • Go小课
  • Go小考
  • Go实战
  • 精品课
Go求职
  • 求职辅导🔥
  • Offer收割社群
  • 企业题库
  • 面试宝典
Go宝典
  • 在线宝典
  • B站精选
  • 推荐图书
  • 每日博文
Go仓库
实验区
  • Go周边
  • Go下载
  • Go月刊
消息
更多
  • 用户中心

    • 我的信息
    • 推广返利
  • 玩转星球

    • 星球介绍
    • 角色体系
    • 星主权益
  • 支持与服务

    • 联系星主
    • 成长记录
    • 常见问题
    • 吐槽专区
  • 合作交流

    • 渠道合作
    • 课程入驻
    • 友情链接
  • Go真实面试题汇总系列

    • 《其他篇》
  • 宝典内容

    • 6. Go和java比有什么不同?
    • 17. go 实现不重启热部署
    • 23.了解的gc算法有哪些?
    • 50. 怎么用go实现一个栈
    • 60. Kratos 框架的特性
    • 82. 信令用wss还是ws?
    • 111. 有对项目和系统做性能测试吗?(benchmark 和 pprodf)
    • 140. cgo了解过引入的风险点吗?
    • 142. go使用中遇到的问题
    • 143. go的profile工具
    • 161. Go 性能分析工具
    • 172. go里面比较成熟的日志框架了解过没有
    • 181. golang 性能问题怎么排查
    • 193. RR是如何实现的
    • 194. RR级别下能否读取事务ID靠后且尚未提交的记录?
    • 197. java和golang的一些共同点以及区别
    • 205. client如何实现长连接?
    • 207. Go语言实现set
    • 211. 有缓冲和无缓冲的区别?
    • 213. 怎么做服务注册发现的
    • 214. 服务发现有哪些机制
    • 215. 当go服务部署到线上了,发现有内存泄露,该怎么处理
    • 221. 堆的结构,堆的创建,节点添加与删除
    • 232. 线程yield(),sleep(), wait()的区别
    • 233. 如何让拥有GC的情况下产生OOM
    • 244. go 建堆过程
    • 246. golang的一些常用工具库
    • 247. 谈谈go语言和其他语言的区别
    • 258. go常用的第三方库
    • 270. 网络连接的各层的状态
    • 271. 了解中间件吗?有什么好处?
    • 280. 看过啥底层包?
    • 281. RPC基础
    • 291. 内存对其了解吗?
    • 292. Go中struct组合与Java继承的区别
    • 299. Go依赖管理历史有几次方式
    • 301. 对比下node和go
    • 303. 说说火焰图?如何分析的?
    • 316. 可以从多个角度来讲比如面向对象来说,多态继承等等
    • 318. 从包管理来讲,gomod包括之前的dep等等
    • 320. 用go写rpc框架的具体功能细节
    • 323. CAS
    • 328. GO语言中的协程与Python中的协程的区别?
    • 335. 如果项目里api耗时过久,你会怎么去排查
    • 336. 对比 Go 语言和 Java 语言
    • 342. golang:pprof使用
    • 343. 性能调优怎么做
    • 347. 如何排查线上程序问题
    • 356. java 实例放在哪个区,常量放在哪个区
    • 358. java内存模型,方法区,堆栈的区别
    • 359. go web项目的部署,后台持续运行与优雅退出
    • 360. golang的defer,channel,reflect,多线程 panic recover
    • 361. 使用interface的好处
    • 362. Gin框架的特点和源码问题
    • 363. close-wait作用
    • 372. golang开发用什么框架
    • 378. python、go 语言特点
    • 387. select、poll、epoll说下详情和各自优缺点
    • 388. delete new和malloc free关系
    • 392. 重载和重写的概念辨析?
    • 393. 在继承里,子类能重载父类方法吗?
    • 400. 值溢出(usignedchar最大255)
    • 415. django与其他框架的区别
    • 433. gin框架的路由是怎么处理的?
    • 435. go性能分析工具
    • 438. 比较 gin 框架和其它框架
    • 446. 如果一个包要依赖另一个包,这个时候如何写单元测试
    • 447. micro怎么用
    • 448. micro服务发现
    • 449. 如何通过goclient写代码获取
    • 460. 使用 database/sql 和 使用 gorm 的区别
    • 467. c 与go的区别优劣

😥 整理不易,此资源只针对正式星主开放,
还请入驻星球后再来观看。

347. 如何排查线上程序问题


企业题库解析小组

题目来源:字节跳动

答案:树枝

线上问题排查思路(如忽然访问变慢)

  1. 链路追踪(zipkin skywalking等),确认问题在哪条链路上(是否是因为调用别人的接口引起的,解决方案熔断降级)
  2. 查看相应容器的prometheus,观察cpu、内存、网卡、磁盘等等
  3. cpu、内存问题,打开性能调试pprof具体调试cup或内存

内存泄漏问题,通常是goroutine泄漏所引起的。

查看goroutine数量,如果goroutine数量过多,可能是因为goroutine没有及时退出导致内存泄漏。top、list定位到具体代码,查看此goroutine退出机制是否有问题

极少情况是代码问题导致的内存泄漏,需要调试内存性能,top命令查看消耗内存的函数 list命令直接定位相关消耗内存的代码

cpu飙升,通常是因为io问题导致的,极少情况是代码问题,如死循环

查看性能监控如prometheus,如果cpu wait耗时,则确定是io问题

排查思路与上面一样,top、list排查

pprof还可以打开可视化界面查看,用户更友好