标签: scheduler

任务集无法在 isolcpus 中的一系列内核上工作

作为序言,我在 AMD64 芯片组上使用带有内核 3.2 的 Debian Wheezy。我的机器有两个至强 E5-2690 内核。我设置了启动参数,以便一个 CPU 上的所有内核专用于单个进程。为此,我在 grub 中设置了 isolcpus=8,9,10,11,12,13,14,15。

到现在为止还挺好。现在假设我想对给定命令使用隔离的 CPU,简单地说,我将使用一个简单的无限循环:

$ taskset -c 8-15 bash -c 'while true ; 做回声你好>/dev/null; 完毕' &

到目前为止一切顺利,top 表明核心 8 的利用率接近 100%。现在假设我再次启动该命令:

$ taskset -c 8-15 bash -c 'while true ; 做回声你好>/dev/null; 完毕' &

现在 top 显示内核 9-15 保持空闲并且两个进程共享内核 8。如果相反,我这样做:

$ taskset -c 8 bash -c 'while true ; 做回声你好>/dev/null; 完毕' &

$ taskset -c 9 bash -c 'while true ; 做回声你好>/dev/null; 完毕' &

核心 8 和 9 各获得 …

kernel multi-threading cpu-usage scheduler affinity

15
推荐指数
1
解决办法
1万
查看次数

启动时的任务调度程序计划任务不起作用

我已经安排了一个在系统启动时运行的任务。但它不起作用。当我手动运行任务时,它正在工作。下面是设置截图。

在此处输入图片说明

在此处输入图片说明

我在这里做错了什么?此任务执行启动进程的 bat 文件。顺便说一句,虽然上次执行的结果显示为成功。

startup scheduled-task task-scheduler scheduler windows-10

13
推荐指数
3
解决办法
4万
查看次数

Cronjob 每两周运行一次,从本周六开始

今天是 2014 年 10 月 3 日星期五凌晨 3:58

我想安排一个像这样的 cronjob 在以下日期运行它:

  1. 2014 年 10 月 4 日星期六 8:00
  2. 2014 年 10 月 18 日星期六 8:00
  3. 2014 年 11 月 1 日星期六上午 8:00 ... ...

所以每两周一次,在星期六,在 8 点。

linux cron scheduler

12
推荐指数
2
解决办法
5万
查看次数

Renice:如何更改所有线程?

当我renice在 Ubuntu 10.04 中执行多线程进程,然后在top. 所有其他线程保留其旧的 nice 值。renice 进程中的所有线程而不仅仅是主线程的最简单方法是什么?

linux multi-threading scheduler nice

10
推荐指数
1
解决办法
4147
查看次数

关于 /proc/pid/sched 的信息

不确定这是这个问题的正确位置,但这里是:

