最近公司预生产环境.net core应用的docker容器经常出现内存暴涨现象,有时会突然吃掉几个G,触发监控预警,造成容器重启. 分析了各种可能原因,修复了可能发生的内存泄露,经测试本地正常,但是发到预生产还是会有内存暴涨现象,反而更改GC模式后内存使用保持较低水平,百思不得其解,所以想到使用调试dump文件方式来分析应用内存状况. 环境: lldb:3.9 dotnetcore:2.1.6 docker image:microsoft/dotnet:2.1.6-aspnetcore-runt…
Android生成heap dump文件(.hprof) 一个heap dump就是一个程序heap的快照,能够获知程序的哪些部分正在使用大部分的内存. 它保存为一种叫做HPROF的二进制格式.对于Android运行android.os.Debug.dumpHprofData(hprofPath)方法后所生成的文件,须要把.hprof文件从Dalvik格式转换成J2SE HPROF格式.使用AndroidSDK提供的hprof-conv工具可运行该转换操作. hprof-conv dump.hp…
本文仍处于修订中 写在开始前 我们的主要业务基于 dotnet core 2.x 与 3.1 完成,目前 dotnet core 3.1 支持的 CPU 架构列表中还不包含龙芯,且在 gitlab issue 中表示官方当前没有对 MIPS 的支持计划. 更具体操作系统与 CPU 架构列表见 [Download .NET Core 3.1](https://dotnet.microsoft.com/download/dotnet-core/3.1 6月下旬,龙芯团队宣布在 dotnet/core…
程序是在release模式下生成的,并且arm和x64通过了验证,但是x86就出现了这个奇葩问题. 搞了半天发现是要把“优化代码”的选项勾上.…
执行文件编译时加入-g 命令 例如 g++ -g test.cpp 查看当前系统限制情况 ulimit -a 设置crash dump 文件大小 ulimit -c unlimited unlimited表示无大小限制,也可以指定具体的大小 ulimit -c 1000 表示文件大小限制为1000Kb 若要全局生效需要在/etc/profile中加入上面的命令ulimit -c 1000,然后source /etc/profile使之生效 配置dump文件生成路径 /proc/sys/kerne…
在使用 dotnet core 发布独立项目的时候,会带上大量依赖的库,但是通过微软提供的工具可以去掉一些在代码没有用到的库. 本文介绍的工具是 Microsoft.Packaging.Tools.Trimming 这是一个预览的工具,需要从 myget.org 下载 通过这个工具可以分析有哪些 dll 不是必须的 这个工具使用方法很简单,不过需要先点击 nuget 源添加 https://dotnet.myget.org/F/dotnet-core/api/v3/index.json 才可以…
docker的好处不用多说,有不了解的可移步<docker入门>,作为一个.net方面的老鸟也想早点搭上docker末班车,减少布署中的各种坑.以下我是在Visual Studio 2017正式版发布后(其实VS2015也是可以的),完全跑起来的步骤. 第一步:安装docker 下载地址:https://www.docker.com/docker-windows,下载的同时先去“控制面板” “程序”里启用“Hyper-V”,启用完了,下载也基本完成了,保证下载完成了的情况下,重启电脑,完事接着…
Startup.cs下ConfigureServices代码 这里主要在DocInclusionPredicate控制输出那些api. Startup.cs下Configure代码 给Controllers或Action添加[ApiExplorerSettings(GroupName= "ApiGroupName")] ApiGroupAttribute 若不想使用Microsoft.AspNetCore.Mvc下的ApiExplorerSettingsAttribute,可以自己建一…
问题现象: linux操作系统中的/var/spool/clientmqueue/目录下存在大量文件. 原因分析: 系统中有用户开启了cron,而cron中执行的程序有输出内容,输出内容会以邮件形式发给cron的用户,而sendmail没有启动所以就产生了这些文件: 解决办法: 1. 将crontab里面的命令后面加上> /dev/null 2>&12.知识点:2>:重定向错误.2>&1:把错误重定向到输出要送到的地方.即把上述命令的执行结果重定向到/dev/nul…
OMEdit的仿真结果文件存放在:C:\Users\***\AppData\Local\Temp\OpenModelica\OMEdit 可以在仿真时设置仿真结果文件名,可使用用绝对路径或相对路径 使用OMShell仿真,调用以下命令,可以看到仿真结果,但找不到仿真结果文件 loadModel(Modelica); loadFile ("C:/Users/wen/Desktop/TCS.mo"); simulate(TCS.TCS,startTime=,stopTime=200.0,o…