Oprofile需要popt, bfd, liberty库,要在嵌入式单板上使用这些库,需要手工完成交叉编译。
学习一些操作系统的理论知识,一些概念。比如:进程,内存管理,文件系统等等。关于这一方面的书籍太多了,自己找一本就行了 2 学习x86汇编,虽然linux用的是AT&T汇编,但二者只是格式不同而已。
先练基本功,《C语言》,《数据结构》,《计算机操作系统》,《计算机体系结构》,这几门课程是必须的。《Linux内核源码分析》+Linux内核代码。
首先,你需要知道一个linux的论坛,在这里所有对内核有兴趣的人都会在这里讨论跟内核代码有关的东西,这里我介绍的网站叫:https://lkml.org/, 通过网页上的链接,你可以了解很多跟linux有关的东西。
要练习编程和命令,跟定制内核无关。linux下编程的话你要学c和makefile,练习命令的话你网上找本shell编程的书,多实践很快能学好。使用任意*linux发行版就可以,有桌面的更方便使用,能加快学习进度,祝你成功。
为了研究,学习内核源码。2为了支持新的硬件或者打开某项内核功能。3升级内核到更新版本。4按自己的要求定制和优化内核功能。如此种种...折腾不需要理由,这里我就不在多说,下面直接进入主题。
1、有两种方法,一种方法使用mysql的check table和repair table 的sql语句,另一种方法是使用MySQL提供的多个myisamchk, isamchk数据检测恢复工具。前者使用起来比较简便。推荐使用。
2、不过我们发现,strace 中没有关于表结构文件的 open 操作(只有 stat 操作,定位表结构文件是否存在),也就是说 table cache 不命中,不一定需要读取表结构文件。
3、OS 层面的 CPU、IO、内存、磁盘、网络等信息; MySQL 层面的行锁等待、会话连接、主从复制,状态参数等信息。
4、先通过 dbdeployer 快速搭建一主两从半同步集群:下面给 master 施加一些压力:然后我们用 strace,拖慢 slave2 的运行速度。由于半同步复制的原因,现在 slave2 拖慢了 master 的提交性能。
5、按我个人经验有以下几种方法:在连接数据库的时候可以优化,使用连接池。主要就是不要频繁地创建,销毁连接。这是很费时的一个操作。因此,使用连接池来代替普通的建立连接操作,能提高并发度。 使用缓存技术。
6、在编程时,由于用mysql语句调用数据库时,在每次之执行语句前,会做一个临时的变量用来打开数据库,所以你在使用mysql语句的时候,记得在每次调用完mysql之后就关闭mysql临时变量。