0
点赞
收藏
分享

微信扫一扫

根据设定的内存抓取dump

罗子僧 2022-02-15 阅读 66
c#

背景

近期服务器的内存不定时会突然的暴涨,然后就一直持续不下,只能夜里偷偷重启服务器(●’◡’●),于是就想抓取一下内存,看看是哪些东西在占用内存,虽然可以使用任务管理器抓取,但需要时刻盯着,麻烦!所以就使用了procdump.exe,可以根据设定的条件抓,比如内存达到一定的值,CPU达到一定的值等。

操作步骤

演示程序代码如下:

		static void Main(string[] args)
        {
            var list = new List<string>();

            for (; ;)
            {
                list.Add(string.Join(",", Enumerable.Range(0, 10000)));
            }

            Console.ReadLine();
        }
  1. 启动CMD,并进入procdump.exe所在的目录
  2. 启动演示程序
  3. 在CMD中执行如下命令:procdump ConsoleApp3 -m 1024 -ma D:\
    解释:
    ConsoleApp3是程序名称
    -m 1024 内存的阈值,达到该值时就进行抓取,单位是MB
    -ma 是生成full dump, 即包括进程的所有内存. 默认的dump格式包括线程和句柄信息
    D:\ 抓取的dump存取位置

截图如下:
在这里插入图片描述

举报

相关推荐

0 条评论