概述
openlava是基于LSF早期的开源版本发展而来,openlava-4.0 在2016年后不再更新。
最早接触使用openlava是在2016年,当时面对这样一个集群资源调度软件,手头的参考资料有限。随着对openlava逐渐熟悉,它强大的任务分配和管理给我留下了深刻印象。作为一款开源软件,很自然地想要探究一下它的内部工作原理。中间经历了很多的艰辛曲折,走过不少弯路。
但是收到了用户使用反馈,希望配置文件能和 lsf,openlava保持一致,不要有太大变化,我接受了这个建议,所以新版本命名为 openlava-6.0。
openlava-6.0 在兼容 openlava-4.0 版本所有功能的同时,代码更少,更稳定。其优化过后的函数调用,更方便后期开发。
openlava-4.0 代码行数统计:195197 行
openlava-6.0 代码行数统计:177386 行
openlava-6.0_20230426
主要更新和优化修改如下:
-
简化了配置文件,优化了软件架构。优化了 lsf.cluster,lsf.shared,lsb.hosts 配置文件。
-
重写了底层的数据访问函数,全部更改为双向循环链表。这部分改动比较大,涉及两三百个函数修改。为什么要这样做呢?因为源码的各个子功能模块数据定义近似或重复,函数实现重复。而且代码可维护性差,缺乏统一性。
-
优化了部分底层高频函数,简化了子功能模块的架构,优化了函数之间的相互调用,效率更高。
-
优化了eauth验证模块,更改为直接函数调用,效率更高。
-
优化了 bjob -l 命令,去除了输出折行。
-
添加了 LSB_JOB_REPORT_MAIL 参数,默认不启用。曾经遇到的坑,任务在运行完后会发送邮件通知,sbatchd进程占用率过高压垮系统,导致集群无法响应。
-
4.0版本可以在 V N C、E T X等远程工具中通过"xhost +",“bsub -Is” 启动图形化工具,6.0版本添加了 bsub -XF 图形化交互式功能,丰富了需要使用图形化交互式的场景。
-
修复了bsub -Is 终端交互式,终端窗口大小 80x24 限制问题,更改为当前终端窗口大小。
-
修复了作业内存和swap统计bug,该bug在 openlava 和 LSF 所有版本中都存在。
-
添加了GPU资源调度, 自动维护 CUDA_VISIBLE_DEVICES列表,可在 lsf.conf 配置文件中 LSF_GPU_SCHED=Y 启用。
-
统一了网络模型,优化网络功能模块。mbatchd,sbatchd,lim更改为poll模型。
-
优化了 fairshare, preempt 功能模块。由原来的加载文件调用方式更改为直接函数调用,效率更高。
-
集群用户配置文件 lsb.users 添加了 CPU_TIME_FACTOR 参数,限制用户CPU使用率。是对 fairshare, preempt 功能的补充,更进一步区别对待用户。当集群中的不同用户同时跑任务时,优先级低的用户将被限制CPU使用,也可以约束用户的单进程多线程任务。
-
bjobs -l 任务信息展示,添加了任务平均内存使用和最大内存使用统计信息,添加了任务的job pid信息,和任务线程数,添加了job进程最大和平均 CPU 使用率信息。
-
bjobs -o 信息展示,添加了 RUN_CPU,RUN_THREAD,RUN_MEM,RUN_SWAP,OPEN_FILES 信息,方便及时获取job当前的资源使用情况。
-
添加了 LSF_MASTER_LIST 参数,最大支持8个,master 在指定的列表内抢占,列表内主机的优先级依次递减,避免了 master 在整个集群内漂移。
-
添加了用户组管理员,lsb.users 文件中 UserGroup 添加了 GROUP_ADMIN 功能。默认情况下,用户组管理员具有与作业所有者相同的权限,并且可以控制属于他们管理的组的成员用户的任何作业。如果作业属于其用户组的成员,用户组管理员还可以恢复 LSF 管理员或队列管理员停止的作业。GROUP_ADMIN 属性如下:
a. 继承用户组管理员权限.
b. 用户组和用户组管理员定义不能递归或创建循环.
c. 不支持保留的关键字: others, default, allremote.
-
添加了内存获取方式的参数:LIM_DEFINE_FREE_MEM
LIM_DEFINE_FREE_MEM=“available” # free,cache or available, default cache.
有3种方式可选:
1.free
2.available
3.cache (默认)
-
修复了bjobs –o 输出的字宽不生效的问题。
-
添加了信息展示列格式化参数,参数优先级: -o > env > lsf.conf
LSF_LSLOAD_FORMAT
LSF_LSHOSTS_FORMAT
LSB_BJOBS_FORMAT
LSB_BHOSTS_FORMAT
LSB_BQUEUES_FORMAT
LSB_BUSERS_FORMAT
-
lsload, lshosts, bhosts, bqueues,busers 添加了命令行参数: -o
负载索引:
添加了lsload –o 命令行参数,可自定义打印信息列,如下图:
主机静态信息:
添加了lshosts –o 命令行参数,可自定义打印信息列,如下图:
计算主机负载信息:
添加了bhosts –o 命令行参数,可自定义打印信息列,如下图:
作业查询:
bjobs -o 添加了新的信息展示列: nalloc_slot, nreq_slot, alloc_slot,如下图:
用户资源查询:
busers -o 添加了新的信息展示列:
1. run_mem 用户或组在集群内所有正在运行和挂起作业使用的内存总和
2. run_swap 用户或组在集群内所有正在运行和挂起作业使用的swap 总和
3. run_cpu_usage 用户或组在集群内所有正在运行和挂起作业使用的cpu 平均值
4. run_open_files 用户或组在集群内所有正在运行和挂起作业打开的文件个数总和
5. run_nthreads 用户或组在集群内所有正在运行和挂起作业使用的线程数总和
6. run_utime 用户或组在集群内所有正在运行和挂起作业的时间总和
7. run_cputime 用户或组在集群内所有正在运行和挂起作业CPU 使用的时间总和
8. run_cpus 用户或组在集群内所有正在运行和挂起作业使用的CPU 总和
队列信息:
bqueues 添加了如下统计信息:
1. numhosts 队列中的主机数量
2. availhosts 队列中可用的主机数量
3. numusers 队列中的用户数量
4. max_ncpus 队列中最大cpu(或thread)数量
5. max_cores 队列中最大的物理核
6. max_pprocs 队列中最大的物理CPU
7. max_threads 队列中最大的CPU线程数
8. max_mem 队列中最大可使用的内存
9. max_swap 队列中最大可使用的swap
10. run_mem 队列中正在使用的内存
11. run_swap 队列中正在使用的swap
12. run_cpu 队列中CPU资源的使用率
13. free_mem 队列中剩余未使用的内存
14. free_swap 队列中剩余未使用的swap
15. usage_mem 队列中内存使用的百分比
16. usage_swap 队列中swap使用的百分比
17. user_mem 用户或组在当前队列所有正在运行和挂起作业使用的内存总和
18. user_swap 用户或组在当前队列所有正在运行和挂起作业使用的swap 总和
19. user_cpu_usage 用户或组在当前队列所有正在运行和挂起作业使用的cpu 平均值
20. user_open_files 用户或组在当前队列所有正在运行和挂起作业打开的文件个数总和
21. user_nthreads 用户或组在当前队列所有正在运行和挂起作业使用的线程数总和
22. user_utime 用户或组在当前队列所有正在运行和挂起作业的时间总和
23. user_cputime 用户或组在当前队列所有正在运行和挂起作业CPU 使用的时间总和
24. user_cpus 用户或组在当前队列所有正在运行和挂起作业使用的CPU 总和
注意:
当使用bqueues 命令,并且没有与 –u 参数配合使用时,则下列参数表述变化如下:
17. user_mem 用户或组在当前队列所有正在运行和挂起作业使用的内存总和
18. user_swap 用户或组在当前队列所有正在运行和挂起作业使用的swap 总和
19. user_cpu_usage 用户或组在当前队列所有正在运行和挂起作业使用的cpu 平均值
20. user_open_files 用户或组在当前队列所有正在运行和挂起作业打开的文件个数总和
21. user_nthreads 用户或组在当前队列所有正在运行和挂起作业使用的线程数总和
22. user_utime 用户或组在当前队列所有正在运行和挂起作业的时间总和
23. user_cputime 用户或组在当前队列所有正在运行和挂起作业CPU 使用的时间总和
24. user_cpus 用户或组在当前队列所有正在运行和挂起作业使用的CPU 总和
-
bqueues添加了-r参数,递归输出用户组和主机组信息,方便查看成员。
-
4.0 的elim功能不完整,无法使用。6.0修复了elim功能,最大支持64个扩展资源。
-
添加了作业内存检查类型 LSB_CHECK_JOB_MEM
LSB_CHECK_JOB_MEM=“RES” #check job mem type, RES or VIRT, default VIRT.
默认为 VIRT 类型 -
添加了作业进程信息展示,并行作业只展示第一个节点的任务进程信息。
进程信息展示如下:
-
根据关键字,查询作业提交的命令行和任务的进程信息,打印出符合条件的正在运行或挂起的作业信息。
作业查询如下: bjobs –Q sleep
说明:
- openlava-6.0 源码并没有上传github,仅提供编译测试过的二进制文件。
- 免费使用,无功能限制。
- 但是,软件有效期截止至:2026年4月26日
- 该版本仅供技术交流和测试使用,不提供源代码。
- 另外在 openlava 源码中也发现了一个有趣的注释:/* free the shit… */
FAQ
集群的CPU,MEM 资源有限,我的集群资源到底被哪些用户?哪些组研发团队占用了?各个团队占用的资源比例
是多少?密集仿真计算类型的作业占用资源具体详情是什么情况?低频图形化类型的作业占用资源具体详情是什
么情况?Openlava-6.0 回答了这些问题。
以下的几个示例,仅供参考。(需要注意的是,LSF 仅支持个别参数,可通过附加组件Explorer,RTM 了解详情。)
1. 如何查看队列详细负载信息?
bqueues -o “queue_name:-12 description:-12 priority:-10 status:-8 numhosts:-8 availhosts:-10 numusers:-8
max_ncpus:-10 max_cores:-10 max_pprocs:-10 max_threads:-12 max_mem:-8 max_swap:-8 run_mem:-8
run_swap:-8 run_cpu:-8 free_mem:-8 free_swap:-10 usage_mem:-10 usage_swap:-10 delimiter=‘|’”
2. 如何查看用户或组在集群的资源使用详情?
(1) busers itadmin -o “user:-6 jl_p:-6 max:-6 njobs:-6 pend:-6 run:-5 ssusp:-6 ususp:-6 rsv:-4 cpuf:-5 run_mem:-8 run_swap:-10 run_cpu_usage:-14 run_open_files:-16 run_nthreads:-14 run_time:-10
run_cputime:-12 run_cpus:-10 delimiter=‘|’”
(2) busers all -o “user:-6 j l_p:-6 max:-6 njobs:-6 pend:-6 run:-5 ssusp:-6 ususp:-6 rsv:-4 cpuf:-5 run_mem:-8 run_swap:-10 run_cpu_usage:-14 run_open_files:-16 run_nthreads:-14 run_time:-10 run_cputime:-12 run_cpus:-10 delimiter=‘|’”
3. 如何查看用户 或组 在所属队列的资源使用详情?
用户:
bqueues -u itadmin -o “queue_name:-12 description:-12 priority:-10 status:-8 user_mem:-10 user_swap:-10 user_cpu_usage:-16 user_open_files:-16 user_nthreads:-14 user_runtime:-14 user_cputime:-14 user_cpus:-10 delimiter=‘|’”
用户组:
bqueues -u verify/ -o “queue_name:-12 description:-12 priority:-10 status:-8 user_mem:-10 user_swap:-10 user_cpu_usage:-16 user_open_files:-16 user_nthreads:-14 user_runtime:-14 user_cputime:-14 user_cpus:-10
delimiter=‘|’”
4. 如何查看集群内所有运行 simv 工具的作业?以及作业详情?
(1) bjobs -Q simv
(2) bjobs -Q simv -o “jobid:-6 user:-8 stat:-6 queue:-10 from_host:-9 exec_host:-9 job_name:-10 submit_time:-12 mem:-10 swap:-10 cpu_used:-10 idle_factor:-12 slots:-5 run_cpu:-8 run_thread:-12 run_openfiles:-15 delimiter=‘|’”
openlava-2.0_20220606
主要更新如下:
- 添加了 bsub -XF 图形化交互式功能
- 修复了 bsub -Is 终端交互式bug
- 修复了交互式终端窗口大小 80x24 限制,更改为当前窗口大小
- 修复了 bjobs -l 内存统计不准确的bug
- 修复了 lshosts -l 信息展示bug
- bjobs 信息展示,去除了折行
- 免费,无限期使用,无其他限制
CDE 桌面环境
CDE现在已经几乎停止开发,但是它是 SUN 服务上经典的桌面环境,干净整洁。
RHEL7发行版本中并没有包含CDE,所以我编译并测试了rhel7 版本。
经历过 SUN 时期,怀旧的用户可以在rhel7系统下感受一下CDE桌面。
以上资源下载链接: https://pan.baidu.com/s/1LoTwhzHtcGQA0t6A3Ft0aw 提取码: hpdh
openlava-2.0_rhel7_20220606.tar.gz
openlava-6.0.0_rhel7.9_20230426.tar.gz
readme.txt
cde-2.3.2-3.el7.x86_64.rpm
联系邮箱:my163address@163.com
最后
以上就是孤独酸奶为你收集整理的openlava-6.0,cde的全部内容,希望文章能够帮你解决openlava-6.0,cde所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复