小编Kar*_*yan的帖子

调整顺序磁盘读取以提高性能

我正在从磁盘中顺序读取一个大文件,并尝试iostat在读取过程中理解输出。

  • 文件大小:10 GB
  • 读取缓冲区:4 KB
  • 预读 (/sys/block/sda/queue/read_ahead_kb):128 KB

输出iostat如下

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz await r_await w_await  svctm  %util
sda               0.00     0.00  833.00   14.00   103.88     0.05   251.30     6.07    5.69    2.33 205.71  1.18 100.00
Run Code Online (Sandbox Code Playgroud)

计算 I/O 请求的平均大小 =(rMB/s 除以 r/s)得出 ~ 128 KB,这是预读值。这似乎表明,虽然 read 系统调用指定了 4KB 缓冲区,但实际磁盘 I/O 是根据预读值发生的。

当我将预读值增加到256KB时,iostat输出如下

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00    28.00  412.00   12.00   102.50     0.05 …
Run Code Online (Sandbox Code Playgroud)

linux performance disk

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

为什么我们需要在调用 SECCOMP_MODE_FILTER 之前设置 no_new_privs ?

手册页上,我阅读了以下行:

导致尝试使用 setuid(2) 将调用者的用户 ID 设置为非零值,而是返回 0 而不实际进行系统调用

我无法理解他们想说什么。任何人都可以向我解释这一点吗?

谢谢。

linux security system-calls

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

linux中的中断是如何排队的?

在硬件和软件中断流程中如何处理排队?更准确地说,我有以下疑问

让我们假设我有一台带有 2 个 CPU 的机器。CPU1 正在处理进程 P1,CPU2 正在处理进程 P2。进程 P3 正在等待执行。现在 CPU1 得到了硬件中断 (I1)。因此,CPU1 上下文切换到 I1 的中断服务程序 (ISR)。

注意:我们可以忽略中断的下半部分,而认为所有中断都只有上半部分。

  • 一旦 I1 的中断处理完成。是保证P1会再次被调度还是P3有机会被调度?
  • 进程P1(由于硬件中断从CPU1中移除)如果空闲会占用CPU2吗?
  • 如果 I1 的中断处理程序没有屏蔽任何中断,第二个中断 I2 会发生什么?如果它会排队谁会记得那个队列?
  • 如果 I1 的中断处理程序屏蔽了所有中断,第二个中断 I2 会发生什么?

linux cpu scheduling kernel interrupt

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

是否可以检查不同 pid 命名空间中子进程的进程 id?

是否可以找到位于单独 PID 命名空间中的子进程的 PID?

我能够获取相对于父命名空间的子进程 PID,但我需要相对于子进程当前运行的单独 PID 命名空间找到子进程的 PID。

我可以通过 IPC 从子进程获取 PID,但是有没有办法在没有子进程帮助的情况下找到它?

linux process namespace

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

如何修复 mdadm raid5 阵列上的错误校验和错误 (Ubuntu)

4 x 4 TB在 raid5 阵列中配置了一个驱动器。

驱动器标记为/dev/sdb1, /dev/sdc1, /dev/sdd1&/dev/sde1组装为/dev/md0

mdadm 汇编输出

当我尝试组装数组时,我得到:

sudo mdadm --assemble /dev/md0
mdadm: failed to RUN_ARRAY /dev/md0: Invalid argument
Run Code Online (Sandbox Code Playgroud)

dmesg -T 输出

感兴趣的输出:

[Sun Dec 27 00:15:35 2020] md/raid:md0: device sdc1 operational as raid disk 0
[Sun Dec 27 00:15:35 2020] md/raid:md0: device sdd1 operational as raid disk 3
[Sun Dec 27 00:15:35 2020] md/raid:md0: device sdb1 operational as raid disk 2
[Sun Dec 27 00:15:35 2020] …
Run Code Online (Sandbox Code Playgroud)

raid software-raid ubuntu mdadm raid5

5
推荐指数
0
解决办法
182
查看次数

如何在 Linux 内核中启用 QCA6390 蓝牙固件?

语境

我很难让内核为我的 XPS 9310 加载必要的蓝牙固件。我的型号有 AX500 连接芯片,它使用 QCA6390。

UbuntuArch 的用户都报告说蓝牙可以与这个模型一起工作,但是,我很难找到在 NixOS 上运行所需的正确内核配置。

我的配置

我启用了以下内核配置参数,并boot.kernelPatches在我的 nix 配置中添加了以下补丁:

    # Extra config required for Bluetooth.
    {
      name = "enable-qca6390-bluetooth";
      patch = null;
      extraConfig = ''
        BT_QCA m
        BT_HCIBTUSB m
        BT_HCIBTUSB_AUTOSUSPEND y
        BT_HCIUART m
        BT_HCIUART_QCA y
      '';
    }
Run Code Online (Sandbox Code Playgroud)

我正在加载相关模块,如下所示:

  boot.kernelModules = [ "bluetooth" "btqca" "btusb" "hci_qca" "hci_uart" ];
Run Code Online (Sandbox Code Playgroud)

不用说,我有:

  hardware.bluetooth.enable = true;
Run Code Online (Sandbox Code Playgroud)

我也有:

  hardware.enableRedistributableFirmware = true;
Run Code Online (Sandbox Code Playgroud)

它启用了firmwareLinuxNonfree包,它又从linux-firmware 存储库中添加了固件,而后者又包含了必要的 QCA 固件

问题

可以在此处 …

firmware bluetooth linux-kernel nixos

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

在 /dev 中添加 noexec 挂载选项是否安全?

它是安全的添加noexec安装选项,同时安装devtmpfs/dev?我问这个是因为在我的 ubuntu 机器中,默认选项是rw,nosuid,realtime(使用 找到cat /proc/mounts | grep /dev)。有什么理由不noexec默认添加吗?

linux security udev mount

3
推荐指数
1
解决办法
324
查看次数

Linux中自定义退出代码的最佳范围?

在这里,我正在开发一个可以因各种自定义原因退出的应用程序。自定义退出代码的最佳范围是多少(例如 150-200)?

我知道这是基于意见的,但我仍然想了解多个用户的不同观点。

请分享您的意见,谢谢。

linux process exit-status

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

在 buildah 容器内运行多个命令,由命令行中的布尔 AND (&&) 运算符分隔

如何在主机命令行中使用 bash 的布尔 AND 运算符在容器内运行多个命令?buildah&&

这是我的问题的一个示例,从图像开始debian

$ buildah pull debian:buster && container=$(buildah from debian:buster)
$ buildah run $container -- apt -y update && apt -y upgrade
Hit:1 http://security.debian.org/debian-security buster/updates InRelease
Hit:2 http://deb.debian.org/debian buster InRelease
Hit:3 http://deb.debian.org/debian buster-updates InRelease
Reading package lists... Done
Building dependency tree       
Reading state information... Done
All packages are up to date.
bash: apt: command not found...
Install package 'apt' to provide command 'apt'? [N/y]
Run Code Online (Sandbox Code Playgroud)

&&我的主机 shell 解释命令之外的布尔值 AND buildah。我的期望是拥有布尔值的右侧并在 …

buildah

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