CPUオーバークロック用のSystemdの並列化を無効にする

CPUオーバークロック用のSystemdの並列化を無効にする

プロセスの並列化を無効にして、システム起動時にシステムクラッシュなしでCPUオーバークロックを有効にするようにsystemd初期化プロセスを変更する方法を見つけたいと思います。

私のシステムは間違いなくゲームシステムであり、BIOSには基本的なオーバークロック制御機能が組み込まれています。そして、一般的な使用とゲームの最大のパフォーマンスを得るために、Linuxシステム(現在のDebian)を調整するすべての方法を調べました。

現在これが私が見つけた主なボトルネックであり、パフォーマンスを向上させるための多くの変更は非常に簡単で実装が簡単です。 systemdの機能を変更することは明らかに複雑です。

とにかく、システムデバイス設定ファイルを手動で編集せずにこれを達成する簡単な方法はありません。これは、この特定のユーティリティに組み込まれている簡単なオプションやスイッチに比べて、やや困難です。

この問題に対する他の解決策は考えられませんが、ブートプロセスの並列化によってBIOSがCPUオーバークロックをオンにしたときにシステムがクラッシュする条件が発生したようです。

私はopenrcやrunitなどの他のディストリビューションの代替initシステムを試してみましたが、それは解決策かもしれませんが、理想的には多くのアプリケーションが依存するシステムソリューションがあります。

Debian マニュアルで.. https://www.debian.org/doc/manuals/debian-reference/ch03.en.html

3.2. Systemd init

This section describes how system is started by the systemd(1) program with PID=1 (i.e., init process).

The systemd init process spawns processes in parallel based on the unit configuration files (see systemd.unit(5)) which are written in declarative style instead of SysV-like procedural style.

The spawned processes are placed in individual Linux control groups named after the unit which they belong to in the private systemd hierarchy (see cgroups and Section 4.7.4, “Linux security features”).

The unit configuration files are loaded from a set of paths (see systemd-system.conf(5)) as follows:

    "/lib/systemd/system": OS default configuration files

    "/etc/systemd/system": system administrator configuration files which override the OS default configuration files

    "/run/systemd/system": run-time generated configuration files which override the installed configuration files

Their inter-dependencies are specified by the directives "Wants=", "Requires=", "Before=", "After=", … (see "MAPPING OF UNIT PROPERTIES TO THEIR INVERSES" in systemd.unit(5)). The resource controls are also defined (see systemd.resource-control(5)).

The suffix of the unit configuration file encodes their types as:

    *.service describes the process controlled and supervised by systemd. See systemd.service(5).

    *.device describes the device exposed in the sysfs(5) as udev(7) device tree. See systemd.device(5).

    *.mount describes the file system mount point controlled and supervised by systemd. See systemd.mount(5).

    *.automount describes the file system auto mount point controlled and supervised by systemd. See systemd.automount(5).

    *.swap describes the swap device or file controlled and supervised by systemd. See systemd.swap(5).

    *.path describes the path monitored by systemd for path-based activation. See systemd.path(5).

    *.socket describes the socket controlled and supervised by systemd for socket-based activation. See systemd.socket(5).

    *.timer describes the timer controlled and supervised by systemd for timer-based activation. See systemd.timer(5).

    *.slice manages resources with the cgroups(7). See systemd.slice(5).

    *.scope is created programmatically using the bus interfaces of systemd to manages a set of system processes. See systemd.scope(5).

    *.target groups other unit configuration files to create the synchronization point during start-up. See systemd.target(5).

Upon system start up (i.e., init), the systemd process tries to start the "/lib/systemd/system/default.target (normally symlinked to "graphical.target"). First, some special target units (see systemd.special(7)) such as "local-fs.target", "swap.target" and "cryptsetup.target" are pulled in to mount the filesystems. Then, other target units are also pulled in by the target unit dependencies. For details, read bootup(7).

systemd offers backward compatibility features. SysV-style boot scripts in "/etc/init.d/rc[0123456S].d/[KS]name" are still parsed and telinit(8) is translated into systemd unit activation requests.

および/etc/systemd/system.conf

#  systemd is free software; you can redistribute it and/or modify it under the
#  terms of the GNU Lesser General Public License as published by the Free
#  Software Foundation; either version 2.1 of the License, or (at your option)
#  any later version.
#
# Entries in this file show the compile time defaults. Local configuration
# should be created by either modifying this file, or by creating "drop-ins" in
# the system.conf.d/ subdirectory. The latter is generally recommended.
# Defaults can be restored by simply deleting this file and all drop-ins.
#
# Use 'systemd-analyze cat-config systemd/system.conf' to display the full conf>
#
# See systemd-system.conf(5) for details.

[Manager]
#LogLevel=info
#LogTarget=journal-or-kmsg
#LogColor=yes
#LogLocation=no
#LogTime=no
#DumpCore=yes
#ShowStatus=yes
#CrashChangeVT=no
#CrashShell=no
#CrashReboot=no
#CtrlAltDelBurstAction=reboot-force
#CPUAffinity=
#NUMAPolicy=default
#NUMAMask=
#RuntimeWatchdogSec=off
#RuntimeWatchdogPreSec=off
#RuntimeWatchdogPreGovernor=
#RebootWatchdogSec=10min
#KExecWatchdogSec=off
#WatchdogDevice=
#CapabilityBoundingSet=
#NoNewPrivileges=no
#SystemCallArchitectures=
#TimerSlackNSec=
#StatusUnitFormat=description
#DefaultTimerAccuracySec=1min
#DefaultStandardOutput=journal
#DefaultStandardError=inherit
#DefaultTimeoutStartSec=90s
#DefaultTimeoutStopSec=90s
#DefaultTimeoutAbortSec=
#DefaultDeviceTimeoutSec=90s
#DefaultRestartSec=100ms
#DefaultStartLimitIntervalSec=10s
#DefaultStartLimitBurst=5
#DefaultEnvironment=
#DefaultCPUAccounting=no
#DefaultIOAccounting=no
#DefaultIPAccounting=no
#DefaultMemoryAccounting=yes
#DefaultTasksAccounting=yes
#DefaultTasksMax=15%
#DefaultLimitCPU=
#DefaultLimitFSIZE=
#DefaultLimitDATA=
#DefaultLimitSTACK=
#DefaultLimitCORE=
#DefaultLimitRSS=
#DefaultLimitNOFILE=1024:524288
#DefaultLimitAS=
#DefaultLimitNPROC=
#DefaultLimitMEMLOCK=8M
#DefaultLimitLOCKS=
#DefaultLimitSIGPENDING=
#DefaultLimitMSGQUEUE=
#DefaultLimitNICE=
#DefaultLimitRTPRIO=
#DefaultLimitRTTIME=
#DefaultOOMPolicy=stop
#DefaultSmackProcessLabel=

systemd のマニュアルページには、次の内容が記載されています。

6. Automount units provide automount capabilities, for on-demand
   mounting of file systems as well as parallelized boot-up. See
   systemd.automount(5).

ベストアンサー1

複数のジョブを並列に実行するシステムが不安定な場合、複数のジョブを並列に実行する最新のゲームを実行することはできません。

たとえば、グラフィック処理をジオメトリデータに対して機能するより密なループ(したがって、各フレームごとに位置が更新される)と照明を更新するより遅いループ(照明が異なる点滅しているか誰にも気づかない)に分けることが一般的です。です。その後、並列化して両方を実行します。

オーバークロック時にコンポーネントが加熱され、許容誤差が減少した場合でも、数時間全体の負荷安定性を維持できる構成を選択したいと思います。

おすすめ記事