首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

YARN——NM重启的任务恢复

【概述】 ---- 上一篇文章中提到了,nm进程重启后会根据记录的信息进行恢复或重新创建container进程,那么NM将container的哪些信息记录到了本地,重启过程中又是如何读取并恢复的,本文就来聊聊相关的原理...【重启恢复】 ---- NM重启,container的大概恢复流程如下图所示: 从文件中加载所有app相关的信息,并为每个app创建对应的实例对象 给每个app实例对象发送initApplication...重启恢复再次收到启动container进程的请求,会先到指定的目录查看是否有对应的PID文件,并判断对应的PID进程是否还存在,如果存在则不进行实际的启动动作,否则会创建对应的进程。...【总结】 ---- 实际上,NM使能重启恢复,持久化记录的不仅仅只有app和container的信息,还包括本地化的资源情况,以及用于认证的token信息,这样可以加速container恢复的速度。...另外,如果RM如果感知NM心跳超时,会进行相关的清除动作,在此之后,NM重启恢复创建相关container进程,然后通过心跳汇报给RM,RM校验判断app或container不存在或已结束的话,会告知

90030
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【玩转服务器】Linux服务器内存占用排查方法

    当Linux服务器内存占用时,可以按照以下步骤进行排查: 查看内存使用情况 使用free命令可以查看系统的内存使用情况,包括总内存、已用内存、空闲内存等信息。...有时系统内存占用可能是由缓存和缓冲区所导致的。Linux系统会利用未分配的内存作为缓存和缓冲区,以提高文件访问速度。...20 0 164896 9496 2080 S 0.0 0.5 0:00.53 barad_agent 查看系统日志 查看系统日志可以帮助定位内存占用的原因...slab内存 查看不可回收的slab内存占用情况,如果这部分内存占用较高,可以使用slabtop命令查看是哪些slab占用大。...总结 在实际应用中,某个进程占用内存过高可能问题并非出在程序本身,如 mysql 占用内存过高,则有可能是程序代码中 sql 语句不够优化导致,所以排查要从全局出发,考虑系统整体资源占用情况。

    2K31

    Windbg分析内存占用问题

    Windbg分析内存占用问题 2799767-0f1cf31d06374907.png 1....打Dump 远程客户应用服务器,32G内存占用已经消耗了78%,而现场已经反馈收银系统接近奔溃了,要求先强制回收内存。反正也要奔溃了,先打Dump再说吧。...而打Dump的耗时,也是根据当时进程的内存占用有关,内存占用越大,耗时越久。) 打开任务管理器,选择对应的IIS进程,右键创建转储文件(Dump)。...观察任务管理器,发现内存占用一下就降下来了,原来是之前的进程直接奔溃了,重启了一个W3WP进程。 既然直接从任务管理器无法创建,就使用第三方工具收集Dump吧。...因为是内存占用问题,我们使用以下命令来抓取dump: (PS:可以使用进程名称,也可以使用进程ID来指定要创建Dump的进程。当有多个相同名称的进程时,必须使用进程ID来指定!)

    2.3K20

    Windbg分析内存占用问题

    打Dump 远程客户应用服务器,32G内存占用已经消耗了78%,而现场已经反馈收银系统接近奔溃了,要求先强制回收内存。反正也要奔溃了,先打Dump再说吧。...而打Dump的耗时,也是根据当时进程的内存占用有关,内存占用越大,耗时越久。) 打开任务管理器,选择对应的IIS进程,右键创建转储文件(Dump)。...观察任务管理器,发现内存占用一下就降下来了,原来是之前的进程直接奔溃了,重启了一个W3WP进程。 既然直接从任务管理器无法创建,就使用第三方工具收集Dump吧。...因为是内存占用问题,我们使用以下命令来抓取dump: (PS:可以使用进程名称,也可以使用进程ID来指定要创建Dump的进程。当有多个相同名称的进程时,必须使用进程ID来指定!)...分析到这里,我们大致可以得出一个结论: String类型占用4G内存,绝大多数是由缓存所占用,才导致String类型得不到释放。 那我们是不是可以猜测内存占用持续走高是不是被缓存撑爆的呢?。

    4.3K30

    线上应用故障排查之二:内存占用

    前一篇介绍了线上应用故障排查之一:CPU占用,这篇主要分析内存占用故障的排查。...现在以一个实际的例子分析内存占用的故障排查。 通过top命令,发现PID为9004的Java进程一直占用比较高的内存不释放(24.7%),出现内存占用的故障。...想起上一篇线上应用故障排查之一:CPU占用介绍的PS命令,能否找到具体是哪个的线程呢?...特别是占用了大量内存的int数组,需要仔细检查相关代码。 最后,总结下排查内存故障的方法和技巧有哪些: 1、top命令:Linux命令。可以查看实时的内存使用情况。  ...2、jmap -histo:live [pid],然后分析具体的对象数目和占用内存大小,从而定位代码。

    1.2K30

    服务器增加内存无法重启数据库的问题及解决 (36天)

    前几天生产环境需要做服务器的扩容,把原本64G的内存扩到了128G.然后调整了一些其他的kernel参数,在此基础上需要调整sga的大小,以便分配更多的缓存。...我先是按照要求把sga调整了一下,从20G调整到40G,这样一个服务器两套环境就占用80G,还有68G的空余。...然后准备重启数据库的时候,报了下面的错误。显示内存问题,还有空间的问题,我检查了一把空间情况,没有发现什么问题。 用free -m检查内存使用情况,空余内存还多着呢。...调整参数值如下: -bash-4.1$ cat /proc/sys/kernel/shmall 33030178 -bash-4.1$ cat /proc/sys/kernel/shmmax 135291609088...再重启数据库就没有问题了。

    3.6K50

    瞬间并发,goroutine执行结束的资源占用问题

    问题 当Go系统遭遇突增流量,洪峰过境,流量恢复正常,整个系统的资源消耗是否会变大? 第一反应,应该是会恢复到之前的水平吧!资源消耗在流量恢复正常之后,为什么会变大呢... 复现 模拟一下该场景。...简而言之,协程执行结束,协程数量会恢复正常,内存恢复不了 定位 先抓一下heap的profile,看一下heap in-use 这几百M都用在了哪里。...同时,checkdead函数会释放相关资源,比如堆栈内存等。在Go语言中,Goroutine是一种轻量级的并发机制,可以帮助程序编写者实现高效率、并发的程序。...当流量恢复,这个在洪峰期间扩增的allgs切片,不会相应变小,还是要进行遍历扫描,从而cpu占用升高,用于处理业务的cpu占比相应减少。...几位游客,而空余的,还需要做各种维护处理 总结&致谢 其实这算是一个陈年老问题,早在2019年,曹大(github: cch123)就已经遇到并在博客中记述:xargin-为什么 Go 模块在下游服务抖动恢复

    73220

    为什么删除数据,Redis内存占用依然很高?

    前言 上周刚来了个应届小师弟,组长说让我带着,周二问了我这样一个问题:师兄啊,我用top命令看了下服务器内存占用情况,发现Redis内存占用严重,于是我就删除了大部分不用的keys,为什么内存占用还是很严重...第二个原因其实理解起来很简单,键值对的修改或者删除肯定会造成空间的扩容或者释放; 一方面,如果修改的键值对变大或者变小了,势必会将占用的空间扩大或者释放不用的空间,如下图: ?...上图中键值对修改变小了,从原来的10个字节变成了7个字节,从而释放了3个字节,此时剩余了5个字节的空闲空间。 另一方面,如果键值对删除了,则会释放掉占用的空间,形成空闲空间。...如何判断存在内存碎片? 这个对于运维人员来说很重要,一旦出现Redis运行缓慢或者阻塞了,一定需要先判断内存占用情况,而不是说胡乱的重启Redis。...既然存在内存碎片,那么的一定有方法清除内存碎片,最简单的方法则是重启Redis 但是这也存在一些风险,如下; 如果Redis未持久化,则数据会丢失(忽略从后端恢复) 即使持久化了,但是恢复数据时长不定,

    1.3K20

    在操作系统重启恢复应用程序的工作状态

    在操作系统重启恢复应用程序的工作状态 发布于 2018-01-21 13:29 更新于 2018-09-...01 00:13 Windows 10 创意者更新之后,默认开启了重启恢复应用程序状态的功能。...传入两个参数: 重启使用的命令行参数(例如当前正在打开的文件,以及正在阅读或编辑的位置) 决定是否进行重启的限制标记(任何时候都能重启还是在某些条件下关掉重启功能) 我封装了以下这个函数的调用并将其放到...System.Windows; using Jetbrains.Annotations; namespace Walterlv.Win32 { /// /// 为应用程序提供重启恢复状态的功能.../// RestartNoReboot = 8 } } ---- 参考资料 为何win10 1709(秋季创意更新) 重启会自动恢复一些程序为重启以前的工作状态

    2.2K10

    dell服务器服务器数据丢失,数据恢复

    dell服务器数据丢失,一般情况下数据都是可以100%恢复的,因此切记勿对服务器硬盘调换顺序,强制上线,重组等任何危险操作,否则将有可能对原有数据造成二次破坏,永久性不可恢复。  ...一:戴尔DELL服务器数据恢复常见故障现象:   1:戴尔DELL服务器磁盘阵列信息丢失,造成整台服务器无法启动;   2:戴尔DELL服务器硬盘一块硬盘掉线,报红灯,系统服务无法启动;   3:戴尔DELL...二、dell服务器数据恢复 RAID 磁盘阵列数据恢复注意事项:   1、不要轻易尝试 Rebuild、同步等操作。   什么是 Rebuild ?...如果在第一块盘掉线阵列进行过写操作,及第一块掉线的磁盘的数据就 “ 不新鲜 ” ,这时只能对先掉线的磁盘做 Rebuild ,如果对掉线的磁盘进行重建操作,部分阵列虽然能正常工作,但数据错乱,一些文件不能打开...而部分服务器对重配阵列信息要自动初始化,损失就更大了。   4出现故障以后只要不对阵列作初始化和非常规的Rebuild操作,我们可以保证100%恢复出故障阵列的数据。

    2.4K20

    师兄,为什么删除数据,Redis内存占用依然很高?

    前言 上周刚来了个应届小师弟,组长说让我带着,周二问了我这样一个问题:师兄啊,我用top命令看了下服务器内存占用情况,发现Redis内存占用严重,于是我就删除了大部分不用的keys,为什么内存占用还是很严重...第二个原因其实理解起来很简单,键值对的修改或者删除肯定会造成空间的扩容或者释放; 一方面,如果修改的键值对变大或者变小了,势必会将占用的空间扩大或者释放不用的空间,如下图: ?...上图中键值对修改变小了,从原来的10个字节变成了7个字节,从而释放了3个字节,此时剩余了5个字节的空闲空间。 另一方面,如果键值对删除了,则会释放掉占用的空间,形成空闲空间。...如何判断存在内存碎片? 这个对于运维人员来说很重要,一旦出现Redis运行缓慢或者阻塞了,一定需要先判断内存占用情况,而不是说胡乱的重启Redis。...既然存在内存碎片,那么的一定有方法清除内存碎片,最简单的方法则是重启Redis 但是这也存在一些风险,如下; 如果Redis未持久化,则数据会丢失(忽略从后端恢复) 即使持久化了,但是恢复数据时长不定,

    1.3K20

    监测 Linux 服务器 CPU 和内存占用的方法

    监测 CPU 和内存占用可以用安全狗之类的软件客户端在本地电脑实现,那样同样需要安装服务器端,会占用一些资源;不爱安装软件或者偶尔才观察一次的可以看看下面手动的办法。...首先这台云服务器用的是 lnmp1.4 的生产环境,从购买到现在有 6 个多月没重启了,这也是 Linux 系统的好处之一:只要资源使用不超硬件配置上限,就不用重启。...windows 系统就不行,要定期重启一下释放资源占用,否则会很卡。 连接到 SSH 上面,收入查看 CPU 命令: top 然后能够看到目前系统 CPU 占用情况如下图。...能够看到系统已经持续运行了 215 天,当前时刻 CPU 占用情况 23.4%,内存使用情况也是蛮好的。下面的列表还能看到是哪些用户占用了 CPU 和内存,及占用百分比。 ?...经过查看近 24 小时及 7 天 CPU 占用情况来看,总体来说这台腾讯云Linux 服务器的 CPU 占用内存使用情况还都是蛮理想的。

    34.8K50
    领券