AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题

问题[scheduling](unix)

Martin Hope
Abdelhakim AKODADI
Asked: 2022-01-12 18:27:38 +0800 CST

使用 make -j`nproc` 导致页面错误数量激增

  • 1

我正在运行一个基准来确定我应该允许 GNU Make 使用的作业数量,以便获得最佳编译时间。为此,我使用 N 编译 Glibc,make -j<N>其中 N 是 1 到 17 的整数。到目前为止,我每次选择 N 都做了 35 次(总共 35*17=595 次)。我还使用GNU Time运行它来确定 Make 花费的时间和使用的资源。

当我分析结果数据时,我注意到一些奇怪的东西。当我达到-j8.

主要页面错误的平均数

我还应该注意,8 是我计算机上的 CPU 内核数(或者更具体的超线程数)。

在自愿上下文切换的数量上,我也可以注意到同样的事情,但不那么明显。

自愿上下文切换的平均次数

为了确保我的数据没有偏差或其他任何问题,我又运行了两次测试,但仍然得到相同的结果。

我正在使用 linux 内核 5.15.12 运行 artix linux。

这些尖峰背后的原因是什么?

编辑:我在 4 核 PC 上再次做了同样的实验。我可以观察到同样的现象,这次是 4 个工作岗位。

4 核 CPU 上的平均主要页面错误数

此外,请注意 2 个作业标记中主要页面错误的跳跃。

4 核 CPU 上的平均自愿上下文切换次数

编辑2:

@FrédéricLoyer 建议将页面错误与效率(经过时间的倒数)进行比较。这是一个确切的箱线图:

以 1/秒为单位的反向经过实时(挂钟)的箱线图

我们可以看到,随着我们从 1 个工作变为 4 个工作,效率越来越高。但对于更多的工作,它基本保持不变。

我还应该提到我的系统有足够的内存,所以即使有最大数量的作业,我也不会用完内存。我还记录了 PRSS(峰值驻留集大小),这是它的箱线图。

以 KB 为单位的峰值驻留集大小的箱线图

我们可以看到作业的数量根本不会影响内存使用。

EDIT3:正如 MC68020 所建议的,这里分别是 4 核和 8 核系统的 TLBS(事务后备缓冲区击穿)值图:

事务后备缓冲区击落 - 4 核

事务后备缓冲区击落 - 8 个内核

linux scheduling
  • 2 个回答
  • 152 Views
Martin Hope
Peregring-lk
Asked: 2022-01-11 00:58:13 +0800 CST

Linux CFS 调度程序:任务如何停止?

  • 1

据我通过阅读一些 SO 问题和内核文档了解到,在 Linux 中,允许任务(线程、进程甚至一组任务)在最短的时间内(根据我的笔记本电脑中的 3 毫秒)不间断地执行到 /proc/sys/kernel/sched_min_granularity_ns),之后如果负载高可以随时停止。如果不是这种情况并且已经超过 CPU 时间,则必须停止任务以允许其他任务继续进行。

但在我的理解中,一旦 CPU 运行一个任务,没有什么可以阻止它,这自然会产生两个非常相关的问题:

  • 如何停止任务?我唯一能想到的就是操作系统发送某种简单的 CPU 中断,还是这里涉及到更复杂的事情?
  • 如果 CPU 是单线程的,一次只能执行一个任务,任务可以完全停止吗?因为如果 CPU 当前正在运行一个任务,Linux 怎么可能执行自己的管理例程来检查该任务是否必须停止?
linux scheduling
  • 1 个回答
  • 58 Views
Martin Hope
Joshua Nozzi
Asked: 2021-12-07 05:56:11 +0800 CST

按计划显示睡眠/唤醒

  • 0

是否可以安排某种显示保持唤醒命令?

我有一台机器,我想在特定时间运行仪表板显示,而不必每天与它交互来唤醒和睡觉。这意味着我只希望显示器按照我选择的时间表唤醒和睡眠,而不需要锁定桌面会话并且需要密码来唤醒并且不需要让整个机器进入睡眠状态(机器本身必须继续 24/7 处理事件)。

我打算让一个非特权的“kiosk”帐户始终为此登录,以及一个未使用的笔驱动显示器,用于在不拉出键盘/鼠标的情况下与仪表板交互。这组要求排除了标准屏幕保护程序、屏幕锁定、电源管理等提供的许多通常允许,因为我希望显示器在其下班时间真正进入睡眠状态,除非通过点击平板电脑的按钮特别唤醒,键盘等,此时它会像往常一样在一段时间不活动后自动休眠。

注意:我没有费心指定“我正在使用 Ubuntu Desktop”,因为我希望有一个独立于 GUI 环境的通用解决方案,即使我必须构建和安装它。我还想避免定期伪造键盘/鼠标事件,这样它们就不会干扰控制台的使用。如果您需要更具体的信息,请在评论中告诉我。

scheduling display
  • 1 个回答
  • 104 Views
