1.Linux系统的内存用掉了多少,还剩余多少?下面这个free命令每一个数字是什么意思?
2.为什么要有DMA、NORMAL、HIGHMEM zone?每个zone的大小是由谁决定的?
3.系统的内存是如何被内核和应用瓜分掉的?
4.底层的内存管理算法buddy是怎么工作的?它和内核里面的slab分配器是什么关系?
5.频繁的内存申请和释放是否会导致内存的碎片化?它的后果是什么?
6.Linux内存耗尽后,系统会发生怎样的情况?
7.应用程序的内存是什么时候拿到的?malloc()成功后,是否真的拿到了内存?应用程序的malloc()与free()与内核的关系究竟是什么?
8.什么是lazy分配机制?应用的内存为什么会延后以最懒惰的方式拿到?
9.我写的应用究竟耗费了多少内存?进程的vss/rss/pss/uss分别是什么概念?虚拟的,真实的,共享的,独占的,究竟哪个是哪个?
10.内存为什么要做文件系统的缓存?如何做?缓存何时放弃?
11.Free命令里面显示的buffers和cached分别是什么?二者有何区别?
12.交换分区、虚拟内存究竟是什么鬼?它们针对的是什么性质的内存?什么是匿名页?
13.进程耗费的内存、文件系统的缓存何时回收?回收的算法是不是类似LRU?
14.怎样追踪和判决发生了内存泄漏?内存泄漏后如何查找泄漏源?
15.内存大小这样影响系统的性能?CPU、内存、I/O三角如何互动?它们如何综合决定系统的一些关键性能?
1.Linux进程和线程如何创建、退出?进程退出的时候,自己没有释放的资源(如内存没有free)会怎样?
2.什么是写时拷贝?
3.Linux的线程如何实现,与进程的本质区别是什么?
4.Linux能否满足硬实时的需求?
5.进程如何睡眠等资源,此后又如何被唤醒?
6.进程的调度延时是多少?
7.调度器追求的吞吐率和响应延迟之间是什么关系?CPU消耗型和I/O消耗型进程的诉求?
8.Linux怎么区分进程优先级?实时的调度策略和普通调度策略有什么区别?
9.nice值的作用是什么?nice值低有什么优势?
10.Linux可以被改造成硬实时吗?有什么方案?
11.多核、多线程的情况下,Linux如何实现进程的负载均衡?
12.这么多线程,究竟哪个线程在哪个CPU核上跑?有没有办法把某个线程固定到某个CPU跑?
13.多核下如何实现中断、软中断的负载均衡?
14.如何利用cgroup对进行进程分组,并调控各个group的CPU资源?
15.CPU利用率和CPU负载之间的关系?CPU负载高一定用户体验差吗?