问题标签 [sched-deadline]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何使用 Python 脚本从截止日期获取 JobID
有什么方法可以从截止日期获取作业 ID。我正在编写从 Maya 提交作业到 Deadline 的过程,而不使用 GUI。我需要 JobId 以便在存储库中创建一个文件夹,以便在提交时保存 Maya 场景文件。谢谢
c - 每个从 sched_getscheduler(pid) 返回的 int 值对应的调度策略是什么?[C]
当我使用以下代码将调度策略设置为 Deadline 时:
上述代码的结果如下:
pid=(XXXXXX)
调度程序策略为 6。
有人可以解释 sched_getscheduler(pid) 的哪个返回 int 值对应于哪个调度程序策略?
例如:从上述代码中,我相信 6 对应于 SCHED_DEADLINE 策略。
c - SCHED_DEADLINE 运行时溢出信号 (SIGXCPU)
我正在使用SCHED_DEADLINE
. 如果线程SIGXCPU
超过指定的sched_runtime
. 据我对手册页的理解,这可以通过设置SCHED_FLAG_DL_OVERRUN
-flag 来实现。但是,在下面的示例程序中,没有接收到信号(在第三次迭代中)。根据 kernelshark-plot,线程在运行时被挂起,但没有创建信号。
我对SCHED_FLAG_DL_OVERRUN
-flag 的理解是否正确?如果不是,是否有另一种方法来检测线程是否超过指定的运行时间,而不测量每次迭代后的时间?
我的内核版本是5.4.3-rt1-1-rt #1 SMP PREEMPT_RT
.
apache-kafka - kafka 磁盘在大量读取期间拖拽写入并在 kafka 生产者中导致“队列已满”错误
我们有 6 个 kafka 代理,具有 256GB RAM、24c/48T,它们托管 20 个在 raid10 中配置的 1.8TB SAS 10K rpm 磁盘。
有两个 Spark Streaming 应用程序
- 每 10 分钟开始他们的批次
- 一旦开始,他们的第一份工作就是阅读同一个 kafka 主题。
- 该主题有 200 个分区,均匀分布在 6 个代理上(每个代理上 33 个分区)。
- 流媒体应用程序使用 kafka 客户端 0.8.2.1 从 kafka 消费
有 21 个注入器实例以 6K 事件/秒的速率连续写入该主题。他们使用 librdkafka poroducer 为 kafka 制作事件。
当流媒体应用程序醒来时,他们的第一项工作是阅读主题。一旦他们这样做,kafka 磁盘中的 %util 会在 30 秒到 60 秒内达到 90-100%,同时所有注入器实例都会从他们的 kafka 生产者那里收到“队列已满”错误。这是生产者配置:
- queue.buffering.max.kbytes:2097151
- 逗留时间:0.5
从这张图中看不到,但在高 util% 期间,有一段时间写入为 0,我们假设在这些时间段内,注入器的生产者的队列已满,因此抛出“队列已满”错误。
值得一提的是,我们在kafka机器中使用了deadline IO调度器,它优先考虑读取操作。
关于如何释放写入压力,我们有几个想法:
- 减少不必要的 iops - 将 kafka 磁盘配置从 raid10 更改为 non-raid ("jbod")
- 传播读取 - 使 spark 应用程序在不同时间从 kafka 读取,而不是同时醒来
- 更改写入和读取的优先级 - 将 IO 调度程序更改为 CFQ
我写这个问题是为了验证我们是否走在正确的轨道上,并且由于 raid10、deadline IO 调度程序以及同时读取过多,操作系统确实在读取期间写入。
你怎么看?
linux - Linux SCHED_DEADLINE
是否可以将 SCHED_DEADLINE 周期设置为低于 0.1 毫秒?
我用
我得到一个错误:
错误的论点。
同时命令
工作得很好。
linux - sched_yield 似乎挂在内核 3.14.79 上
过去的 问题表明它SCHED_DEADLINE
从内核 3.14.10 开始可用。我正在尝试在运行内核 3.14.79 的 aarch64 SBC 上运行以下测试程序:
该程序挂起sched_yield
(strace
确认该函数是最后一个调用的函数)。我唯一可用于此特定板的其他内核是 3.16,它也挂起。相同的代码在其他平台上运行得很好(一对带有内核 4.4 和 5.4 的 x86-64,另一个带有内核 4.9 的 aarch64 SBC)。因此,内核 3.14的sched_yield
调用(或者可能在设置sched_yield
时调用)似乎存在一些问题。SCHED_DEADLINE
除了构建更新的内核之外,有什么我可以尝试弄清楚的吗?