小编BMD*_*Dan的帖子

rm 在包含数百万个文件的目录上

背景:物理服务器,大约两年,7200-RPM SATA 驱动器连接到 3Ware RAID 卡,ext3 FS 挂载 noatime 和 data=ordered,不在疯狂负载下,内核 2.6.18-92.1.22.el5,正常运行时间 545 天. 目录不包含任何子目录,只有数百万个小(~100 字节)文件,还有一些更大的(几 KB)文件。

我们有一台服务器在过去几个月中出现了一些问题,但我们直到前几天才注意到它,因为它开始无法写入目录,因为它包含太多文件。具体来说,它开始在 /var/log/messages 中抛出这个错误:

ext3_dx_add_entry: Directory index full!
Run Code Online (Sandbox Code Playgroud)

有问题的磁盘有大量剩余的 inode:

Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda3            60719104 3465660 57253444    6% /
Run Code Online (Sandbox Code Playgroud)

所以我猜这意味着我们达到了目录文件本身可以有多少条目的限制。不知道会有多少文件,但正如您所见,不能超过三百万左右。不是那么好,请注意!但这是我的问题之一:上限到底是多少?是可调的吗?在我被骂之前——我想把它调低;这个庞大的目录导致了各种各样的问题。

无论如何,我们在生成所有这些文件的代码中找到了问题,我们已经更正了它。现在我坚持删除目录。

这里有几个选项:

  1. rm -rf (dir)

    我先试过这个。在它运行了一天半没有任何明显影响后,我放弃并杀死了它。

  2. 目录上的 unlink(2):绝对值得考虑,但问题是通过 fsck 删除目录中的文件是否比通过 unlink(2) 删除更快。也就是说,以某种方式,我必须将这些 inode 标记为未使用。当然,这假设我可以告诉 fsck 不要删除 /lost+found 中文件的条目;否则,我只是转移了我的问题。除了所有其他问题之外,在阅读更多内容之后,结果证明我可能不得不调用一些内部 FS 函数,因为我能找到的 unlink(2) 变体都不允许我随意删除一个包含条目的目录。呸。
  3. while [ true ]; do ls -Uf | head -n 10000 | xargs rm -f 2>/dev/null; …

ext3 directory kernel rm

118
推荐指数
6
解决办法
5万
查看次数

Apache2:带有重写规则的 400 个错误请求,错误日志中没有任何内容?

这让我发疯。

背景:我正在使用 Mac OS X 10.6 附带的内置 Apache2 和 PHP

我有一个虚拟主机设置如下:

NameVirtualHost *:81

<Directory "/Users/neezer/Sites/">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

<VirtualHost *:81>
    ServerName lobster.dev
    ServerAlias *.lobster.dev
    DocumentRoot /Users/neezer/Sites/lobster/www

    RewriteEngine On
    RewriteCond $1 !^(index\.php|resources|robots\.txt)
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L,QSA]

    LogLevel debug
    ErrorLog /private/var/log/apache2/lobster_error
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

这是在/private/etc/apache2/users/neezer.conf.

我的代码lobster project是带有CodeIgniter 框架的PHP 。尝试加载http://lobster.dev:81/给了我:

400 错误请求

通常,我会去检查我的日志,看看是什么原因造成的,但我的日志是空的!我看着这两个/private/var/log/apache2/error_log/private/var/log/apache2/lobster_error,既不记录与我已在400的任何消息LogLevel设置为debug/private/etc/apache2/http.conf。 …

php mod-rewrite logging apache-2.2

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

Rackspace - 服务器的典型功率

我正在尝试获得一些机架空间并购买合适的服务器。我有一个 1/4 机柜的报价,其中包括 0.5kw 的功率。我怎么知道我的服务器将使用多少功率...(例如,我在戴尔网站上查看过,但在任何地方都看不到这一点)

感谢:D

electrical-power dell-poweredge

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

Linux 源代码

我要寻找使用/在Linux上使用,如常见的系统命令的源代码calsusudolsdirpwd,等我想使用的源代码,以了解更多关于Linux系统管理。

此类系统二进制文件的源代码在哪里——这些代码在 Linux 内核之外,但与大多数 GNU/Linux 变体一起分发?

哪个 Linux 发行版最适合学习和查看这些命令的源代码?

是否可以更改代码以了解它们的实际工作原理?

linux

0
推荐指数
2
解决办法
1054
查看次数

有免费的子网划分工具吗?

我想要一个程序,我可以在 IP 地址中写入并为其提供子网掩码,并让它在 C 级网络中划分网络。

谢谢。

我可以下载的东西,不是网站。

subnet cidr netmask

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