时不时地,我被告知要提高“dd”的速度,我应该仔细选择合适的“块大小”。
即使在这里,在 ServerFault 上,其他人也写道“ ...最佳块大小取决于硬件... ” (iain)或“ ...完美的大小将取决于您的系统总线、硬盘驱动器控制器、特定驱动器本身,以及每个驱动程序...... ” (克里斯 - s)
由于我的感觉有点不同(顺便说一句:我认为深度调整 bs 参数所需的时间远高于获得的增益,在节省时间方面,并且默认是合理的),今天我刚去了通过一些快速而肮脏的基准测试。
为了降低外部影响,我决定阅读:
和:
在下表中,我报告了我的发现,读取了具有不同“bs”值的 1GB 数据(您可以在此消息的末尾找到原始数字):

基本上得出的结论是:
MMC:使用 bs=4(是的!4 字节),我达到了 12MB/s 的吞吐量。我从 bs=5 及以上得到的最大 14.2/14.3 的值并不那么遥远;
硬盘:bs=10 我达到了 30 MB/s。肯定低于默认 bs=512 获得的 95.3 MB,但......也很重要。
此外,很明显,CPU 系统时间与 bs 值成反比(但这听起来很合理,因为 bs 越低,dd 生成的系统调用数量就越高)。
说了以上所有,现在的问题是:有人可以解释(内核黑客?)这种吞吐量所涉及的主要组件/系统是什么,以及是否真的值得努力指定高于默认值的 bs?
root@iMac-Chiara:/tmp# time dd if=/dev/sdc of=/dev/null bs=1M count=1000
1000+0 …Run Code Online (Sandbox Code Playgroud) 在与垃圾邮件的日常战斗中,有几次我很想从疯狂的 Internet 连接的客户端中严格执行 DNS 要求。
详细地说,我会在我的smtpd_client_restrictions部分中添加reject_unknown_reverse_client_hostname设置,如下所示:
smtpd_client_restrictions =
permit_sasl_authenticated
check_client_access hash:/etc/postfix/access
check_policy_service inet:127.0.0.1:4466
reject_unknown_reverse_client_hostname
reject_unauth_pipelining
Run Code Online (Sandbox Code Playgroud)
无论如何,我注意到当遇到这样的限制时,Postfix 的行为非常“软”,因为默认值为unknown_client_reject_code450。因此,客户端被邀请继续重试。
在调查 550 响应时,我在Postfix 官方文档中遇到了以下声明:

我绝对不是整个RFC 5321的专家,但作为一个足够了解RFC 821 的人,我真的不明白为什么,550 响应而不是 450 会影响我的 Postfix 实例在最大 SMTP 级别(破坏 RFC 合规性),特别是考虑到在出现临时错误的情况下,无论显式设置如何,Postfix 都会坚持使用 450。
那么,有人可以帮助我了解这种替换有什么问题吗?
PS:与此同时,我以“宽松”的限制结束:
smtpd_client_restrictions =
permit_sasl_authenticated
check_client_access hash:/etc/postfix/access
check_policy_service inet:127.0.0.1:4466
warn_if_reject reject_unknown_reverse_client_hostname
reject_non_fqdn_helo_hostname
reject_unauth_pipelining
reject_invalid_helo_hostname
Run Code Online (Sandbox Code Playgroud)