linux线程一直在增加,在.net core中遇到的奇怪问题:内存与线程数一直增长
一个 asp.net core 站点,之前运行在 linux 服务器上,运行一段时间后有时站点会挂掉,有一次的症状是 asp.net core站点在高并发下出现的“EMFILE too many open files”问题 。
昨天将该站点升级至 .net core 1.1(之前用的是 .net core 1.1 preview1)并部署到 windows 服务器的 IIS 上,在同一个负载均衡下部署了2台服务器。
今天早上发现其中一台服务器出现503错误,登上服务器一看,该站点的进程内存占用竟然有1.2G,而同一负载均衡中另外一台正常的服务器内存占用只有40多M。然后看了一下进程中的线程数,惊呆了——竟然有8000多个线程!而另外一台正常的服务器只有20多个线程。
接着将这台服务器从负载均衡上摘下来,这时出现了更加让人惊呆的现象——在没有请求的情况下,这个 asp.net core 站点进程的内存占用与线程数一直在增长。就像在代码中写了一个死循环,在循环中不停地创建线程。
9:30左右是1.2G内存8000多个线程,到了11:09左右内存增长到1.8G,线程数增长到1.3万,而且还在持续增长。
不仅内存与线程数在增长,而且CPU也一直在波动,这可是在没有任何请求的情况下,谁在偷偷地干活?
从目前分析的情况看,罪魁祸首可能是 EnyimMemcachedCore (支持.net core的memcached客户端,是我们从 EnyimMemcached 移植过来的),EnyimMemcachedCore 用到了 Socket 池,问题可能出在 Socket 池部分,源代码在 github 上(EnyimMemcachedCore源代码)。
目前不知道从何处下手排查这个问题,很期待您的高见。
linux线程一直在增加,在.net core中遇到的奇怪问题:内存与线程数一直增长相关推荐
- 一文读懂 | Linux 中的各种栈:进程栈 线程栈 内核栈 中断栈
点击蓝字 关注我们 因公众号更改推送规则,请点"在看"并加"星标"第一时间获取精彩技术分享 来源于网络,侵删 栈是什么?栈有什么作用? 首先,栈 (stack) ...
- Linux中的各种栈:进程栈 线程栈 内核栈 中断栈
Linux中的各种栈:进程栈 线程栈 内核栈 中断栈 栈的作用 1. 函数调用 2. 多任务支持 Linux 中有几种栈?各种栈的内存位置? 1. 进程栈 2. 线程栈 3. 进程内核栈 4. 中断栈 ...
- Linux 中的各种栈:进程栈 线程栈 内核栈 中断栈
栈是什么?栈有什么作用? 首先,栈 (stack) 是一种串列形式的 数据结构.这种数据结构的特点是 后入先出 (LIFO, Last In First Out),数据只能在串列的一端 (称为:栈顶 ...
- Linux系统中消息队列,共享内存、信号和线程的基本操作使用方法
Linux系统中消息队列,共享内存.信号和线程高级操作 第十一章 消息队列 10.1消息队列定义 10.2 消息队列特点 10.3 key值 10.4 创建消息队列 10.4.1 发送消息 10.4. ...
- Linux服务器的最大内存和CPU数
从网上查了很多资料.总算把linux下的内存和cpu个数搞清楚了.个人觉得使用linux系统的朋友都应该了解下.先公布如下,如有错误,请反馈给我.谢谢!! Linux系统/服务器能够支持的最大内存和C ...
- 服务器线程数一直增加,.NET Core中遇到奇怪的线程死锁问题:内存与线程数不停地增长...
一个 asp.net core 站点,之前运行在Linux 服务器上,运行一段时间后有时站点会挂掉,在日志中记录很多"EMFILE too many open files"的错误: ...
- Linux下程序崩溃dump时的 core文件的使用方法
Linux下程序崩溃dump时的 core文件的使用方法 1.在启动程序前执行 ulimit -c unlimited unlimited 表示生成文件的大小限制,也可以修改为自定义的大小,例如: u ...
- 在linux的weblogic上增加启动参数
如何在linux的weblogic上增加启动参数 在windows的myeclipse非常简单,就是 window-preference-myclipse-application server-web ...
- Linux系统编程----12(线程概念,Linux线程实现原理,栈中ebp指针和ebp指针,线程的优缺点和共享资源)
线程概念 什么是线程 在一个程序里的一个执行路线就叫做线程(thread). 更准确的定义是:线程是"一个进程内部的控制序列" 一切进程至少都有一个执行线程 线程在进程内部运行,本 ...
最新文章
- 规范化制度保障安擎高品质产品
- WWDC2018总结
- Hibernate HQL基础 投影查询
- mysql 白皮书_mysql企业版 《 MySQL企业版中文白皮书 》.cn.doc
- 深度学习训练模型中的 train from scrath 是什么意思?(247)
- 电脑壁纸励志_励志文案丨关于学习的文案,大家加油!
- verilog实现伺服电机控制
- 产品专家Marty Cagan:不做仅仅会编码的人
- 05Struts2表单
- boost asio异步通信
- Linux下计算进程的CPU占用和内存占用的编程方法[转]
- 26.go test
- 基于模拟退火算法解决TSP问题 | MATLAB源码
- NOIP模拟赛 czy的后宫5
- 用JAVA实现简单点餐系统
- 金山云CDN:国内最佳付费CDN
- (转)A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'
- 简单几步实现内网穿透
- 赞!原来还有这些免费图片下载网站(内附部分爬虫代码)
- HTML+CSS实现渐变色标签,鼠标经过效果