热交换出故障的 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,有没有故意导致块设备报告 I/O 错误,或者可能出于测试目的模拟一个?
由于 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 交换空间。大多数情况下,这似乎已经足够了。
假设我们正在使用 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 缓存系统),如果我们选择一个或其他解决方案,它在性能方面是否重要?
另外,我们可以使用哪些工具来检查/测试此设置?
我有一个写入 ext3 目录的应用程序,随着时间的推移,该目录已增长到大约 300 万个文件。不用说,读取这个目录的文件列表是慢得无法忍受的。
我不怪 ext3。正确的解决方案是让应用程序代码写入子目录,例如./a/b/c/abc.ext而不是仅使用./abc.ext.
我正在更改这样的子目录结构,我的问题很简单:我应该期望在一个 ext3 目录中存储大约多少文件,同时仍能获得可接受的性能?你有什么经验?
或者换句话说;假设我需要在结构中存储 300 万个文件,该结构应该有多少层深./a/b/c/abc.ext?
显然,这是一个无法准确回答的问题,但我正在寻找一个球场估计。
有没有办法检测 Linux 上的内存碎片?这是因为在一些长时间运行的服务器上,我注意到性能下降,只有在重新启动进程后,我才能看到更好的性能。在使用 Linux 大页面支持时,我注意到更多——Linux 中的大页面是否更容易碎片化?
我/proc/buddyinfo特别看过。我想知道是否有更好的方法(不仅仅是 CLI 命令本身,任何程序或理论背景都可以)来查看它。
我知道wa(in top) 测量等待 I/O 的 CPU 时间。很多文章都这么说。
但我很困惑,基于 2 个知识点:
对?
似乎没有时间让 CPU 等待 I/O...会发生什么?
如果推荐一些书籍或文章让我进一步阅读,那就更好了。
对 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) 我有一台运行 CentOS 6.2 内核版本 2.6.32 的服务器,但我需要提高我的应用程序性能。
内核版本 3.4 有 x32abi 可以提高性能,所以我想升级到 3.4?是否可以?
我尝试下载内核编译和安装,但仍然看到相同的内核版本..
什么地方出了错?我遵循了下面链接中提到的过程。
http://www.tecmint.com/kernel-3-5-released-install-compile-in-redhat-centos-and-fedora/
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-kernel ×10
linux ×9
filesystems ×2
block-device ×1
centos ×1
centos6 ×1
ceph ×1
ext3 ×1
hotswap ×1
io ×1
kernel ×1
memory-usage ×1
nginx ×1
performance ×1
redhat ×1
sata ×1
scsi ×1
tcp ×1
web-server ×1
xfs ×1