小编jhf*_*ntz的帖子

CFQ io调度器的空闲调度类的“定义宽限期”是多长时间?

ionice男子说:页

以空闲 io 优先级运行的程序只会在没有其他程序在定义的宽限期内请求磁盘 io 时获得磁盘时间。

这个“宽限期”在哪里定义?它是否可见/可调(可能通过 /sys)?

linux storage ionice performance-tuning

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

如何测试 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
查看次数

您如何从谷歌计算引擎实例安全地检索 ssh 主机密钥?

我想~/.ssh/known_hosts用新创建的 GCE 实例的主机密钥信息更新我的。但我不确定如何安全地检索该信息。

我想像

gcloud compute ssh <GCEUSER>@<GCEHOST> --command='ssh-keyscan 127.0.0.1'
Run Code Online (Sandbox Code Playgroud)

可能工作。但是(根据gcloud 计算 ssh 文档)似乎只是一个包装器ssh(并且,根据StrictHostKeyChecking=no在 $HOME/.config/gcloud/logs/ 下的关联日志文件中列出的参数中看到的,显然没有做任何事情某种检查主机的身份)。

似乎确实有一种方法可以使用 Web 控制台来启动基于浏览器的 ssh 会话(并以交互方式/手动方式运行ssh-keyscan),但是 1)我看不到内部结构以了解它是否真的像它应该的那样安全和 2) 不是用于脚本集成的有效 API。

是否有gcloud用于安全检索 GCE 实例的主机密钥的 API/机制?

security ssh ssh-keys google-compute-engine

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