LSF - bjobs频繁查询导致集群性能问题的debug分析

2024-03-29 07:32

本文主要是介绍LSF - bjobs频繁查询导致集群性能问题的debug分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

LSF - bjobs频繁查询导致集群性能问题的debug分析

问题描述

用户user00在使用lshosts, bhosts, bjobs等mbd命令查询时,会出现连接LSF timeout的情况,如下所示

...snippet ommitted...
28
ls_gethostinfo(): Communication time out
fail
29
ls_gethostinfo(): Communication time out
fail
...snippet ommitted...

LSF is processing your request. Please wait ...

问题分析

根据Diagnose query requests说明,LSF管理员查看对应的性能日志,发现有大量的bjobs查询来自于机器sz-host-aa-0001的用户user01。单用户查询,全局总计高达700次/分钟。

$ badmin diagnose -c query -f /tmp/debug #启动query的日志收集。
$ badmin diagnose -c query -o #2分钟后,停止日志收集。
$ #下面进行日志查看
$ wc -l /tmp/debug.querylog.<master_hostname>
1400
$ tail -1 /tmp/debug.querylog.<master_hostname>
Jul 29 11:01:39 2021 bjobs,user01,sz-host-aa-0001,110864,0x1A
$ #count by username whose position is 6.
$ awk -F ' |,' '{count[$6]++}END{for (user in count) {print count[user],user}}' /tmp/debug.querylog.<master_hostname> | sort -nrk1
500 user01
16 user02
...

找用户user01核对,他正在跑synopsys sentaurus TCAD任务,会在GUI上提交LSF任务。用户将任务停掉后,频繁的查询随后消失。可以确认是user01跑的synopsys sentaurus TCAD导致的频繁查询操作。

资料查看

根据Sentaurus™ Device User Guide 搜关键字Job Polling interval所描述,工具在提交LSF任务后,会以一定时间间隔取查询任务。该间隔默认是1次/s,可以手工设置。有三个作用范围,分别是Global level,site level与user level,优先顺序是Global level < site level < user level

问题解决

由于本问题涉及的故障域其实是整个LSF集群,只是本问题刚好由某个工具触发了该故障。因此解决需要由两个方面入手:

  • 一是本case涉及的工具侧解决;
  • 二是LSF管理员需要设置查询频率限制,避免用户的不当查询导致集群性能问题。

解决详情:

  • 工具侧解决:按照上述资料查看的方法,在Global level的配置文件中,设置成60秒一次查询。并且写一篇指导,供用户参考写user level的配置!样例略;
  • LSF侧解决:根据Limit the number of batch queries所述,按照其介绍的方法设置即可。

问题延伸

发起大量query查询的,可能是用户的脚本、或工具调用的bjobs命令,也可能是调用了LSF的库,由库发起的查询。不同的场景需要不同的措施来应对。同时,研发环境要想健壮,必须考虑有小白用户或小白工具(这里说的小白工具,指的是发起密集query操作而不考虑整体集群性能的、不负责任的工具。这类工具通常是一些小创业公司开发的工具,他们往往只注重功能,不注重性能)的存在,因此管理员也需要做响应的优化——如限流。

总结

问题要找资料,总结以避免再次踩坑。

参考资料

https://www.researchgate.net/profile/Nabil_Ashraf2/post/How-to-obtain-photocurrent-and-incident-optical-power-to-calculate-responsivity-of-a-phototransistor/attachment/5a4372374cde266d587e004a/AS%3A576121978142721%401514369591383/download/Sentaurus_TCAD+manual.pdf

这篇关于LSF - bjobs频繁查询导致集群性能问题的debug分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/857989

相关文章

大数据小内存排序问题如何巧妙解决

《大数据小内存排序问题如何巧妙解决》文章介绍了大数据小内存排序的三种方法:数据库排序、分治法和位图法,数据库排序简单但速度慢,对设备要求高;分治法高效但实现复杂;位图法可读性差,但存储空间受限... 目录三种方法:方法概要数据库排序(http://www.chinasem.cn对数据库设备要求较高)分治法(常

Vue项目中Element UI组件未注册的问题原因及解决方法

《Vue项目中ElementUI组件未注册的问题原因及解决方法》在Vue项目中使用ElementUI组件库时,开发者可能会遇到一些常见问题,例如组件未正确注册导致的警告或错误,本文将详细探讨这些问题... 目录引言一、问题背景1.1 错误信息分析1.2 问题原因二、解决方法2.1 全局引入 Element

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

数据库oracle用户密码过期查询及解决方案

《数据库oracle用户密码过期查询及解决方案》:本文主要介绍如何处理ORACLE数据库用户密码过期和修改密码期限的问题,包括创建用户、赋予权限、修改密码、解锁用户和设置密码期限,文中通过代码介绍... 目录前言一、创建用户、赋予权限、修改密码、解锁用户和设置期限二、查询用户密码期限和过期后的修改1.查询用

关于@MapperScan和@ComponentScan的使用问题

《关于@MapperScan和@ComponentScan的使用问题》文章介绍了在使用`@MapperScan`和`@ComponentScan`时可能会遇到的包扫描冲突问题,并提供了解决方法,同时,... 目录@MapperScan和@ComponentScan的使用问题报错如下原因解决办法课外拓展总结@

MybatisGenerator文件生成不出对应文件的问题

《MybatisGenerator文件生成不出对应文件的问题》本文介绍了使用MybatisGenerator生成文件时遇到的问题及解决方法,主要步骤包括检查目标表是否存在、是否能连接到数据库、配置生成... 目录MyBATisGenerator 文件生成不出对应文件先在项目结构里引入“targetProje

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

C#使用yield关键字实现提升迭代性能与效率

《C#使用yield关键字实现提升迭代性能与效率》yield关键字在C#中简化了数据迭代的方式,实现了按需生成数据,自动维护迭代状态,本文主要来聊聊如何使用yield关键字实现提升迭代性能与效率,感兴... 目录前言传统迭代和yield迭代方式对比yield延迟加载按需获取数据yield break显式示迭

使用SQL语言查询多个Excel表格的操作方法

《使用SQL语言查询多个Excel表格的操作方法》本文介绍了如何使用SQL语言查询多个Excel表格,通过将所有Excel表格放入一个.xlsx文件中,并使用pandas和pandasql库进行读取和... 目录如何用SQL语言查询多个Excel表格如何使用sql查询excel内容1. 简介2. 实现思路3