解决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)

相关推荐

  • 圾读音,垃和圾分开组词可以组什么词

    技术圾读音,垃和圾分开组词可以组什么词垃的组词如下圾读音:圪垃、
    圾的组词如下:
    搭圾、
    垃圾的相关组词如下:
    垃圾股、垃圾筒、敲坷垃、垃圾袋、坷垃头子、空间垃圾、垃圾填埋、白色垃圾、拉圾箱、垃圾堆、百圾碎、垃圾邮件、帕

    生活 2021年10月23日
  • redis学习笔记,详细)——高级篇

    技术redis学习笔记,详细)——高级篇 redis学习笔记(详细)——高级篇redis学习笔记(详细)——初级篇 redis学习笔记(详细)——高级篇 redis配置文件介绍linux环境下配置大于编

    礼包 2021年11月11日
  • C++怎么定义变量的引用

    技术C++怎么定义变量的引用本篇内容介绍了“C++怎么定义变量的引用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!数组的

    攻略 2021年11月30日
  • hbase shell操作语句有哪些

    技术hbase shell操作语句有哪些这篇文章将为大家详细讲解有关hbase shell操作语句有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。hbase shell操作语句基本

    攻略 2021年12月9日
  • edge什么意思,福特edge是什么意思

    技术edge什么意思,福特edge是什么意思edge就是锐界的意思,这是长安福特新推出的一款SUV车型。福特锐界 福特锐界是一款中型跨界SUV车型,在福特CD3平台上打造,厚积者锐意进取拓疆界引领同侪福特锐界,入门配置锐

    生活 2021年10月19日
  • 简易学生管理系统

    技术简易学生管理系统 简易学生管理系统此系统可实现学生信息的添加、删除、修改和查看。
    运行效果如下所示:实现代码如下所示:1 package heima;2 3 public class Student

    礼包 2021年11月15日