标签: linux-kernel

如何让 Linux 识别我在不重新启动的情况下热插拔的新 SATA /dev/sda 驱动器?

热交换出故障的 SATA /dev/sda 驱动器工作正常,但是当我去交换一个新驱动器时,它没有被识别:

[root@fs-2 ~]# tail -18 /var/log/messages
May 5 16:54:35 fs-2 kernel: ata1: exception Emask 0x10 SAct 0x0 SErr 0x50000 action 0xe frozen
May 5 16:54:35 fs-2 kernel: ata1: SError: { PHYRdyChg CommWake }
May 5 16:54:40 fs-2 kernel: ata1: link is slow to respond, please be patient (ready=0)
May 5 16:54:45 fs-2 kernel: ata1: device not ready (errno=-16), forcing hardreset
May 5 16:54:45 fs-2 kernel: ata1: soft resetting link
May 5 16:54:50 fs-2 kernel: ata1: link is …
Run Code Online (Sandbox Code Playgroud)

linux sata hotswap scsi linux-kernel

48
推荐指数
5
解决办法
21万
查看次数

故意在 Linux 中引起 I/O 错误?

无论如何,对于 Linux,有没有故意导致块设备报告 I/O 错误,或者可能出于测试目的模拟一个?

linux linux-kernel block-device

43
推荐指数
4
解决办法
1万
查看次数

配置 vm.overcommit_memory 的效果

由于 oom-killer 启动,我的 VPS Web 服务器在 CentOS 5.4(Linux 内核 2.6.16.33-xenU)上不规则地运行(例如每月一次或需要几周)变得无响应。服务器的监控表明它没有通常用完内存,只是每隔一段时间。

我已经阅读了一些指向此页面的博客,其中讨论了使用以下 sysctl 设置来配置内核以更好地管理过度使用:

vm.overcommit_memory = 2
vm.overcommit_ratio = 80
Run Code Online (Sandbox Code Playgroud)

我对此的理解(这可能是错误的,但我找不到一个规范的定义来澄清)是,这可以防止内核过度分配超出交换区 + 80% 物理内存的内存。

但是,我还阅读了一些其他来源,表明这些设置不是一个好主意 - 尽管这种方法的批评者似乎在说“不要做破坏您的系统的事情,而不是尝试这种混乱”的假设因果关系总是已知的。

所以我的问题是,在托管大约 10 个低流量站点的 Apache2 Web 服务器的上下文中,这种方法的优缺点什么?在我的特定情况下,Web 服务器有 512Mb RAM,1024Mb 交换空间。大多数情况下,这似乎已经足够了。

linux web-server memory-usage linux-kernel

41
推荐指数
2
解决办法
5万
查看次数

现代文件系统中的数百万个文件对性能有何影响?

假设我们正在使用 ext4(启用 dir_index)来托管大约 3M 文件(平均大小为 750KB),我们需要决定我们将使用什么文件夹方案。

在第一个解决方案中,我们将哈希函数应用于文件并使用两级文件夹(第一级为 1 个字符,第二级为 2 个字符):因此filex.for哈希等于abcde1234,我们将其存储在 /path / a/bc /abcde1234-filex.for。

第二种解决方案中,我们对文件应用哈希函数并使用两级文件夹(第一级为 2 个字符,第二级为 2 个字符):因此filex.for哈希等于abcde1234,我们将其存储在 /path / ab/de /abcde1234-filex.for。

对于第一个解决方案,我们将采用以下方案/path/[16 folders]/[256 folders]每个文件夹(文件所在的最后一个文件夹)平均有 732 个文件

而在第二个解决方案,我们将有/path/[256 folders]/[256 folders]平均每个文件夹45页的文件

考虑到我们要从这个方案中写入/取消链接/读取文件(但主要是读取)(基本上是 nginx 缓存系统),如果我们选择一个或其他解决方案它在性能方面是否重要?

另外,我们可以使用哪些工具来检查/测试此设置?

linux performance filesystems nginx linux-kernel

32
推荐指数
2
解决办法
9556
查看次数

一个 ext3 目录中的最大文件数同时仍能获得可接受的性能?

我有一个写入 ext3 目录的应用程序,随着时间的推移,该目录已增长到大约 300 万个文件。不用说,读取这个目录的文件列表是慢得无法忍受的。

我不怪 ext3。正确的解决方案是让应用程序代码写入子目录,例如./a/b/c/abc.ext而不是仅使用./abc.ext.

我正在更改这样的子目录结构,我的问题很简单:我应该期望在一个 ext3 目录中存储大约多少文件,同时仍能获得可接受的性能?你有什么经验?

