我遇到了服务器中 NVMe SSD 条带性能异常低下的情况。硬件如下:
lspci -nvv显示了设备的 8GT/s x4 链路,显示它在 PCIe 3.0 上运行,就像驱动器想要的那样: LnkSta: Speed 8GT/s, Width x4。该驱动器的基准测试表明它能够以 1.4GB/s 左右的写入速度运行。
当我尝试对驱动器进行顺序写入时,我获得了大约三分之一的性能。下面显示了写入期间的 619MB/s,然后又暂停了 50 秒,大概是在数据完全刷新到磁盘时。
$ sudo dd if=/dev/zero of=/dev/nvme1n1 bs=16M count=1k status=progress
16726884352 bytes (17 GB, 16 GiB) copied, 27 s, 619 MB/s
1024+0 records in
1024+0 records out
17179869184 bytes (17 GB, 16 GiB) copied, 71.8953 s, 239 MB/s
Run Code Online (Sandbox Code Playgroud)
假设这只是我的综合基准与其他人的综合基准相比的一些怪癖,我将所有 4 个设备放入 MD RAID-0 中并再次尝试:
$ …Run Code Online (Sandbox Code Playgroud) 我需要在 ASUS RS720-E10-RS12 服务器上配置 RAID 的帮助。我们在主板插槽中安装了 2 个 512GB NVME 驱动器,在背板插槽中安装了 12 个 SATA SSD。我只能从 NVME 磁盘创建 RAID,然后禁用 SATA RAID 选项,或者我可以创建 SATA RAID,但随后禁用 NVME RAID 选项,这是一个大问题。
我们需要为 2 个 NVME 磁盘(镜像)设置 RAID,因为我们要在其上安装 VMWare ESXi。
同时,我们需要为12x SATA SSD设置RAID 5或RAID 6,用于存储。
问题是,正如我之前提到的,如果我打开适用于 NVME 的 Intel(R) VROC,我可以从这两个 NVME 磁盘创建 RAID 1,但它会自动将我的所有 SATA 切换到 AHCI 模式,而我需要保留它们处于 RAID 模式。
我正在尝试通过 BIOS - American Megatrends - Aptio 设置 - AMI 进行配置。
那么,有没有办法为系统配置两个 NVME 磁盘中的一个 RAID 池,同时从 12 个 SATA SSD 中配置另一个池用于存储?
我们有一台 PowerEdge R7525 服务器,在 debian 11 上配备 nvidia A16 显卡。但我们的 GPU 性能比其他服务器低约 50%。我怀疑是 BIOS 中缺少“4G 以上解码”选项。根据 nvidia 的说法,该服务器应处理最多 3 个 A16 GPU 单元。任何人都可以建议我一些解决方法或利用该 GPU 的全部功能的方法吗?
预先非常感谢
我有 CentOS 6 和 7 服务器,正在创建 512 MB 逻辑卷:
CentOS 7:
sudo lvcreate -v -n lvname -L 512M rootvg && sudo mkfs.xfs -L "lvname" /dev/mapper/rootvg-lvnamee
Run Code Online (Sandbox Code Playgroud)
CentOS 6:
sudo lvcreate -v -n lvname -L 512M rootvg && sudo mkfs.ext4 -L "lvname" /dev/mapper/rootvg-lvname
Run Code Online (Sandbox Code Playgroud)
现在命令工作正常,但是当我发出 时df -h /fs-name,在 CentOS 7 上,我得到 Size=509M,在 CentOS 6 上,我得到 Size=488M。为什么CentOS 6占用这么多空间,如何让它更接近CentOS 7的509M大小?
我正在运行 2 节点集群,其中 DRBD(主动/被动)由 drbd systemd 服务管理,还有一个小脚本,每当资源成为主要资源时就会安装卷。
我想以这样一种方式配置 DRBD,使其始终能够解决任何脑裂问题,并且始终至少有一个节点是主节点,并且只要两台机器都没有宕机,就能够在任何情况下提供服务。
我尝试了以下配置(其中pri-lost-after-sb是 "reboot")
after-sb-0pri discard-younger-primary;
after-sb-1pri discard-secondary;
after-sb-2pri call-pri-lost-after-sb;
Run Code Online (Sandbox Code Playgroud)
和on-suspended-primary-outdated force-secondary一些其他组合。
但我总是发现集群进入不良状态并且无法从裂脑中恢复的情况。通常我会进入StandAlone节点并force-io-failures辅助节点(因此,在主节点再次发生故障后,即使已连接,该辅助节点也将无法工作)。
考虑到我高度重视服务正常运行时间而不是避免数据丢失,我还能做些什么来提高此设置的稳健性吗?
我正在开发一个可以监控虚拟机 vgpu 使用情况的项目。虚拟机管理程序是vCenter,我们在 vCenter 主机上安装了 nvidia A16 卡,并将 a16 vGPU 分配给该主机上的几个 Windows 虚拟机,这些 vGPU 分配给同一 GPU 芯片。
我尝试使用nvidia-smi命令来检索主机和虚拟机中的 vGPU 使用情况。在我使用的主机中nvidia-smi vgpu,以及在我使用的虚拟机中nvdia-smi。但事实证明,nvidia-smi 提供的指标始终与 VM 中 Windows 操作系统提供的指标不同。
例如,来自Windows任务管理器的使用率nvidia-smi可能低至6%,但Windows任务管理器的使用率始终在15%左右。
我们更愿意相信来宾操作系统提供的指标,因为它反映了用户案例的真实需求。
我的问题是,nvidia-smi指标的含义和来源是什么?为什么结果如此不同?我可以以某种方式修改结果以反映真实的客人需求吗?
感谢您的指点!
我最近了解到启用磁盘写入缓存可以显着提高系统性能。但是,我担心突然断电时数据损坏或丢失的潜在风险。
以下是有关我的设置的一些背景信息:
操作系统:Windows Server 2012 R2
磁盘类型:SATA 3.0 硬盘
目的:我正在考虑在磁盘上启用写入缓存以提高性能。我的理解是,如果写入缓存上的数据尚未提交到磁盘时发生电源故障、操作系统崩溃或访问数据的应用程序崩溃,则可能会发生数据损坏。
在我的研究过程中,我在这篇文章中发现了以下详细信息,他们提到“当启用活动磁盘写入缓存并且磁盘执行预读(RLA)时,数据损坏会在用户不知情的情况下发生,而提前结束。” 。我无法理解这句话的确切含义。
即使在断电时没有进行数据写入,启用写入缓存后是否会发生数据损坏/文件损坏的情况。
我使用 Powershell 将 vSphere 环境的凭据保存到文本文件中ConvertFrom-SecureString。我想使用以下命令在我的 powershell 脚本中使用此凭据:
$password4host = get-content C:\shutdown\HostsCred.txt | convertto-securestring
如果我想通过服务执行 powershell 脚本,我会收到无法从文本文件中读取凭据的错误。这似乎属于这样的事实:将安全字符串保存在文本文件中与将这些凭据保存到文本文件的用户绑定在一起。只有用户自己才能解密凭证。
代码片段:
$time = ( get-date ).ToString('HH-mm-ss')
$date = ( get-date ).ToString('dd-MM-yyyy')
$logfile = New-Item -type file "C:\shutdown\ShutdownLog-$date-$time.txt" -Force
Import-Module -Name VMware.*
# Some variables
$vcenter = "10.10.10.10"
$username = "fakeuser@vsphere.local"
$username4host = "fakeuser"
$cluster = "ESXi-Cluster"
$datacenter = "Datacenter"
$vCenterVMName = "VMware vCenter Server" #Name of vCenter VM
$StarWindVM1 = "Starwind-VM" #Name of first StarWind VM
$StarWindVM2 = "Starwind-VM (1)" #Name of …Run Code Online (Sandbox Code Playgroud) 这真的很烦人,systemd只回应我的服务文件配置错误,但没有具体指出错误在哪里:
/lib/systemd/system/auto_pgha.service:
[Unit]\nDescription=PostgreSQL High Availability\nAfter=network.service\nAfter=firewalld.service\n\n\n[Service]\nType=simple\nWorkingDirectory=/etc/repmgr\nExecStartPre=/bin/bash -c 'echo -e "\\n" `date +"%Y/%m/%d %a, %X"`": STARTING \\n" >> pgha.log'\nExecStart=/bin/bash -c "python3 pg_high_availability.py &>> pgha.log"\nRestart=always\nRestartSec=3\n\n[Install]\nWantedBy=multi-user.target\nRun Code Online (Sandbox Code Playgroud)\n在目录内/etc/repmgr这两个命令运行得很好。但 systemd 服务只是响应了一个错误:
# systemctl start auto_pgha\nFailed to start auto_pgha.service: Unit auto_pgha.service has a bad unit file setting.\nSee system logs and 'systemctl status auto_pgha.service' for details.\n\n# systemctl status -l auto_pgha\n\xe2\x97\x8b auto_pgha.service - PostgreSQL High Availability\n Loaded: bad-setting (Reason: Unit auto_pgha.service has a bad unit file setting.)\n......\nauto_pgha.service: Unit configuration has …Run Code Online (Sandbox Code Playgroud) 我有几台带有 ConnectX-7 Infiniband 卡的机器,它们已插入 Nvidia QM9700 交换机。我已确认两端均为 400 Gbit NDR(主机上的 ibstat 和交换机控制台中)。这些机器运行 Ubuntu 22.04 和 Mellanox 5.8-3.0.7.0 驱动程序。我已经做了很多测试ib_write_bw,我能得到的最大速度是 ~251 Gbit/s。实际测试命令为:
服务器端(host_a):
numactl -N 0 -m 0 ib_write_bw -d mlx5_4 -F --report_gbits
Run Code Online (Sandbox Code Playgroud)
客户端(host_b):
numactl -N 0 -m 0 ib_write_bw -d mlx5_4 -F --report_gbits --run_infinitely host_b
Run Code Online (Sandbox Code Playgroud)
这些卡位于正确的 numa 域中以匹配 numactl,但我尝试过其他组合,但没有成功。输出最终看起来像这样:
---------------------------------------------------------------------------------------
RDMA_Write BW Test
Dual-port : OFF Device : mlx5_4
Number of qps : 1 Transport type : IB
Connection type : RC Using SRQ : OFF
PCIe relax order: …Run Code Online (Sandbox Code Playgroud) nvidia ×2
performance ×2
windows ×2
asus ×1
centos6 ×1
centos7 ×1
credentials ×1
debian ×1
dell ×1
disk-cache ×1
drbd ×1
filesystems ×1
gpu ×1
hard-drive ×1
infiniband ×1
linux ×1
lvm ×1
nvme ×1
powershell ×1
raid ×1
raid1 ×1
raid5 ×1
sata ×1
server-setup ×1
service ×1
systemd ×1
task-manager ×1