开启霍比特人之意外内核优化旅行 -- 专栏序言
人生总是有些意外和偶然的事情发生,就像电影霍比特人1中一样,一个偶然的晚上拜访和聚会,就让几个霍比特人在甘道夫的带领下,开启了他们的意外探险之旅。
我也是这样巧合,当时已经工作快7年的我,还沉浸在嵌入式bsp开发温暖梦乡中时,突然一个意外的大厂offer打乱我的生活节奏,不过我没有甘道夫带领,全凭我之前南大富士通时的内核功底,
还有多年的操作系统底层开发工作经验相陪,就这样误打误撞地开启了我的大厂os性能优化这个探险旅行。
我进这个大厂之前根本没搞过os优化, 不过我喜欢探险,喜欢探索未知世界,就这样在大厂一路打怪升级,期间遇到了不少坎坷,也曾灰心丧气过,不过终于坚持下来了。最后到现在,历经快4年时间,终于在中土世界里os优化这个职业领域方面站稳了脚跟。
重要的是我会把我在中土世界里发现的美好景观和我的技术探险经历分享给大家。
一 文件系统/io优化:
一开始我做的是这个方向。由于大厂有明确细致的职责分工,规范的开发流程,所以我能有时间在这个领域钻研技术,改进我们的产品质量。
1:深入调查一些io测试case在不同软硬件平台上的性能差异原因
手机IO workload解析
androbench跑分性能排查
Android Q SQLite性能问题调研
2:部署os性能优化专项方案
那些年解的疑难性能问题 --- ext4碎片整理
那些年解的疑难性能问题 --- ext4_fsync优化
f2fs文件系统相关性能优化工作
3:总结和梳理手机存储性能优化架构
手机Android存储性能优化架构分析
二 内存优化
嵌入式产品中(比如车载设备,手机等)有个明显地特点就是内存和存储空间有限,注重单机操作性能。比如手机现在最高端的旗舰机内存也只有12G,外存256G,这跟互联网那些分布式系统相比,存储容量是少了很多(更不用说一些低端手机只有2-4G的内存)。
互联网行业对系统优化要求是比较看重稳定性,还有分布式, 网络传输效果。
而嵌入式行业对产品最看重的就是单机操作系统的表现。
需要着重指出的是互联网行业的公司可能对os性能优化不是很重视,因为性能差。我可以再多加块内存和存储设备,这些买设备的钱开销, 其实和跟投入研发人力长期耗在性能优化工作上相比,要少多了。所以互联网公司更重视的是稳定性工作,比如操作系统死机崩溃等问题解决和优化。
而嵌入式产品,比如手机都是大批量地生产销售,单台设备存储容量都固定死了,都很有限。而现在随着5G时代地到来,android系统的app种类,多媒体渲染效果等都比以前强了不少,而这些都需要耗内存的。所以嵌入式产品中会经常出现因内存不足,内存碎片化而导致的用户那边系统操作性能退化,所以嵌入式行业大厂会更加关注单机os性能优化工作。
我在这方面的知识积累和工作内容:
1:嵌入式系统中各个模块都在耗内存,很容易出现可用内存不足,导致系统性能出问题,这方面优化工作有
android相机场景下整机内存分析
安卓手机内存优化调研
android内存优化那些事 --- LowmemoryKiller
2:内存碎片化也会导致出性能问题。
android内存碎片问题优化梳理3
3:内核的内存回收并不那么完美,缺陷很多。
内存回收在嵌入式系统应用方面的调研和总结
三 性能分析工具优化
性能问题和稳定性问题相比,有些鲜明的特点:
横向上是容易受系统各方面因素的影响,系统中各个模块都会直接或者间接地施加影响,具体通过消耗系统cpu, io和内存三大块资源来影响,从而最终导致你所关注的性能问题产生。
纵向上就是解性能问题需要的技术栈是很深的,比如存储方面的性能问题:io跑分性能差,需要你从用户态io接口使用,一直熟悉到底层内核内存和io交互,文件系统,块设备层,再熟悉到存储硬件bsp层工作原理等,这个技术栈掌握深入了,才能深入理解io性能问题产生原因以及做出相应的优化。
所以性能问题比稳定性问题更难看清原因,更难优化,所以迫切需要各种分析工具地加入,提升解决问题效率。
一款比较强悍的存储性能分析工具(未完待续)
bcc工具上手指南
BCC工具在手机Android系统开发方面的优势
linux系统单线程工作耗时性能解析
xfstests保障文件系统稳定性
四:os性能工作总结
linux存储性能问题解决心得
平时用到的比较好的工作流程总结
开启霍比特人之意外内核优化旅行 -- 专栏序言相关推荐
- Nginx配置和内核优化 实现突破十万并发
nginx指令中的优化(配置文件) worker_processes 8; nginx进程数,建议按照cpu数目来指定,一般为它的倍数. worker_cpu_affinity 00000001 00 ...
- 华为GaussDB相比PostgreSQL做了哪些内核优化?
行业背景 随着全球经贸摩擦与中美贸易战愈演愈烈,国家基础软件自主可控被提上议程.数据库作为基础设施中重要的一环,承担着不可忽视的作用.近几年国产数据库得到了飞速的发展,特别是云数据库.分布式数据库产品 ...
- 【转】Nginx服务并发过10万的Linux内核优化配置
http://www.linuxidc.com/Linux/2012-11/75151.htm 以下Linux 系统内核优化配置均经在线业务系统测试,服务器运行状态良好,用了一些时间整理,现和大家分享 ...
- 霍比特E姐有约|Exploit Network 如何打造 Web3.0 匿名支付协议
4月20日,第19期「霍比特E姐有约」,进行了主题为「Exploit Network 如何打造Web3.0匿名支付协议」的线上AMA,本期AMA由霍比特HBTC全球商务VP Elsa Qiu主持,邀请 ...
- linux7内核优化,centos7 系统内核、网络等优化(适用高并发)
centos7 系统内核.网络等优化(适用高并发) 发布时间:2020-9-22 9:57:13 浏览量:1707 [字体:大 中 小] 一.ssh连接优化 # 禁用dns解析 Port 5211 ...
- linux内核优化策略,linux系统调优小结
关于安全系统的调优: 1.关闭selinux安全策略 sed -i s#SELINUX=enforcing#SELINUX=disabled#g /etc/sysconfig/selinux for ...
- linux内核优化项,Linux内核优化配置
Linux内核优化配置 1.文件限制 ·每建立一个TCP连接,都会生成一个文件句柄,当无法创建文件时,往往会抛出emfile的错误. ·可通过命令ulimit -n查看,linux下默认一般为1024 ...
- Linux 2.6.31内核优化指南
Linux 2.6.31内核优化指南 作者:Ken Wu Email: ken.wug@gmail.com 转载本文档请注明原文链接 http://kenwublog.com/docs/linux-k ...
- 【面试真经】Linux运维面试之内核优化
前言 最近学员去公司面试,很多公司会问到关于内核优化的问题,其实面试官也没有优化过,但就是想问问,仅此而已. 作为一个运维对Linux内核参数进行调整,很多人觉得很高大上,可能是很高深的技术. 可以这 ...
- 华为GaussDB数据库相比PostgreSQL做了哪些内核优化
行业背景 随着全球经贸摩擦与中美贸易战愈演愈烈,国家基础软件自主可控被提上议程.数据库作为基础设施中重要的一环,承担着不可忽视的作用.近几年国产数据库得到了飞速的发展,特别是云数据库.分布式数据库产品 ...
最新文章
- 提高使用比特币的匿名性
- vue中解决Uncaught ReferenceError: regeneratorRuntime is not defined问题
- 【翻译】Programming Ruby——数组,哈希表和控制结构
- python中 .sort()、 sorted()和 .reverse() 、reversed()的区别
- .NETCore 简单且高级的库 csredis v3.0.0
- 集算器访问HTTP数据的代码示例
- 2020国开c语言程序设计1075,代号1253国开点大2017年6月春季学期本科期末考试《C语言程序设计》试题及答案.pdf...
- 如何把你的Linux系统变得更加安全
- 机器视觉:偏振镜光学原理和在机器视觉中的应用
- Expression Blend中文教程 - 开篇
- 2013年思杰合作伙伴移动性解决方案巡展
- html鼠标滑动响应,CSS鼠标响应事件经过、移动、点击示例介绍
- 【大学生软件测试基础】三角形构成问题 - 决策表
- 如何手动启动MySQL服务器
- 【Mysql系列】游标/光标简介
- DEBUG命令大全及实例(有改动)
- 手把手教你把网上下载视频刻录成VCD、DVD
- Fantasy of a Summation(找规律,水)
- 千呼万唤,小灰的新书出版了!
- 【年度总结】2021 邂逅前端,入坑算法