Martin Hope
user3901666
Asked: 2019-08-16 20:51:35 +0800 CST

CRON 作业计划问题

  • 0

我想在每个月的第三个星期五凌晨 1 点安排一份工作。我检查了几个 cron 入口网站,这些网站对我不起作用。

到目前为止,我还在检查一些 awk 选项,但没有成功。你们能帮我吗?

我今天尝试运行这个 cron 工作正常,但脚本在同一点连续运行并且没有完成:

0 1 15-21 * * test $(date +\%u) -eq 5 && echo "3rd friday" && Extract_Param.sh /landing/file/ABC/file.txt 
cron scheduling
  • 1 个回答
  • 81 Views
Martin Hope
Nulik
Asked: 2019-06-07 05:34:21 +0800 CST

减少单个进程的调度时间

  • 0

我有一个正在挖掘私有区块链的进程,它占用了 100% 的 CPU。我不需要那么多的计算能力,所以为了减少我的能源费用,我需要将这个特定的进程配置为只在一段时间内安排一次,以实现大约 10% 的 CPU 消耗。

如何减少特定进程获得的时间片?

linux scheduling
  • 2 个回答
  • 69 Views
Martin Hope
wgwz
Asked: 2019-05-11 08:55:04 +0800 CST

`at` 命令使用什么时区?

  • 3

我在手册页中搜索了at没有提到时区或 tz 的命令。有这个:

时间规范的确切定义可以在 中找到  /usr/share/doc/at-3.1.10/timespec。

在该文件中,我看到:

timezone_name   : UTC
                ;

我猜这意味着这个命令使用 UTC 作为默认时区。但也许我缺少一些东西,它将利用服务器的默认时区。

date scheduling
  • 1 个回答
  • 860 Views
Martin Hope
Symb932
Asked: 2019-04-11 22:50:29 +0800 CST

是否可以安排 anacron 单行命令执行而不是获取文件?

  • 0

在互联网上的任何地方,在文章或教程中(在搜索“schedule an anacron command”时),我都找到了如下格式:

@daily    15    rsync.daily   /bin/bash /home/steven/script/backuprsync.sh

然后我想知道是否可以安排单个(行)命令(而不是采购整个文件),这将是正确的语法形式。

linux scheduling
  • 1 个回答
  • 27 Views
Martin Hope
Kindred
Asked: 2018-12-06 08:00:01 +0800 CST

Linux 中的进程调度器是什么?

  • 4

我阅读了有关进程调度程序的维基百科:

进程调度程序是操作系统的一部分,它决定在某个时间点运行哪个进程。

我真的不明白那是什么意思。Linux 中的进程调度器是什么?它是内核的一部分吗?它究竟是做什么的?

linux scheduling
  • 1 个回答
  • 2134 Views
Martin Hope
gusbrs
Asked: 2018-12-03 05:36:52 +0800 CST

限制 Linux Mint 中 anacron 作业的时间

  • 1

我想限制一天anacrontab中允许运行的作业的时间。

我可以在手册页在线信息中找到关于START_HOURS_RANGE哪个应该做到这一点的信息。例如这里和这里。这个站点上的一些问题也提到了这个设置,例如Job `cron.daily' started not append in /var/log/cron和在什么情况下 anacron 不会运行?.

但是,anacrontab我的系统(Mint 19)中的手册页不包含此类设置。确实,即使我包括:

START_HOURS_RANGE=5-17

在我的\etc\anacrontab, anacron 工作不限制这个时间范围。

从它看来,这个设置已经被删除了anacron,虽然我找不到任何发行说明来确定这一点。

所以,我的问题是,鉴于上述情况,我该如何限制 anacron 的工作开始时间?

linux-mint scheduling
  • 1 个回答
  • 535 Views
Martin Hope
Tim
Asked: 2018-10-09 13:02:14 +0800 CST

为什么没有选择协同调度?

  • -2

操作系统概念说

CPU 调度决策可能发生在以下四种情况下:

  1. 当进程从运行状态切换到等待状态时(例如,由于 I/O 请求或调用 wait() 以终止子进程)

  2. 当一个进程从运行状态切换到就绪状态时(比如中断发生时)

  3. 当进程从等待状态切换到就绪状态时(例如,在 I/O 完成时)

  4. 当进程终止时

对于情况1和4,在调度方面是没有选择的。必须选择一个新进程(如果就绪队列中存在一个进程)来执行。但是,对于情况 2 和 3,可以选择 。

当调度仅在情况 1 和情况 4 下发生时,我们称调度方案是非抢占式或协作式的。否则,它是抢先的。

“调度方面的选择”是什么意思?

为什么合作调度没有选择,抢占式调度可能有呢?

我认为调度是否是抢占式的,

  • 正在运行的进程总是放弃 CPU(所以别无选择),并且

  • 总是可以选择从就绪队列中选择一个进程来运行。

谢谢。

process scheduling
  • 2 个回答
  • 242 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve