0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

タイムスライス

0
Last updated at Posted at 2024-05-20

タイムスライスを見ていみる

スケジューラが実行可能プロセスにタイムスライス単位でCPUを使わせることを実験によって確かめます
...
CPU時間を使う付加処理用のプロセスを一つ、ないし複数同時に動かし、次のような統計情報を採取します。
...

  • ある時点で、論理CPU上ではどのプロセスが動作しているのか。
  • それぞれの進捗はどれだけか。
    ...
    並列度1、2、3それぞれで実験してみます。
for i in 1 2 3 ; do ./sherd.py $i ; done

並列度1

image.png

並列度2

image.png

並列度3

image.png

気づき

本当にジグザグに並列している。
横軸のメモリを見ても並列度が多くなるたびに大きくなるのでそれだけ時間がかかっているのがわかる。
初めて見た。

タイムスライスの仕組み

並列度が2の場合に比べて、3の場合の方が各プロセスのタイムスライスが短いことがわかります。実はLinuxのスケジューラはsysctlのkernel.sched_latency_nsパラメータの値(ナノ秒単位)で示したレイテンシターゲットと呼ばれる期間に一度、CPU時間を得られるようになっています。
...
各プロセスのタイムスライスはkernel.sched_latency_ns / <論理CPU上で実行中または実行可能状態のプロセス>[ナノ秒]
...
kernel.sched_latency_nsパラメータはカーネルv5.13には存在しません。v5.13以降をお使いの場合、rootのみがアクセスできる/sys/kernel/debug/sched/laten_nsが同じ意味を持つファイルです。

root@***********:***************# cat /sys/kernel/debug/sched/latency_ns
6000000

root@***********:***************# uname -r
5.15.0-107-generic

タイムスライス変動の要素

  • システムが搭載する論理CPU数
  • 所定の値を超える論理CPU上で実行中/実行待ち中のプロセス数
  • プロセスの優先度を表すnice値

nice値によるタイムスライスを見る

nice値はプロセスの実行優先度を−20から19までの間で設定する値(デフォルトは「0」)です。−20が一番優先度が高く、19が低くなります。

root@***********:***************# nice -n 5 taskset -c 0 ./inf-loop.py &
[1] 3441
root@***********:***************# sar -P 0 1 1
Linux 5.15.0-107-generic (***********) 	2024年05月20日 	_x86_64_	(1 CPU)

13時33分23秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
13時33分24秒       0      0.00     93.02      6.98      0.00      0.00      0.00
平均値:        0      0.00     93.02      6.98      0.00      0.00      0.00
%nice
                     Percentage of CPU utilization that occurred  while  exe‐
                     cuting at the user level with nice priority.

出典

man sar

和訳

優先順位の高いユーザー・レベルでの実行中に、CPUの使用率が低下した。

出典

deepL

image.png

気づき

occurredが低下したと和訳するのか。わからん。
和訳を見るとこの時間このプロセスはcpuが優先度をどれくらい低下させたかというのを示し、プロセスが多くなるとniceの割合が分散するのだろう。

出典

感想

タイムスライスのことが少し理解できた。
タイムスライスの時間だけCPUが割り当てられることによって複数のプロセスを同時に処理できる

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?