linux – 在Perl中具有修改的调度优先级的Runnig OS功能

linux – 在Perl中具有修改的调度优先级的Runnig OS功能,第1张

概述是否可以让Perl在没有外部命令的情况下运行具有修改调度和/或IO调度优先级的 Linux OS功能?我试图模拟以下内容: nice -n19 ionice -c2 -n7 cp largefile largefile2 我可以用File :: Copy,setpriority函数和CPAN模块Linux :: IO_Prio以某种方式做到这一点吗?我只需要降低0美元的调度优先级吗? 编辑: 如 是否可以让Perl在没有外部命令的情况下运行具有修改的调度和/或IO调度优先级的 Linux OS功能?我试图模拟以下内容:

nice -n19 ionice -c2 -n7 cp largefile largefile2

我可以用file :: copy,setpriority函数和CPAN模块linux :: IO_Prio以某种方式做到这一点吗?我只需要降低0美元的调度优先级吗?

编辑:
如果我执行以下 *** 作,将降低copy()的优先级和IO吗?有一个更好的方法吗?

use linux::IO_Prio qw(:all);use file::copy;setpriority(0,-20);ionice(IOPRIO_WHO_PROCESS,$$,IOPRIO_CLASS_IDLE,7);copy("file1","file2") or dIE "copy Failed: $!";
解决方法 精炼 Oesor’s answer:

use BSD::Resource qw(PRIO_PROCESS setpriority);use linux::IO_Prio qw(IOPRIO_WHO_PROCESS IOPRIO_PRIO_VALUE IOPRIO_CLASS_BE ioprio_set);BEGIN { require autodIE::hints; autodIE::hints->set_hints_for(\&ioprio_set,{ fail => sub { $_[0] == -1 } } ) };use autodIE qw(:all setpriority ioprio_set);setpriority(    PRIO_PROCESS,# 1    $$,19);ioprio_set(    IOPRIO_WHO_PROCESS,IOPRIO_PRIO_VALUE(IOPRIO_CLASS_BE,7)       # 0x4007);

顺便说一句,你可以找到库调用和类似的东西与strace.

总结

以上是内存溢出为你收集整理的linux – 在Perl中具有修改的调度优先级的Runnig OS功能全部内容,希望文章能够帮你解决linux – 在Perl中具有修改的调度优先级的Runnig OS功能所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1017452.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存