解决texlive化学式转换镜像经常偶发性进程堆积导致卡顿问题

技术解决texlive化学式转换镜像经常偶发性进程堆积导致卡顿问题 解决texlive化学式转换镜像经常偶发性进程堆积导致卡顿问题前言
之前在 使用Python定时清理运行超时的pdflatex僵尸进程

解决texlive化学式转换镜偶尔工艺堆积导致的卡死问题。

前言

在用python清理超时pdflatex僵尸进程的博文中,我用Python脚本启动了清理pdflatex僵尸进程的定时任务。部署了三个在线的4u2G k8s pod,pdflatex的执行过程是cpu密集型的,内存消耗很少。然而,在PODs的实际操作中有时会出现一些问题。

问题

问题1: K8s POD存储超过100M,POD宕机,但资源没有回收,导致K8s命名空间资源空耗。

问题2:每隔一段时间,单个pod进程偶尔会出现积压,预定的清理脚本也会宕机,导致清理任务无法正常运行。

问题3:主要原因是你不知道吊舱有问题。所有请求都通过k8s负载平衡到每个pod。一旦路由到有问题的pod,请求就会挂起。您必须在本地配置kubectl,以进入生产窗格检查流程,找到问题窗格,手动清理流程并重新启动清理任务。但是清理完之后,你会发现同样的问题过几天还会再次出现,人力运维的负担很重。

解决

问题一

第一个问题是,当我们执行pdflatex时,我们会生成tex和pdf文件,正常执行后,我们会清理这些文件。但是如果是僵尸进程,我们在清理进程的时候也需要清理进程对应的文件。清理脚本如下:

def clean_files():

nowtime=datetime.datetime.now()

#获得5分钟的时间差(因为创建超过5分钟的文件需要删除)

deltime=datetime.timedelta(秒=120)

#获取当前时间减去5分钟时差。

nd=nowtime - deltime

路径='/home/'

files=os.listdir(路径)

对于文件:中的文件

filectime=get_filectime(路径文件)

if filectime nd和len(文件)32:

os.remove(路径文件)

Logging.info('清理文件:'文件')

问题二

第二个问题比较严重,这是由以下原因造成的:

1.clean_files的偶尔异常导致计划任务挂起。在这里,已经判断偶尔出现了一个异常,即在文件创建时间后5分钟删除文件时找不到文件,这导致计划的任务挂起。判断pdflatex进程的积压导致clean_files永远无法获得cpu的执行权,而那些“异常”的文件在os.remove执行时被“正常”进程清理掉,导致错误。

2.p.terminate()方法没有生效。这个应该是texlive的bug引起的。我在部署生产时,每10分钟执行一次前面的清理过程。但由于pdflatex的cpu消耗较高,如果出现较多不正确的语法转换或稍高的并发,会造成短时间内cpu压力突然增大。此时,一些pdflatex进程已经伪造了它们的死亡,进程不能通过向进程发送终止指令来直接响应。

解决方法:第一个问题比较简单。试着抓住它。如果一次失败,下次可以执行,没有坏处。第二个问题,问题一直没有定位,偶尔有一些节点已经运行了几个月没有任何问题,但是偶尔有一个新的节点总是喜欢出问题,除了暴力和代码什么都没有。

def process_checker():

尝试:

Logging.info('pdflatex进程清理')

OS . system(' kill-9 ` PS-ef | grep pdflatex | grep pdftex | awk ' { print $ 1 } ' ` ')

e:除外

日志记录。错误(“清理过程中的错误”)

尝试:

clean_files()

Logging.info(“文件清理成功”)

e:除外

日志记录。错误(“清理文件时出错”)

其实一开始我用kill让它更流畅,但是跑了一段时间后发现根本摆脱不了kill,于是加了-9结束那些烦人的进程。

定时任务也会被删除。一切都很简单,边循环,每次睡60秒。循环中的代码try catch保证了如果一个节点在高峰期卡住,一分钟之内就能自动恢复,避免了人肉操作和维护,在生产环境中增加了两个实例,不存在长时间卡住的反馈问题。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/130344.html

(0)

相关推荐

  • 分析PostgreSQL创建函数的过程

    技术分析PostgreSQL创建函数的过程本篇内容主要讲解“分析PostgreSQL创建函数的过程”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“分析PostgreSQL创建函

    攻略 2021年11月5日
  • 怎么实现Hadoop集群搭建

    技术怎么实现Hadoop集群搭建怎么实现Hadoop集群搭建,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。阅读编译文档 准备一个hadoop源码包,我选择的

    攻略 2021年11月16日
  • Socket基础知识有哪些

    技术Socket基础知识有哪些本篇文章给大家分享的是有关Socket基础知识有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。如何一步步掌握Socket相

    攻略 2021年11月25日
  • 抖音0.1元一万赞平台,抖音刷这么多赞要多久

    技术抖音0.1元一万赞平台,抖音刷这么多赞要多久抖音刷点粉安全网站介绍,目前越来越多的年轻人在玩抖音,谁的抖音粉多谁的排名就高上粉的几率就大,所以很多人都想提高自己粉的,就选择进行抖音刷粉,都知道抖音里面的水很深,买抖音

    测评 2021年11月9日
  • 晋陶渊明独爱菊,虽艳无俗姿太皇真富贵的完整诗句

    技术晋陶渊明独爱菊,虽艳无俗姿太皇真富贵的完整诗句爱国诗人一心想着报效祖国,杀敌立功晋陶渊明独爱菊。但南宋小朝廷不容许他这样的爱国将士的积极抗战活动。当时王炎因之调离川陕,陆游也被解除成都安抚使参议官之职,正是“渭水岐山

    生活 2021年10月29日
  • [zoj3990]Tree Equation

    技术[zoj3990]Tree Equation [zoj3990]Tree Equation记$dep(T)$为树$T$的深度(根节点深度为0),则有$\begin{cases}dep(A+B)=\m

    礼包 2021年10月27日