我测量了从我的服务器(使用pingdom服务)由nginx切断的静态图像文件的加载速度。 服务器通常应该在几秒钟内处理这个请求。 我的服务器位于达拉斯,TX。 当我使用pingdom达拉斯服务器时,需要200ms来加载文件。 这包括DNSparsing和数据传输。 很显然,如果转移时间较长,则需要较长的时间。 但令人惊讶的是,这个数值在纽约为800ms,在阿姆斯特丹为1.5s。 从服务器到客户机的数据传输距离的作用是显而易见的,没有任何东西与我的服务器性能相关。 但是,当我查看谷歌和冰等主要网站的差异, 差距只有50%(例如美国为200ms,欧洲为300s)。 服务器到服务器的远程请求有什么需要改进吗?
只是想知道,你有没有做任何有用的RAM磁盘在生产? 我想知道,他们所提供的业绩收益是否可能超过了他们在特定情况下的临时性。 我只用过一次,而不是performance。 当我在服务器上需要一些可写入的磁盘空间来显示硬盘错误时 – 它给我提供了足够的空间来安装3ware RAID实用程序来识别不友好的磁盘。 你在生产中如何使用RAM磁盘?
我试图确定在同一主机上运行的两台Xen虚拟机(客户端和服务器)之间的nfs性能差的原因。 具体来说,根据两台虚拟机之间测得的networking连接速度,以及在服务器上直接读取文件的测量速度,我可以顺序读取客户端上1GB文件的速度远低于预期的速度。 虚拟机运行Ubuntu 9.04,服务器使用nfs-kernel-server软件包。 根据各种NFS调优资源,更改nfsd线程数(在我的情况下是内核线程)会影响性能。 通常这个build议是根据在重用服务器上的默认值8来增加的。 我在我目前的configuration中find: RPCNFSDCOUNT=8 :(默认值):13.5-30秒,在客户端捕获一个1GB的文件,这样35-80MB /秒 RPCNFSDCOUNT=16 :18s RPCNFSDCOUNT=16文件60MB / s RPCNFSDCOUNT=1 :8-9秒来RPCNFSDCOUNT=1文件(!!?!)125MB / s RPCNFSDCOUNT=2 :87s RPCNFSDCOUNT=2文件12MB /秒 我应该提到,我要导出的文件位于使用Xen的PCI-passthrough安装在服务器上的RevoDrive SSD; 在服务器上,我可以在几秒钟内(> 250MB /秒)捕获文件。 每次testing之前,我都会在客户端上放置caching。 我真的不想离开只有一个线程configuration的服务器,因为我猜测,有多个客户端时不会工作,但我可能会误解如何工作。 我重复了几次testing(改变两者之间的服务器configuration),结果相当一致。 所以我的问题是: 为什么1线程的性能最好? 我试过改变的其他一些东西,几乎没有影响: 将/ proc / sys / net / ipv4 / ipfrag_low_thresh和/ proc / sys / net / ipv4 / ipfrag_high_thresh的值从默认值192K增加到512K,1M 将/ proc […]
我在AWS EC2主机上的Docker容器中运行了Tomcat v9实例。 它在大多数情况下都是完美的,并且会在一段时间内非常缓慢地提供资源。 什么是缓慢服务,什么是“慢”? 我正在讨论任何WAR之外的纯静态文件 ,而且更令人讨厌的是, servlet响应 。 我目睹了5到12个 服务器的大约300到400KB的资源,他们通常(95%的时间)在〜300ms内到达。 以下是Chrome的“ networking”标签告诉我有关这些不良资源传输的示例: 31.02KB在12.02s 在5.37s中为278KB 我不知道是什么原因造成的。 我已经读了很multithreading,并尝试了很多configuration,但仍然不明白是怎么回事。 从我的VPC 正如@Tim所build议的那样,我试图将客户端放入我的AWS VPC中,以排除networking延迟和带宽问题。 在这个设置中,我得到的答案“慢得多”,最less600毫秒的 内容下载时间,在“外部世界”有时只有200 毫秒 。 我仍然注意到对我来说是一个缓慢的高峰,但是最less的“正常”下载时间不过是几十倍,而最多只能达到2.5s左右。 响应大小| 319 KB —————————— 等待(TTFB)| 99.00毫秒 内容下载| 2.81秒 “等待”时间与预期相同,因为它表示我的servlet在开始响应之前处理请求的时间。 我的环境(S) 我用以下环境configuration复制了这种现象: 在AWS Linux AMI t2.medium上 Tomcat v9 不带 Docker Tomcat v9 w / Docker Tomcat v8.5 w / Docker Tomcat […]
我在Linux上使用ZFS,并且遇到了一个相当奇怪的症状,即当我向系统添加更多磁盘时,每个驱动器写入的速度降低,从而有效地否定了顺序写入性能的附加主轴。 这些磁盘通过SAS磁盘架上的HBA(LSI 9300-8E)连接到主机 在下面的testing中,我在IO Zone iozone -i 0 -s 10000000 -r 1024 -t 10上运行以下命令 以下是我的testing结果: 在我的第一个testing中,我创build了一个包含12个磁盘的镜像,它显示了每个磁盘的预计写入性能,每秒大约100 MB / s。 zpool create -o ashift = 12 -f PoolA镜像S1_D0 S2_D0镜像S1_D1 S2_D1镜像 S1_D2 S2_D2镜像S1_D3 S2_D3镜像S1_D4 S2_D4镜像S1_D5 S2_D5 容量操作带宽 池分配空闲读写写读写 ———- —– —– —– —– —– —– 池A 3.60G 10.9T 0 5.06K 0 638M 镜子612M 1.81T 0 863 0 […]
我有一台运行两台虚拟机的VMWare ESXi 4服务器。 主机服务器是具有8GB RAM和RAID-5 SATA-IIarrays的四核AMD Phenom II。 Debian虚拟机是带有最新更新的Debian Lenny – x64版本的基本系统只安装在最上面的samba(即没有GUI,非常精简)安装。 文件系统是XFS。 Windows VM是具有所有最新更新的Windows 2008 x86企业版。 我已经configuration了两个虚拟机使用1个vCPU,并允许他们有2 GB的RAM。 我多次复制一个3 GB的文件到每个文件并logging时间。 莱尼:2分35平均 Windows:45秒平均 有没有人有任何提示让Debian系统匹配与Windows相同的速度? Windows速度是3.5倍。 他们都使用相同的硬件,所以令人费解的是,Debian机器非常慢 – 我想这可能是samba,但我不确定。 谢谢,马克。 更新:客户端操作系统是Windows 7 UPDATE2:我只是在一台Windows 2003虚拟机上进行了相同的testing,分配了相同的资源,平均时间为49秒,比Win2008慢了一点,但是Debian Lenny仍然比较慢。
我们在Ubuntu 9.10 x64 xlarge Amazon EC2实例上运行LAMP + memcached。 这台服务器每秒处理几百个请求,其中大约60%是静态的,剩下的都以某种方式与mysql和/或memcached交互。 该服务器已经遭受了两个可能相关的性能问题,并且已经certificate难以诊断。 除非另有说明,否则以下所有统计数据均与CloudWatch,munin或vmstat / iostat / top收集在一起。 第一个问题是每隔几分钟就会发生一次高度的爱荷华州经常发生的尖峰,在此期间,大多数apache进程都会在所有未挂起的情况下同时处理约10-30秒。 在此期间没有增加的磁盘或networking负载,磁盘队列保持低电平,不会进行交换等。 更严重的是,在高峰时段,服务器有时突然出现性能急剧下降的情况,服务请求数量减less了1/3。 一旦开始,这个性能下降可以持续2到8小时,然后再突然恢复到全部性能。 当发生这种情况时,就好像系统停止了任何事情。 CPU利用率,磁盘负载和networking负载(由CloudWatch报告)均按比例下降,但没有磁盘争用。 磁盘队列和吞吐量都下降,并且始终低于最大值,特别是在这些下降过程中。 编辑:这个问题已经解决。 Apache耗尽了工作进程,出于某种原因决定这是完全崩溃性能的一个很好的理由,即使那些工作正常的进程也是如此。 networking读取是个例外,它保持与以前一样高,表示服务器仍然像以前一样以高容量被访问。 如果我们尝试在发生这种情况时自己联系服务器,则服务器速度非常慢,并且通常会在请求被服务之前断开连接。 需要注意的是,无论内存使用率还是CPU利用率,在任何时候都不是特别高的,无论性能是否正在下降:CPU%很less超过10%,磁盘没有满或拥塞。 我们还没有能够收集这些下跌期间掉期performance的数据,但正在尝试这样做。 事实上,我们对可能引起这些神秘问题的想法不甚了解,并且越来越担心这可能是EC2本身的一个问题(或称错误)。 事实上,当我们的stream量达到峰值时,总是出现大量的跌落事件(尽pipe这并不意味着服务器已经接近最大可用资源)并不是简单的巧合。 所有MySQL数据库和日志都托pipe在EBS卷上,所有静态内容都托pipe在单独的不同EBS卷上。 Apache服务每秒160-240个请求,MySQL 180-200每秒查询,caching查询速度约为0%,memcached命中率约为90%。 平均负载平均在3左右。禁用Apache访问日志logging以最小化磁盘访问。
我的公司正在推出一个新的网站,在很短的窗口内可能有大量的访问者(预计在2分钟内大约有14k人)。 所以,我正在检查我们的configuration,而我现在最大的问题是使用保持活动的单节点HTTP前端。 前端在CentOS 5.4上运行lighttpd 1.4。 一些假设: 浏览器通常会打开6个并行TCP连接来保持活动状态 浏览器将保持连接处于打开状态,直到达到超时,即使该选项卡已closures(在FF中观察,在每个浏览器上可能都不是这样) 在服务器端,每个连接都会消耗内核的〜150K的内存(我使用conntrack并且想保留它,估计是否正确?) 我们所有的服务器都托pipe在东海岸。 来自拉斯维加斯的服务器的RTT大约是80ms。 具有保持活动的主页使用约25个TCP连接和1500个数据包。 没有保持活跃,这个数字上升到约210个TCP连接和超过3200个数据包。 那么,6 * 14000 = 84,000个TCP连接。 84,000 * 150KB〜= 12GB的内存。 这里是问题:1.我没有在前端可用的内存量。 2. lighttpd 1.4不太适合用这个连接来pipe理。 它伤害的命中/很多。 但是另一方面,如果我停用keepalive,我担心80ms RTT。 我将用一个辅助lighttpd减轻CDN和辅助wwwlogging中的一些问题。 但辩论涉及保持活力的特征。 我想把它关掉,但是我担心页面打开时间的影响会很高(高RTT和两倍的数据包)。 一旦完成了内容检索,我们就会有很多浏览网站的Ajax请求,这些请求通常适用于单个TCP连接。 但我不确定浏览器会释放其他连接,只保持一个打开。 我知道有很多讨论关于保持活力消耗很多资源。 我同意这一点,但考虑到假设和情况(一半的用户在80毫秒到100毫秒之间的RTT),你认为停用它是明智的吗? 作为一个侧面的问题:你知道我在哪里可以find关于内核连接大小和conntrack大小的信息? (printf size_of(sk_buff)除外)。 —编辑:一些testing结果我configurationconntrack接受500k连接(考虑到内存占用,它不应该超过200MB),并启动abtesting。 ab -n 20000 -c 20000 -k http://website.com/banner.jpg 从我在tcpdump中看到的,ab在执行GET之前build立所有连接。 所以我知道这些20k连接消耗了多less内存。 slabtop返回 OBJS ACTIVE USE OBJ SIZE […]
我有一个NFS3服务器与多个客户端。 每个客户端都依次读取不同的大文件,性能非常差。 以下是我在iostat服务器上观察文件所在磁盘的情况: 设备:rrqm / s wrqm / sr / sw / s rmb / s wmb / s avgrq-sz avgqu-sz await svctm%util sdX 24.33 0.00 712.67 0.00 18.41 0.00 52.91 11.95 16.91 1.40 100.00 正如你所看到的, %util是100%。 同时,I / O总吞吐量( rMB/s+wMB/s )约为18MB / s,比磁盘速度慢10-20倍。 这和rMB/s与r/s的比率,导致我得出这样的结论:不是一次读取每个文件的大块,NFS最终以小块读取文件,在不同文件之间大量交织块。 这反过来导致大量的磁盘查找,性能下降。 你会说证据certificate这个结论是正确的吗? 你会推荐什么来解决这个问题? 我可以更改阅读应用程序,并可以调整服务器和客户端上的NFS设置。 我使用内核2.6.18的RedHat 5.6, 我相信限制rsize到32KB(我很乐意在这方面被certificate是错误的)。 编辑:当只有一个客户端读取单个文件时,情况如何: 设备:rrqm / […]
我有一个multithreading软件,在最新的ubuntu服务器,redhat企业版和CentOS下以不同的速度运行,所有这些都安装在完全相同的服务器上进行比较。 Ubuntu服务器最慢,其次是CentOS,然后是Redhat企业。 差距是10-20%。 centOS和redhat之间的区别可能会被更新的gcc版本所取代,但至less在最后两个操作系统中使用了相同版本的gcc。 我在Ubuntu下运行的结果是,虽然程序使用了13个内核,但是“top”报告的CPU总数大约是1220%,而在redhat(和centOS)上是1300% 有人有解释吗? 我更喜欢和Ubuntu一起工作(它是免费的),但是我承受不了这个速度慢的问题。 我尝试了其他multithreading的基准,这似乎也表明,Ubuntu的速度有点慢 – 在同一个下载的可执行文件,本地编译。