作者回复: 这是为了防止栈溢出问题,当线程栈溢出后,就会写这个保护页,进而出发segfault。
作者回复: pthread_create的时候可能会调用clone,clone是一个系统调用,pthread是lib库,库函数其实是对系统调用的封装。 物理内存泄露并没有什么高效的分析方式,只能通过追踪malloc/free来看在哪里申请的没有去释放。
作者回复: 对的 只是虚拟地址空间产生了问题 实际的物理内存并没有问题 整个系统的内存并没有异常
作者回复: 内存水位不足后就会唤醒kswapd来回收内存,如果kswapd可以回收内存并且内存水位持续高,kswapd就会一直忙,它的使用率就会高。只有在回收不到内存的情况下,才会触发oom killer来杀进程。 你说的这种情况就是可以回收到内存,但是回收比较困难 所以才产生这种情况。
作者回复: jvm堆外内存泄漏,在明确哪些任务在泄漏内存后,最好能否结合代码来进行打点追踪,看看哪里有问题。