Linux稳定性知识体系

Linux稳定性知识体系

这个知识体系的话是嵌入到我对于稳定性问题的理解上来讲的,具体来说就是稳定性的知识体系是如何运用到我们的工作中的。

主要也是对这段时间工作的认识和总结

概述

什么是稳定性问题(是什么)

影响系统稳定,导致系统出现问题的问题。

从现象上来说,不能确定是问题模块,或者非必现的模块问题

扩展 -》 什么问题都可以指给稳定性,殴打稳定性,简单来说就是其他模块解决不了的或不愿意解决的就是稳定性问题

一般来说问题最终的根本原因总会落在一个具体的模块,我们要做的就是分析出问题根因,或指出相关模块,尽可能给出解决意见

常见问题(做什么)

死机重启问题

一般是系统发生dump,一般要结合db log, kernel log,mobile log分析问题根因

原生代码问题

Android原生代码也是有bug的,因为这部分代码没人动,也就很少有人研究。最后又归到稳定性上。

这种问题可能要修改镜像调试

性能问题

有时性能问题也会归到稳定性上,例如正常情况下某应用启动很快,在某种情况下启动很慢,这很可能就是性能导致的。我认为性能问题和稳定性问题不能混为一谈,二者的分析方法有很大差别。

这种问题一般要结合工具进行调试

非必现问题或者不知道怎么复现的问题

这种问题还可能伴随着抓不到log等问题,有的时候比较难跟进

没人愿意深入研究的问题

各模块都不承认是自己的问题,相互扯皮。因为没有人从系统角度上来分析问题,也不进行深入研究,觉得还是归到稳定性好些

如何处理(怎么做)

对于Linux稳定性问题,一般来说,先根据log分析问题原因,如果原因不太清晰,就需要结合工具进行调试,如果怀疑某些模块有问题,可能还要修改相关模块并验证,最后如果还是没有思路,就要寻求帮助了

分析

分析问题,需要对linux的基本的工作机制有一定的了解,例如

进程管理
进程调度
内存管理
文件系统

调试

crash,ftrace,kmemleak,kprobe,kgdb,trace32,perf,procfs,sysfs,debugfs

gdb,strace,ltrace,Valgrind,gprof,mtrace,iperf,blktrace,fio

验证

通常我们需要增加log或者修改代码去验证问题

我们需要对Linux应用开发有相关了解

系统调用
IPC通信
进程和线程
常用的库

辅助系统的工作原理

Bootloader
Recovery
DTB
busybox
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.服务中心应具备业务能力的持续扩展,以满足新业务的接入; 2.在高负荷下保持稳定的服务能力; 3.活动中渡过访问...
    AvenCui阅读 699评论 0赞 0
  • 分析Android问题时,经常会遇到一些稳定性问题。什么是稳定性问题呢,我归结有以下特点, 非必现问题,或没有找到...
    Android_开发阅读 1,473评论 0赞 2
  • 一. 架构高可用评价维度: 指系统在面对各种异常时可以提供正常服务的能力 系统的可用性可以用系统停服务的时间和正...
    陈阳001阅读 2,812评论 0赞 7
  • 摘自:https://yq.aliyun.com/articles/68196 什么时候会用到性能测试? 当性能测...
    许你一枝花阅读 459评论 0赞 0
  • APP性能优化-Memory APP性能优化-稳定性(crash率) APP性能优化-包体压缩 APP性能优化-C...
    code_balance阅读 7,902评论 0赞 3

友情链接更多精彩内容