我有一个写入 ext3 目录的应用程序,随着时间的推移,该目录已增长到大约 300 万个文件。不用说,读取这个目录的文件列表是慢得无法忍受的。
我不怪 ext3。正确的解决方案是让应用程序代码写入子目录,例如./a/b/c/abc.ext
而不是仅使用./abc.ext
.
我正在更改这样的子目录结构,我的问题很简单:我应该期望在一个 ext3 目录中存储大约多少文件,同时仍能获得可接受的性能?你有什么经验?
或者换句话说;假设我需要在结构中存储 300 万个文件,该结构应该有多少层深./a/b/c/abc.ext
?
显然,这是一个无法准确回答的问题,但我正在寻找一个球场估计。
我已将 Varnish 缓存配置为使用 512 MB 的缓存大小,使用:
varnishd ... -s file,/var/cache/varnish.cache,512M
Run Code Online (Sandbox Code Playgroud)
问题:
考虑以下五台机器(名为 c、h、j、s 和 u)及其各自的vmstat 1
输出。
鉴于来自 vmstat 输出的信息:
我正在尝试学习如何获得解释 vmstat 输出的直观感觉。
机器c:
# vmstat 1
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 4 9456 10692 304020 0 0 193 92 310 131 7 1 80 11 2
2 0 4 10212 10676 303020 0 0 412 40 1265 514 11 0 80 8 2
1 1 4 …
Run Code Online (Sandbox Code Playgroud) 在生产 MySQL 环境中,以下错误消息/var/log/mysql/error.log
每四分钟写入一次:
110723 18:36:02 InnoDB: ERROR: the age of the last checkpoint is 9433856,
InnoDB: which exceeds the log group capacity 9433498.
InnoDB: If you are using big BLOB or TEXT rows, you must set the
InnoDB: combined size of log files at least 10 times bigger than the
InnoDB: largest such row.
Run Code Online (Sandbox Code Playgroud)
我不确定如何解析错误消息。
更具体地说,我不明白检查点的年龄如何与“日志组容量”相关,以及这又如何与具有大BLOB
/TEXT
列的行的大小相关。
基本上我不知道如何排除故障并继续解决这个问题。我的问题是:
我正在考虑yum -qy update
在一些没有定期维护的机器上添加一个定期运行的 cronjob 。目标是让机器保持最新的安全补丁,否则这些补丁会应用得太晚。我只使用 CentOS 基本存储库。
问题:
如何配置 Varnish,以便对匹配“*.css”的请求的所有响应都在客户端的浏览器中缓存 30 天?
我想要实现的是让 Varnish 设置正确的“Expires:”和/或“Cache-Control”设置,以便所有 CSS:s 都缓存 30 天,而不管后端对这些对象。
我最近安装了一台 CentOS 5.3 机器,我将它锁定在无头环境中用于服务器使用(机器上不会使用 GUI)。该服务器将用作组合的 Web 和数据库服务器。
我已经禁用了 xfs 和 portmap,因为机器上显然不需要这些。
下面是一个 chkconfig 日志,它显示了机器上运行的服务。
问题:除了 xfs 和 portmap - 您会考虑禁用以下哪些服务?为什么?
chkconfig --list | grep 3:on
acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off
anacron 0:off 1:off 2:on 3:on 4:on 5:on 6:off
atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
auditd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
autofs 0:off 1:off 2:off 3:on 4:on 5:on 6:off
crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
haldaemon 0:off 1:off 2:off 3:on 4:on …
Run Code Online (Sandbox Code Playgroud) 在 MacOS X 中启用 IP 转发的正确方法是什么?
更具体地说,以下两个 Linux 命令的 MacOS X 命令行等效项是什么:
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -j ACCEPT
Run Code Online (Sandbox Code Playgroud) 安装 Tomcat 5 后,您应用了哪些配置更改/调整,为什么?
要具体:命名您编辑的文件、您更改的设置以及您为什么这样做。
一些感兴趣的领域:
考虑"ps auxwww"
输出中的以下几行:
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
root 4262 0.0 0,1 76592 1104 s005 Ss 10:02am 0:00.03 login -pf yo
yo 4263 0.0 0,0 75964 956 s005 S 10:02am 0:00.03 -bash
Run Code Online (Sandbox Code Playgroud)
如何强制ps将 COMMAND 列中的所有命令扩展为其完全限定的路径名?我希望将登录解析为 /usr/bin/login 并将 Bash 解析为 /bin/bash。
是否有与Mac OS X 中的procfs等效的东西?也就是说 - 是否有基于文件的机制来轻松获取进程信息?
在解释非零 vmstat“si/so”值方面有哪些有用的经验法则?什么时候这些值“正常”,什么时候它们表明内存情况有问题?
在一般情况下,这个问题当然很难回答,但我正在寻找经验法则而不是确切的规则。
假设在同一个 /24 网络中有两个 IP 地址(比如 1.2.3.*):
假设这两个主机属于同一个 AS 编号是否安全?如果不是,它们不属于同一个 AS 的情况大致有多少?
linux ×4
centos ×2
mac-osx ×2
varnish ×2
vmstat ×2
as-number ×1
cache ×1
chkconfig ×1
cidr ×1
ext3 ×1
filesystems ×1
hardening ×1
innodb ×1
ip-address ×1
ipfw ×1
iptables ×1
java ×1
linux-kernel ×1
memory ×1
mysql ×1
networking ×1
performance ×1
process ×1
ps ×1
security ×1
tomcat ×1
unix ×1
yum ×1