或者换句话说;假设我需要在结构中存储 300 万个文件,该结构应该有多少层深./a/b/c/abc.ext

显然,这是一个无法准确回答的问题,但我正在寻找一个球场估计。

linux filesystems ext3 capacity-planning linux-kernel

25
推荐指数
3
解决办法
2万
查看次数

Linux内存碎片

有没有办法检测 Linux 上的内存碎片?这是因为在一些长时间运行的服务器上,我注意到性能下降,只有在重新启动进程后,我才能看到更好的性能。在使用 Linux 大页面支持时,我注意到更多——Linux 中的大页面是否更容易碎片化?

/proc/buddyinfo特别看过。我想知道是否有更好的方法(不仅仅是 CLI 命令本身,任何程序或理论背景都可以)来查看它。

linux fragmentation linux-kernel

22
推荐指数
2
解决办法
3万
查看次数

为什么 CPU 花时间在 IO(wa) 上?

我知道wa(in top) 测量等待 I/O 的 CPU 时间。很多文章都这么说。

但我很困惑,基于 2 个知识点:

  1. 如果一个进程使用系统调用来读取磁盘,则该进程被阻塞。
  2. 如果一个进程被阻塞,它就不能被调度在 CPU 上运行。

对?

似乎没有时间让 CPU 等待 I/O...会发生什么?

如果推荐一些书籍或文章让我进一步阅读,那就更好了。

linux central-processing-unit io linux-kernel

19
推荐指数
1
解决办法
4322
查看次数

具有 xfs、20 个磁盘和 Ceph 的“大型”服务器上页面碎片的原因

对 linux IO 系统有一定经验的人的任何见解都会有所帮助。这是我的故事:

最近建立了一个由六个 Dell PowerEdge rx720xds 组成的集群,通过 Ceph 提供文件。这些机器在两个插槽上有 24 个内核,有两个 numa 区域和 70 GB 的内存。磁盘被格式化为一个磁盘的突袭(否则我们看不到直接暴露它们的方法)。网络由 mellanox infiniband IP over IB 提供(IP 数据包在内核领域变成 IB,而不是硬件)。

我们将每个 SAS 驱动器安装如下:

# cat /proc/mounts | grep osd
/dev/sdm1 /var/lib/ceph/osd/ceph-90 xfs rw,noatime,attr2,inode64,noquota 0 0
/dev/sdj1 /var/lib/ceph/osd/ceph-87 xfs rw,noatime,attr2,inode64,noquota 0 0
/dev/sdu1 /var/lib/ceph/osd/ceph-99 xfs rw,noatime,attr2,inode64,noquota 0 0
/dev/sdd1 /var/lib/ceph/osd/ceph-82 xfs rw,noatime,attr2,inode64,noquota 0 0
/dev/sdk1 /var/lib/ceph/osd/ceph-88 xfs rw,noatime,attr2,inode64,noquota 0 0
/dev/sdl1 /var/lib/ceph/osd/ceph-89 xfs rw,noatime,attr2,inode64,noquota 0 0
/dev/sdh1 /var/lib/ceph/osd/ceph-86 xfs rw,noatime,attr2,inode64,noquota 0 0
/dev/sdo1 /var/lib/ceph/osd/ceph-97 xfs …
Run Code Online (Sandbox Code Playgroud)

linux xfs fragmentation linux-kernel ceph

18
推荐指数
1
解决办法
3090
查看次数

在 CentOS 6.x 中,如何升级到 Kernel 3.4?

我有一台运行 CentOS 6.2 内核版本 2.6.32 的服务器,但我需要提高我的应用程序性能。

内核版本 3.4 有 x32abi 可以提高性能,所以我想升级到 3.4?是否可以?

我尝试下载内核编译和安装,但仍然看到相同的内核版本..

什么地方出了错?我遵循了下面链接中提到的过程。

http://www.tecmint.com/kernel-3-5-released-install-compile-in-redhat-c​​entos-and-fedora/

redhat centos kernel linux-kernel centos6

15
推荐指数
3
解决办法
4万
查看次数

net.core.rmem_max 和 net.ipv4.tcp_rmem 的区别

net.core.rmem_max 和 net.ipv4.tcp_rmem 的第三个值有什么区别?哪个对 tcp 连接具有更高的优先级?

对于以下两个示例,tcp 连接的最大缓冲区是多少?

Case 1:
sysctl -w net.core.rmem_max=7388608
sysctl -w net.ipv4.tcp_rmem='4096 87380 8388608'

Case 2:
sysctl -w net.core.rmem_max=8388608
sysctl -w net.ipv4.tcp_rmem='4096 87380 7388608'
Run Code Online (Sandbox Code Playgroud)

linux tcp linux-networking linux-kernel

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