当前位置:网站首页>一名合格的程序员是如何优雅地解决线上问题的?
一名合格的程序员是如何优雅地解决线上问题的?
2022-08-08 12:08:00 【InfoQ】

BUG分类
系统级别bug
linux定位工具
1.CPU高负载,甚至100%?

2.某一进程存在异常嫌疑,想快速知道它的状态?
[[email protected] ~]# ps -ef | grep queuejob
root 1303 1 0 Apr17 ? 00:00:00 /usr/sbin/queuejob
root 3260 3087 0 Apr17 ? 00:00:00 /usr/bin/queuejob /bin/sh -c exec -l /bin/bash -c "env GNOME_SHELL_SESSION_MODE=classic gnome-session --session gnome-classic"
root 24174 19508 0 11:39 pts/0 00:00:00 grep --color=auto ssh
[[email protected] ~]# ps -aux | grep queueA
root 1303 0.0 0.0 82468 1204 ? Ss Apr17 0:00 /usr/sbin/queueA
root 3260 0.0 0.0 52864 572 ? Ss Apr17 0:00 /usr/bin/queueA /bin/sh -c exec -l
root 24188 0.0 0.0 112652 956 pts/0 S+ 11:39 0:00 grep --color=auto ssh
[[email protected] ~]# ps aux | sort -nk 3
[[email protected] ~]# ps aux | sort -rnk 4
3.我想知道内存&磁盘的使用情况?

Procs(进程):
r: 运行队列中进程数量
b: 等待IO的进程数量
Memory(内存):
swpd: 使用虚拟内存大小
free: 可用内存大小
buff: 用作缓冲的内存大小
cache: 用作缓存的内存大小
Swap(交换):
si: 每秒从交换区写到内存的大小
so: 每秒写入交换区的内存大小IO:(现在的Linux版本块的大小为1024bytes)bi: 每秒读取的块数bo: 每秒写入的块数
System(系统):
in: 每秒中断数,包括时钟中断
cs: 每秒上下文切换数
CPU(以百分比表示)
us: 用户进程执行时间(user time)
sy: 系统进程执行时间(system time)
id: 空闲时间(包括IO等待时间),中央处理器的空闲时间
wa: IO等待时间

业务级别bug
如何定位到业务bug?

方案设计
代码设计
设计模式
- 工厂(Creator)角色:工厂类的创建产品类的方法可以被外界直接调用,创建所需的产品对象。
- 抽象产品(Product)角色:它负责描述所有实例所共有的公共接口。
- 具体产品(Concrete Product)角色:创建目标,所有创建的对象都是充当这个角色的某个具体类的实例。

- 主体(Main):业务主体逻辑、字段等。
- 主体具体实现类(MainComponent):主体具体的实现类。
- 装饰者(Decorator):要做的装饰扩展逻辑接口。
- 装饰者具体实现类(DecoratorComponent):扩展逻辑的具体实现类。


架构设计
系统高性能 & 高可用
- 使用缓存:缓存的作用是为了系统的读能力。将用户经常访问的数据扔到缓存里面可以有效地提高访问速度并且减少数据库的压力。

- 服务降级 & 限流:若短时间内流量激增影响到服务器性能,可考虑降级边缘业务以保证核心业务的可用性和性能。


- 高可用架构:重要性不言而喻。同城多活、异地多活的架构部署可以保证单机房挂掉的情况下流量可以迅速切换到其他机房让核心业务不受影响。可谓是防止系统宕机必备良药啊!

做好事故复盘
边栏推荐
- node中package解析、npm 命令行npm详解,node中的common模块化,npm、nrm两种方式查看源和切换镜像
- day02 -DOM—高级事件(注册事件、事件监听、删除事件、DOM事件流、事件对象、阻止默认行为、阻止事件冒泡、事件委托)—常用鼠标事件—常用的键盘事件
- dedecms支持Word图文自动粘贴
- Acwing3452. 进制转换
- 大缓存更强劲,搭载AMD Milan-X的浪潮GPU服务器NF5468A5深度评测
- 结点的查找
- 京东云无线宝产品部负责人张晓东 : 京东云无线宝与开源的亲密关系 | 《大神详解开源 BUFF 增益攻略》讲座回顾...
- 详解轮播图二-通过left定位来轮播图片
- 8/7 牛客6+div2D+倍增lca
- TF-GNN踩坑记录(一)
猜你喜欢
随机推荐
leetcode 1584. 连接所有点的最小费用
【AI系统前沿动态第45期】Hinton:深度学习的下一个大事件;一块GPU训练TB级推荐模型不是梦;AI-GPU显存优化发展史
About the Celery service report under win Process 'Worker' exited with 'exitcode 1' [duplicate]
面试突击72:输入URL之后会执行什么流程?
十年架构五年生活-08 第一次背锅
无心剑2022年七绝100首
测试开发专栏——序言:总结过去,展望未来
openssl 创建证书
爱可可AI前沿推介(8.8)
#yyds Dry Goods Inventory#【Yugong Series】August 2022 Go Teaching Course 005-Variable
The most complete JVM performance tuning in history: thread + subsystem + class loading + memory allocation + garbage collection
八月粉丝福利来了!大疆手机云台你爱了吗?
一文读懂配置管理(CM)
微服务负载均衡器LoadBalancer实战
SQL的INSERT INTO和INSERT INTO SELECT语句
关于微信小程序体验版获取不到openId的问题
研究:有毒的PFAS化学品使全球各地的雨水无法安全饮用
office安装出现了“office对安装源的访问被拒绝30068-4(5)”错误
d切片示例
如何在go重打印函数调用者信息Caller