物理世界的一个码农
概念世界的一个旅行者
软件世界的一个信使
开篇问题
有一个Linux的多线程程序,在某一台服务器上运行10天后,该程序进程产生了120个线程,此时业务的性能变得很差(可以容易获取业务性能表现的指标)。 我们检查了同时启动服务的其他10台服务器,这10台服务器的业务表现都正常。 我们使用了各种手段分析排查产生性能下降的原因,但没有找到。 不过经过对比,我们对其中一个业务产生了比较大的怀疑,这个业务本身很独立,别的流程对它没有依赖。 我们怀疑这个业务的线程运行过程中执行了某些特殊代码,对系统整体性能产生了影响。 这个业务一共启动了12个线程,而且这个业务也没有运行时开关。 但是我们不能重启程序,因为担心无法复现问题。 现在,怎么来确认这个怀疑是对的还是错的?
使用Jemalloc Profiling跟踪内存泄漏和内存增长问题
今天给大家介绍一种依靠内存分配器自带能力来跟踪内存泄漏问题的方法。保证这是一个好的方法,是经过多年检验的方法。
但是,这不是最好的,因为没有银弹。
1. 开篇问题
在一个内存密集型的代码量超过40W行的C++编写的系统中:
-
定位一个慢内存泄漏问题(比如跑了1天,泄漏了10GB内存),该怎么办?
-
启动运行10分钟后,服务器内存消耗了20GB,然后内存就稳定了,存在内存消耗过高的问题,为了优化内存消耗,现在需要找出这些内存消耗的热点,该怎么办?
世界究竟是概念
软件概念世界
物质的世界,不用多说,我们都能轻松感知
有这样的世界,大部分人们只能模糊感知到它的存在 他们就是无形的世界
这样的世界不止一个
有个名词叫概念世界,它就指向了这样一个世界
物质世界里高楼丛生,四通八达,琳琅满目 俯身大地,大地宽广 仰望星空,银河灿烂 千山江水,万里晴天 璀璨多彩,无所不有
一醒来这个物质世界就展现在你我面前,清清楚楚,明明白白
而概念的世界则不同,你我无法用眼睛看到,用耳朵听到,用手触摸到,我们唯有借助思维才能了知