IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:多核优化

共 2 篇相关文章

IT 累计浏览 5,959

进程运行于不同的 CPU 核

这篇文章讲的是,如何在多核服务器上,让关键进程更高效地利用 CPU 资源。作者从用 Gearman 搭建 Map/Reduce 的实战场景出发,发现启动多个 daemon 进程后,需要确保它们能够分散运行在不同 CPU 核心上,以避免资源争抢、提升整体性能。 文章的核心方案是利用“CPU 亲和性”,将进程绑定到指定的 CPU 核心。作者不仅展示了如何使用 `taskset` 命令,将已运行的进程或通过脚本启动的进程分配到 CPU#0、#1、#2 上,还特别指出了 Nginx 的配置方式——它支持在 `nginx.conf` 中通过 `worker_cpu_affinity` 为每个工作进程精确绑定 CPU 核心,这是一种更优雅的管理方法。 从基本的 `taskset` 命令操作,到深入探讨 `sched_setaffinity` 系统调用和进程继承机制,文章给出了从“知道怎么做”到“理解为什么”的完整路径。对于追求高并发性能的后端开发者而言,这种对服务器硬件资源进行细粒度控制的能力,是优化服务稳定性和吞吐量的实用技巧。

IT 累计浏览 5,320

tcmalloc的内存管理

这篇介绍的是 tcmalloc 这个高性能内存管理库的核心设计思想。它从内存管理的两大核心目标——分配与释放速度、内存利用率(即碎片控制)——之间的根本矛盾切入,点明了所有内存管理算法都需要在这两者之间做出权衡。 文章没有停留在理论层面,而是将 tcmalloc 作为替代传统 `new/delete` 的具体方案来剖析。它解释了 tcmalloc 如何通过其内部设计(比如线程本地缓存、分桶大小类等机制)来尽量同时优化这两个目标,从而在通用场景下取得比标准分配器更好的整体性能。 对于开发者而言,理解 tcmalloc 的思路意味着能更清晰地判断,在自己的应用场景中,是更需要极致的分配速度,还是更注重长期运行的内存碎片最小化。文章的分析帮助读者建立起这种评估内存分配策略的框架。