揭秘高性能Linux服务器内存池技术是如何实现的
k8s技术圈
共 4198字,需浏览 9分钟
· 2021-04-20
大家生活中肯定都有这样的经验,那就是大众化的产品都比较便宜,但便宜的大众产品就是一个词,普通;而可以定制的产品一般都价位不凡,这种定制的产品注定不会在大众中普及,因此定制产品就是一个词,独特。
有的同学可能会有疑问,你不是要聊技术吗?怎么又说起消费了?
原来技术也有大众货以及定制品。
通用 VS 定制
![](https://filescdn.proginn.com/22395bf354664384bae9ef72c876fbad/f1c07cedaa4657dd2b8c4380bbc61ddb.webp)
malloc开始搜索空闲内存块,如果能找到一块大小合适的就分配出去
如果malloc找不到一块合适的空闲内存,那么调用brk等系统调用扩大堆区从而获得更多的空闲内存
malloc调用brk后开始转入内核态,此时操作系统中的虚拟内存系统开始工作,扩大进程的堆区,注意额外扩大的这一部分内存仅仅是虚拟内存,操作系统并没有为此分配真正的物理内存
brk执行结束后返回到malloc,从内核态切换到用户态,malloc找到一块合适的空闲内存后返回
![](https://filescdn.proginn.com/1c73de17818dc0a3cfc9c0bad8b70d80/ba1bb9167010807e05c5233550f9ad24.webp)
内存池技术有什么特殊的吗?
![](https://filescdn.proginn.com/fe55929a12d08e8691a00df02951b836/7c769b95d42c504d35ffc97aaa56fd84.webp)
![](https://filescdn.proginn.com/2a47f322d7737f7e172e008d5b11f2d6/0925decf81f7d119dc77f34d56d95468.webp)
内存池技术原理
![](https://filescdn.proginn.com/c4b57b776bd1f194bc500cb3c4c6e2a7/e09bbbc13c1e2228276ecb380be46415.webp)
实现内存池的考虑
![](https://filescdn.proginn.com/6e40d0e2f3cf583e5102d541b234b81d/bb8ba1f84c4af25095d701dd5b4a3741.webp)
数据结构
![](https://filescdn.proginn.com/0d270a72d770b68472b1f557d9086274/2531b6ccbb3c967d5008f8ded952991e.webp)
![](https://filescdn.proginn.com/0ca97f78f541b93481970c4aee061c87/ace901656e830b35b1bfda619e99b739.webp)
线程安全
![](https://filescdn.proginn.com/27a7f49bab40f4ee2d7915fbde07bf07/2a6ea33192d57c5d0738f2723c2e050c.webp)
线程局部存储
![](https://filescdn.proginn.com/74d7ea4a1f6f579739f6fff82e342344/fe981184f80abfbc0b8c89a5b503749e.webp)
线程局部存储+内存池
![](https://filescdn.proginn.com/f04651383f525cd7944cf859b5044901/7c6fcf73f6a6e6d49f023d85906f51ff.webp)
其它内存池形式
![](https://filescdn.proginn.com/6015b5ea28a8b49d00e7007a46d16526/9b966fe49231a726f9575ac7f581d305.webp)
![](https://filescdn.proginn.com/ef8e68a33e1bfab5bfac3a161ab3424b/224a604f263787cf35c82e75de784b1d.webp)
![](https://filescdn.proginn.com/a995606feb9822e521cc726735387d39/9193ebce9f06d1b0eb6daaac549f8616.webp)
一个有趣的问题
![](https://filescdn.proginn.com/2c98bd975759bf45922608c1dde6ef25/7742f3dd678e91e0b9d4f4ceeed8c845.webp)
![](https://filescdn.proginn.com/7f1608e078b0df6a30a9847200328a55/6d1ad8ef0d61b6373792c9b0254ee1aa.webp)
![](https://filescdn.proginn.com/afd17bae04f34595839c79d790928e63/620787f2a238049e43352af2097e1e28.webp)
总结
最后的最后,如果觉得文章对你有帮助的话,请多多分享、转发、在看。
评论