我有一个py脚本从db读取数据并加载到CSV文件中,如下所示
with open(filePath, 'a') as myfile:
myfile.write(myline)
文件准备好后,我的py脚本将从subprocess.call(...)启动SQLLDR并加载所有文件。
我必须以非常低的优先级执行上述所有步骤。我已设置os.nice(19)
并将其传递给我的所有subprocess.call(...)
函数。对于上面的第2步看起来很好。
如何在服务器上创建和编写文件时设置“niceness”?是否可以在写入/读取文件时传递操作系统(设置os.nice(19)
之后),“好”将确保它以低优先级运行?
答案 0 :(得分:2)
默认情况下,在linux> 2.6上,io优先级是根据nice值计算的,这意味着低优先级进程将自动具有较低的IO影响,但您可以使用{{3指定进程的io优先级如果要将其设置为其他值,请执行命令。
答案 1 :(得分:1)
通常,nice
值会影响CPU上进程的调度(即您获得的CPU周期的份额和优先级),因此它几乎不会对将数据写入文件。为什么不以适当低的nice
优先级从一开始就运行该过程?
答案 2 :(得分:0)
正如在manual for setpriority(2)中所描述的那样:
fork(2)创建的子级继承其父级的nice值。很好 在execve(2)中保留了值。
所以任何Subprocesses都将继承当前的nice设置。虽然正如亚历山大所指出的那样,对于花费大部分时间等待磁盘写入完成的进程,你不会发现太大的不同。