我正在尝试对高度线程化的服务器进程的 /proc/pid/sched 和 /proc/pid/task/tid/sched 文件有所了解,但是我无法找到有关如何解释的很好的解释文件(这里只有几位:http : //knol.google.com/k/linux-performance-tuning-and-measurement#)。我假设 procfs 中的这个条目与使用 CFS 调度程序运行的内核的较新版本有关?

CentOS 发行版运行在带有抢占式 rt 补丁的 2.6.24.7-149.el5rt 内核版本上。

有什么想法吗?

linux scheduler

8
推荐指数
1
解决办法
6116
查看次数

Linux 没有 I/O 调度器意味着什么

我有一些运行基于 Ubuntu 云的映像 14.04-1 LTS 版本的虚拟机。我想在 VM 上查看不同 IO 调度程序的 IO 性能,因此我/sys/block/<drive>/queue/scheduler在来宾操作系统上更改了 IO 调度程序。通常,应该有cfqdeadline、 或noop可供选择。但我看到的是none. 是不是说Canonical在云端镜像中去掉了I/O调度器,或者none这里的调度器是重命名的noop调度器?如果系统中没有 I/O 调度程序会发生什么?所有的io请求都是按FIFO顺序直接发送给主机的?

感谢您的启发!

virtualization cloud io scheduler ubuntu-14.04

8
推荐指数
2
解决办法
1万
查看次数

启用 RAID 控制器的回写缓存会损害整体性能吗?

我有一个 8 驱动器 RAID 10 设置连接到 Adaptec 5805Z,运行 Centos 5.5 和截止日期调度程序。

基本dd读取测试显示 400mb/sec,基本dd写入测试显示大致相同。

当我同时运行两者时,我看到读取速度下降到约 5mb/sec,而写入速度大致保持在 400mb/sec。iostat -x如您所料,输出显示在磁盘受到写入轰炸时执行的读取事务很少。

如果我关闭控制器的回写缓存,我看不到 50:50 的分割,但我确实看到了明显的改进,大约 100mb/s 读取和 300mb/s 写入。我还发现如果我降低驱动器队列上的 nr_requests 设置(大约 8 个似乎是最佳的),我最终可以获得 150mb/sec 的读取和 150mb/sec 的写入;IE。总吞吐量降低,但肯定更适合我的工作量。

这是一个真实的现象吗?还是我的综合测试过于简单?

发生这种情况的原因似乎很清楚,当调度程序从读取切换到写入时,它可以运行大量的写入请求,因为它们都只是落在控制器缓存中,但必须在某个时候执行。我猜当调度程序开始尝试再次执行读取时,实际的磁盘写入正在发生,导致执行的读取请求很少。

这似乎是一个合理的解释,但在具有非平凡写入负载的系统上使用回写缓存似乎也是一个巨大的缺点。我整个下午都在寻找有关此问题的讨论,但一无所获。我错过了什么?

linux cache hardware-raid scheduler

7
推荐指数
1
解决办法
1712
查看次数

CoreOS 是否具有集群感知作业调度程序?

我一直在检查 CoreOS,我印象深刻。在我发现 CoreOS 之前,我将Mesos/Marathon/Chronos堆栈视为“集群内核”。

鉴于以下比较:

init.d == Mesos+Marathon == CoreOS+Fleet
cron   == Mesos+Chronos  == CoreOS+?????
Run Code Online (Sandbox Code Playgroud)

我很好奇 CoreOS 是否有分布式作业调度程序?还是大多数人只是使用 Fleet 来运行其他东西?

cluster scheduler coreos apache-mesos

7
推荐指数
1
解决办法
2345
查看次数

如何测试 ionice 的效果(针对使用 cfq 调度程序的设备)?

我正在尝试构建一个实验来测量 ionice 的效果。我想做的是(根据serverfault 的另一个答案)导致足够频繁的 I/O,以至于足够“好的”进程缺乏任何 I/O。

基于serverfault上的另一个答案,我认为我需要每 250 毫秒对一个常见的 cfq 调度设备进行至少一个实际 I/O 操作。我的想法是编写一个简单的程序,它确实有一个循环

  • 写入公共设备上的(可配置)文件,
  • 执行一个fsync()(强制执行确定的 I/O 操作),
  • 用于usleep()延迟可配置的时间量
  • 定期用于lseek()截断文件(这样我就不会填满文件系统)

然后我使用ionice -c3空闲调度类)针对公共设备上的一个文件启动程序的一个实例。我同时使用默认(尽力而为)调度类运行各种实例,在公共设备上指定不同的文件(改变延迟值)。

我的假设是,对于“尽力而为”过程中 250 毫秒或更多的延迟值,我会看到“空闲”过程取得的进展;对于小于 250 毫秒的值,我认为“空闲”过程几乎没有进展。

我的观察是这两个过程的性能没有差异。他们都取得了类似的进展。只是为了确定(以防挂钟指示“尽力而为”进程执行 I/O 的速度比每 250 毫秒快得多),我启动了“尽力而为”进程的多个同时实例,指定 no(零)延迟。尽管如此,我仍然没有看到两个调度类中的进程之间的性能差异。

可以肯定的是,我重新检查了调度程序类:

$ cat /sys/block/xvda/queue/scheduler
noop anticipatory deadline [cfq] 
Run Code Online (Sandbox Code Playgroud)

关于 cfq 调度程序的工作方式,我缺少什么?

如果重要的话,这是在 2.6.18 内核上。

linux storage ionice performance-tuning scheduler

5
推荐指数
1
解决办法
1570
查看次数

不错的水平在 linux 上不起作用

我有一些高度浮点密集型进程做很少的 I/O。一个叫做“xspec”,它计算一个数值模型并每秒将一个浮点结果返回给主进程(通过标准输出)。它在 19 级时很好。我有另一个简单的过程“cpufloattest”,它只是在一个紧密的循环中进行数值计算。它不是很好。

我有一个禁用超线程的 4 核 i7 系统。我已经开始了每种类型的过程中的 4 个。为什么 Linux 调度程序 (Linux 3.4.2) 没有正确限制 niced 进程占用的 CPU 时间?

Cpu(s): 56.2%us, 1.0%sy, 41.8%ni, 0.0%id, 0.0%wa, 0.9%hi, 0.1%si, 0.0%st
内存:总共 12297620k,已使用 12147472k,150148k 空闲,831564k 缓冲区
交换:总共 2104508k,已使用 71172k,空闲 2033336k,缓存 4753956k

  PID 用户 PR NI VIRT RES SHR S %CPU %MEM TIME+ 命令                                         
32399 jss 20 0 44728 32m 772 R 62.7 0.3 4:17.93 cpufloattest                                    
32400 jss 20 0 44728 32m 744 R 53.1 0.3 4:14.17 cpufloattest                                    
32402 jss 20 0 44728 …

linux scheduler nice

5
推荐指数
2
解决办法
4456
查看次数