几天前,我注意到一些很奇怪的事情(至少对我而言)。我运行 rsync 复制相同的数据,然后将其删除到 NFS 挂载,称为/nfs_mount/TEST. 这/nfs_mount/TEST是从nfs_server-eth1. 两个网络接口上的 MTU 都是 9000,中间的交换机也支持巨型帧。如果我这样做,rsync -av dir /nfs_mount/TEST/我将获得 X MBps 的网络传输速度。如果我这样做,rsync -av dir nfs_server-eth1:/nfs_mount/TEST/我的网络传输速度至少为 2X MBps。我的 NFS 挂载选项是nfs rw,nodev,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountvers=3,mountproto=tcp.
底线:两种传输都通过相同的网络子网、相同的线路、相同的接口、读取相同的数据、写入相同的目录等。唯一不同的是,一个是通过 NFSv3,另一个是通过 rsync。
客户端是 Ubuntu 10.04,服务器是 Ubuntu 9.10。
为什么 rsync 快得多?如何使 NFS 匹配该速度?
谢谢
编辑:请注意我使用 rsync 写入 NFS 共享或 SSH 到 NFS 服务器并在本地写入。两次我都这样做rsync -av,从明确的目标目录开始。明天我将尝试使用普通副本。
Edit2(附加信息):文件大小范围为 1KB-15MB。文件已经被压缩,我试图进一步压缩它们但没有成功。我tar.gz从那个dir. 这是模式:
rsync -av dir /nfs_mount/TEST/ = 最慢的传输;rsync -av dir nfs_server-eth1:/nfs_mount/TEST/= …我正在运行一个流量密集的网站,其中包含大量动态内容,主要是用户生成的。
该服务器是专用服务器,共有 4 个 Intel(R) Xeon(R) CPU X3210 @ 2.13GHz 处理器。我需要知道 ServerLimit 和 MaxClients apache 指令的最佳值,考虑到服务器有 4GB 的 RAM 并且 MySQL 数据库在单独的服务器上运行。该面板是带有 CentOS 的 DirectAdmin。
下面是我当前的指令,但在超过 5k 用户的高峰时段,注意到一个重要的延迟 - 这不完全是 MySQL 的错,因为页面似乎生成得很快(我实现了一个页面生成时间计数器),但是有很长的时间连接延迟,直到页面开始响应并发送到浏览器。
<IfModule prefork.c>
StartServers 800
MinSpareServers 20
MaxSpareServers 60
ServerLimit 900
MaxClients 900
MaxRequestsPerChild 2000
</IfModule>
Timeout 90
KeepAlive On
KeepAliveTimeout 5
Run Code Online (Sandbox Code Playgroud)
我应该提到使用 top 命令监控服务器,CPU 使用率在高峰时段永远不会超过 20% ~ 30%。MySQL 服务器当时也有 30~50% 的使用率,我一直在努力修复慢查询,但这是一个不同的问题。我知道这不是数据库瓶颈,因为静态页面在高峰时段也需要很长时间才能加载。
任何优化这些值的提示将不胜感激,谢谢。
MySQL 的哪些配置选项提供了最大的速度改进?
我想知道实际的配置文件改进、表类型、硬件设置、复制等。除了查询结构和表结构(这些很容易在网站和 Stack Overflow 上找到)。诸如查询缓存设置之类的东西是否为您提供了最快的速度?驱动器怎么样?将它放在外部 RAID 还是内部 RAID 上更好?复制是否为您提供了更好的性能,尤其是读取大型查询?
您还进行了哪些其他设置/更改来提高 MySQL 的性能?
注意:我意识到这些非常依赖于使用(即,小型网站与数据仓库),但我认为我们大多数人可能在各种站点/系统上工作,因此了解可以应用于不同站点/系统的各种技术是很好的情况。另外,我认为一些技术可以在情况之间转移。
我有两台运行 CentOS 6.5 的 Dell R515 服务器,其中一个 Broadcom NIC 直接连接到另一个。我每天晚上使用直接链接通过 ssh 使用 rsync 将备份从成对的主服务器推送到辅助服务器。监控流量,我看到大约 2MBps 的吞吐量,这远低于我对千兆端口的预期。我已将两侧的 MTU 设置为 9000,但这似乎没有任何改变。
是否有一组推荐的设置和优化可以使我达到最大可用吞吐量?此外,由于我在 ssh(或可能只是 NFS)上使用 rsync 来复制数百万个文件(~6Tb 的小文件 - 一个巨大的 Zimbra 邮件存储),我正在寻找的优化可能需要针对我的特定用例更具体.
我在双方都使用 ext4,如果这很重要
谢谢
编辑:我使用了以下rsync选项,结果非常相似:
rsync -rtvu --delete source_folder/ destination_folder/
rsync -avHK --delete --backup --backup-dir=$BACKUPDIR source_folder/ destination_folder/
目前,当使用cpNFS 导出时,我正在查看相同级别的糟糕性能,通过相同的直接电缆链接。
EDIT2:完成同步后,我可以运行iperf并发现性能大约为 990Mbits/sec,缓慢是由于使用的实际数据集。
在我工作的一家公司,我们有一种叫做“播放列表”的东西,它是每个约 100-300 字节的小文件。他们大约有一百万。其中每小时大约有 100,000 次更换。这些播放列表需要每小时上传到不同大陆的 10 个其他远程服务器,理想情况下需要在 2 分钟内快速上传。在 master 上删除的文件也会在所有副本上删除,这一点非常重要。我们目前使用 Linux 作为我们的基础设施。
我正在考虑尝试使用 -W 选项进行 rsync 复制整个文件而不比较内容。我还没有尝试过,但也许对 rsync 有更多经验的人可以告诉我这是否是一个可行的选择?
还有哪些值得考虑的选择?
更新:我选择了 lsyncd 选项作为答案,但这只是因为它是最受欢迎的。其他建议的替代方案也以它们自己的方式有效。
我知道做一个dd if=/dev/hda of=/dev/hdb深硬盘复制。我听说人们可以通过使用该bs选项增加一次读取和写入的字节数(默认值:512)来加快进程。
我的问题是:
什么决定了从硬盘驱动器复制的理想字节大小?
和
为什么这决定了理想的字节大小?
你好,
我正在编写一些脚本来处理来自各种照片网站的图像。现在我将所有这些数据存储在同一目录中的单个文本文件中。
该目录可通过网络访问。最终用户调用 Web 服务,该服务返回用户所需文件的路径。
我想知道将所有这些文件放在同一目录中会在哪个阶段看到性能影响?(如有)
我希望设置一个无 cookie 域,旨在为 Web 应用程序提供静态内容,类似于堆栈交换站点使用的http://sstatic.net/站点。
我的问题是,对于这样的域,我可以对 IIS 7.5 设置进行哪些优化?例如,除了提供静态内容之外,它永远不会负责任何事情,那么禁用 ASP.NET 集成是否是该站点的一个好举措?
非常欢迎有关使用 IIS 7.5 设置此类站点的任何建议或参考。
编辑
澄清一下,这不是服务器上唯一的站点,因此建议的优化应该针对站点级别,而不是服务器级别的配置。
这个问题是从Stack Overflow转发的根据评论中的建议发布的,为重复道歉。
问题 1:随着数据库表的大小变大,我如何调整 MySQL 以提高 LOAD DATA INFILE 调用的速度?
问题 2:使用一组计算机加载不同的 csv 文件,是提高性能还是杀死它?(这是我明天使用加载数据和批量插入的基准测试任务)
我们正在为图像搜索尝试不同的特征检测器和聚类参数组合,因此我们需要能够及时构建大型数据库。
这台机器有 256 gig 的 ram,如果有办法通过分发数据库来改善创建时间,还有另外 2 台具有相同数量的 ram 的机器吗?
表架构看起来像
+---------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+------------------+------+-----+---------+----------------+
| match_index | int(10) unsigned | NO | PRI | NULL | |
| cluster_index | int(10) unsigned | NO | PRI | NULL | |
| id | int(11) | NO | …Run Code Online (Sandbox Code Playgroud) 关于在具有 512m RAM 的 VPS 上优化 apache/mysql 服务器的问题。在正常负载下一切都运行得很快,没有连接延迟。但是,当我们遇到流量大的日子(50k+ 次访问)时,网站会爬行并且需要 30 秒以上才能从 apache 获取内容。
该站点在 Expression Engine (CMS)(在 PHP 中)上运行,我遵循了他们的重载优化指南。我已经在谷歌上搜索并跟踪了很多 apache 并幸运地找到了它现在的位置,但我需要获得恒定的响应时间。
我认为这与此处的“优化低内存”问题不同,因为我有足够的 RAM(对于我正在尝试做的事情),我只需要让服务器在重负载下不阻塞。
有什么建议吗?
optimization ×10
linux ×3
mysql ×3
rsync ×3
apache-2.2 ×2
performance ×2
clone ×1
files ×1
hard-drive ×1
iis ×1
iis-7 ×1
networking ×1
nfs ×1
ubuntu ×1
vps ×1
web-server ×1
web-services ×1
yslow ×1