Articles of 高负载

信道容量不足1GBit

有一个caching服务器(Varnish):它根据请求从Amazon S3接收数据,将其保存一段时间并提供给客户端。 我们遇到了1GBit的通道容量不足的问题。 在4小时内的高峰负载完全扼杀通道。 服务器性能已经足够。 每天大约有4.5TB的数据传输。 每月累计超过100TB。 首先想到的只是添加一个1GBit的端口,并且平安地hibernate,直到2GBit是不够的(可能发生得很快),或者一个服务器无法处理它。 然后我们只需要添加新的caching服务器。 但是现在我们需要一个负载均衡器,它将在同一个URL上发送请求,并始终在一个服务器上(以避免同一个caching对象的多个副本)。 以下是问题: 平衡器是否需要一个等于caching服务器所有频带之和的频带? 如果平衡器中没有端口,我们该怎么办? 我们应该添加更多的平衡器或通过循环DNS解决问题? 这些问题的标准方法是什么? 任何人都可以build议托pipe公司,这可以解决这个问题? 我们对美国和欧洲市场感兴趣。

Rails / Passenger有后端感知的负载平衡器吗?

我们在许多应用程序服务器上安装了3个Ruby on Rails应用程序(A,B和C)。 我们的前端是HAProxy,后端是Apache + Phusion Passenger。 最初我们在每个应用程序服务器上都安装了3个Rails应用程序,但是这种设置很慢,因为HAProxy“不知道”给定的Rails应用程序在给定的支持服务器上是否“热”。 每个乘客实例都configuration为运行多达8个Rails应用程序实例。 考虑以下情况(简化): 8个同时请求应用程序A进来,HAProxy将所有这些请求都分配给第一个应用程序服务器,因为其他请求与其他请求“非常繁忙”。 乘客在此服务器上启动应用程序A的8个实例。 另一个请求来自应用程序B,它也被分派到第一个应用程序服务器,因为其他应用程序服务器仍然太忙。 现在,乘客必须closures应用程序A的一个实例并创build应用程序B的一个实例。 在每分钟请求的TON大的情况下,所有3个Rails应用程序在每个应用程序服务器上经常启动和停止, 这是很慢的 。 在完美的世界应用程序启动一次,处理大量的请求,而不必closures和重新启动。 这就是为什么我们必须在3个Rails应用程序之间划分应用程序服务器: 应用程序A在13台服务器上运行 应用程序B在5台服务器上运行 App C运行在2台服务器上。 问题是:是否有一个负载均衡器软件“知道”后端,知道并使用以下信息来平衡负载: 每个后端服务器当前每个应用程序有多less个活动/热点实例? 目前有多less个实例正在处理请求? 目前每分钟/小时给定应用程序的平均请求数是多less? 是否需要“减less”一个申请,并“增加”另一个申请? 我们的想法是安装所有应用程序的“同类”(相同)应用程序服务器的数量,以便我们可以添加新的服务器来增加所有应用程序的总体容量,但给定应用程序的容量取决于“非常聪明“的负载平衡器,可以控制每个应用程序的容量,而不必经常启动和停止应用程序。

ext3的文件系统性能调优选项

我有一个全新的服务器瓦特/ 48G RAM,我将用作数据库服务器。 我不希望磁盘读取出现问题,但我肯定希望针对写入密集型加载模式进行优化。 操作系统是RHEL 5.6,FS是ext3,我已经给/ etc / fstab添加了“noatime”和“data = writeback”,后一个选项帮助LA减less了很多。 我的下一个目标是尽可能优化pdflush过程。 我试图应用这里提到的调整,但无济于事。 大概这个信息是过时的。 我还有什么select? 我应该继续尝试pdflush还是更好的只是保持原样? 我倾向于降低dirty_ratio和dirty_background_ratio sysctl值来增加I / O平滑度,但是这些值似乎与性能无关,Munin在压力testing下的加载模式基本相同。 我是否也应该尝试不同的I / O调度程序? 我可以从写入密集型设置中获得大量RAM吗? 据我所知,磁盘I / O速度和延迟与内存无关,但是我的目标不是要更快速地向磁盘写入数据,而是为了提高系统稳定性并实现某种优雅的降级。 假设我有很好的备份,并且可以接受更多的数据一致性权衡,比如“data = writeback”。 谢谢。

快速ping不需要响应

我试图测量两台机器之间的单向延迟,我想使用ping从一台机器发送ICMP数据包到另一台机器。 数据包之间的间隔应该是1微秒(1us),我想发送100万个数据包(10 ^ 6),所以总共需要1秒发送数据包。 此外,我不关心其他机器的响应(我只会捕获在第二台机器上的数据包,并分析它们)。 现在我试过了: ping -I eth0 -c 1000000 -l 1000000 -f -i 0.000001 -b 255.255.255.255 我也试验了通过停用-l和-f选项。 当我为-l使用大的值时,我得到一个警告,说明rcvbuf不足以保持预加载。 我正在使用tcpdump来捕获从我的机器传出的数据包,也捕获到另一台机器的传入数据包。 问题在于,数据包之间的间隔在大多数情况下在5us到15us之间,并且稍大。 当我直接发送到像google这样的网站时,我遇到同样的问题: ping -I eth0 -c 1000000 -l 1000000 -f -i 0.000001 google.com 我想要的是: 从一台机器发送数据包到另一台 没有第一台机器等待任何回应 数据包间隔为1us 使用ping命令和它提供的选项(如果它们足够的话)会更好。 我有pipe理员权限。 更新 我的目标是测量不同电缆在数据包上引入的延迟。 所以我需要准确的数据包生成和捕获。 在硬件方面,我有适当的工具,但我没有得到我所期望的。 我相信问题是与软件。 对我来说,问题在于,当我使用-i选项时,ping似乎不像预期的那样工作。 当我使用-f -l 1000000 ,捕获每3us发送一次到5us。 当我指定-f或不指定这两者时,数据包每隔12ms产生一次。 一般来说,我认为我无法控制广播ping的数据包距离。

Ubuntu 10.04.3 LTS 64bit上100%的CPU负载

我试图解决这个问题两天没有成功。 该服务器是一个MySQL数据库服务器。 硬件: DELL Poweredge 1950,2x Intel Xeon四核E5345 @ 2.33GHz,16 Gb内存,2x 146Gb SAS(软件RAID1) 软件: Ubuntu 10.04.3 LTS,MySQL 5.1.41 问题:虽然MySQL没有使用,没有数据库运行,一切似乎没问题。 一旦我安装了一个数据库,就有理由把所有8个内核全部用低内存消耗 。 所以,你可以想象负荷平均值高(我第一次看到212负荷平均值)。 服务器不会变得没有响应,但浏览安装的项目时可以看到速度很慢。 附加信息: 所使用的数据库不超过24MB,并从资源较less的服务器和更大的数据库中移出。 所以这不是数据库/项目。 my.cnf也不是一个原因,因为我使用了默认的一个和我在另一个服务器上使用同一个分配的。有趣的是,mysql不closures任何进程并运行到max_connections的限制。 日志很安静。 空空如也。 在我怀疑Ubuntu 11.10服务器出现问题后,我切换到了Ubuntu版本。 这个工作好了一个小时后,我做了一个内核升级到3.0.1(它也使用内存) 我testing了磁盘速度,似乎没问题。 运行服务器上的更多输出: dstat -cndymlp -N total -D total 3: htop命令: 有没有人遇到同样的问题? 你能想到的任何修复?

是否可以使用多个负载平衡器将stream量redirect到我的应用程序服务器?

我是新来的负载平衡,我想知道是否有可能使用多个负载平衡器redirectstream量到我的应用程序服务器。 我真的不明白如何做到这一点。 一个域名不能与某个服务器的IP地址一一对应(在这个例子中是一个负载均衡器的IP地址)? 如果每个负载均衡服务器具有不同的IP,那么两个负载均衡器(或10个负载均衡器或50或100)是如何接收请求的?

为什么我的Web服务器在高负载下丢失TCP重置连接?

我有一个小的VPS设置与Nginx。 我想尽可能地挤出更多的性能,所以我一直在尝试优化和负载testing。 我使用Blitz.io通过获取一个小的静态文本文件进行负载testing,并运行到一个奇怪的问题,其中服务器似乎发送TCP重置,一旦同时连接的数量达到大约2000.我知道这是一个非常数量巨大,但是从使用htop服务器的CPU时间和内存还是有很多余地的,所以我想弄清楚这个问题的来源,看看能不能更进一步。 我在2GB的Linode VPS上运行Ubuntu 14.04 LTS(64位)。 我没有足够的声望直接发布此图表,因此这里是Blitz.io图表的链接: 以下是我已经做的尝试,找出问题的根源: nginxconfiguration值worker_rlimit_nofile被设置为8192 对于root和www-data用户(在nginx中运行的),在/etc/security/limits.conf中将nofile设置为64000 没有任何迹象表明/var/log/nginx.d/error.log有任何错误(通常,如果你正在运行文件描述符限制,nginx将打印错误消息这样说) 我有ufw设置,但没有速度限制规则。 ufw日志表明什么都没有被阻止,我已经尝试禁用ufw与相同的结果。 /var/log/kern.log中没有指示性错误 /var/log/syslog中没有指示性错误 我已经将以下值添加到/etc/sysctl.conf ,并将它们与sysctl -p一起加载,但没有任何效果: net.ipv4.tcp_max_syn_backlog = 1024 net.core.somaxconn = 1024 net.core.netdev_max_backlog = 2000 有任何想法吗? 编辑:我做了一个新的testing,斜坡到一个非常小的文件(只有3个字节)的3000个连接。 这里是Blitz.io图: 再次,根据闪电战所有这些错误是“TCP连接重置”错误。 这是Linode带宽图。 请记住,这是一个5分钟的平均值,所以低通滤波了一下(瞬时带宽可能要高得多),但仍然没有什么: 中央处理器: I / O: 接近testing结束时的htop : 我还捕获了一些使用tcpdump在一个不同的(但类似的)testing的stream量,开始捕获时,错误开始进入: sudo tcpdump -nSi eth0 -w /tmp/loadtest.pcap -s0 port 80 如果有人想看看这个文件(〜20MB),请点击这里: https : //drive.google.com/file/d/0B1NXWZBKQN6ETmg2SEFOZUsxV28/view ?usp […]

“高”IO率是否健康?

我在我的Linode上做了很多工作,目前托pipe一个网站,但是每隔一段时间(通常是每两个月左右一次),我会收到有关IO速率过高的警告(通常高于6000) 。 我得到的最后一个说:“你的Linode …在过去的2小时内已经超过了磁盘io速率的通知阈值(1000),平均值为6557.69”。 我有点担心,但是不知道该怎么想。 它健康吗? 看看我的服务器图,我从来没有看到任何特别的东西,下面是我的低stream量站点的两个“正常”的日子(请注意,两个主要的尖峰是我rsyncing备份服务器)。 还要注意的是,即使我当天两次rsynced,我没有得到警告通过这些。 图表如下: 我试过看iotop但每当我看看一切看起来很健康。 有任何想法吗?

Ubuntu负载平均峰值,但CPU闲置

我们有一个由第三方提供的云networking上的服务器。 我们正在运行Ubuntu 10.04服务器版。 问题发生在看似随机的时间,每天大约有一到三次。 上面的平均负载通常在2左右,服务器运行的很好,但是在这些随机的时间里,平均负载达到30-35,一切都停下来了。 无法访问我们的网站,无法在服务器上执行命令,无能为力。 如果您尚未login,甚至无法login。 我们能够看到高负荷平均值的唯一方法就是不断跑高点,以便在问题发生时已经运行。 似乎如果它已经在运行,它将继续正常工作,但是如果它没有运行,你将无法启动它。 进入这种状态时无法运行任何命令,这使我们很难诊断问题……再加上我们不认为自己是服务器专家。 对我来说奇怪的是,负载平均峰值如此之高,但处理器保持闲置,并有大量的可用内存。 再一次,我不是一个专家,但是我最基本的理解是,如果内存是可用的,处理器没有被刷新,那么不应该有进程在等待(很可能我错了)。 当我input这些内容时,我发现它已经开始飙升,并且在所有事情都被locking之前设法执行了一些命令。 输出如下: uname -a Linux <server name> 2.6.32-308-ec2 #16-Ubuntu SMP Thu Sep 16 14:28:38 UTC 2010 i686 GNU/Linux 最佳 top – 10:55:08 up 15:28, 4 users, load average: 12.29, 7.01, 3.89 Tasks: 313 total, 3 running, 308 sleeping, 0 stopped, 2 zombie Cpu(s): […]

高负载平均,高等待,dmesg raid错误信息(debian nfs服务器)

Debian 6在HP raid(2 CPU)上运行raid(2 * 1.5T RAID1 + 2 * 2T RAID1join了RAID0以生成3.5T),主要运行nfs&imapd(加上samba for windows share&local www预览网页)。 与本地ubuntu桌面客户端挂载$ HOME,通过nfs / smb访问imap&odd文件(例如video)的笔记本电脑; 通过家庭路由器/交换机连接100baseT或wifi uname -a Linux prole 2.6.32-5-686 #1 SMP Wed Jan 11 12:29:30 UTC 2012 i686 GNU/Linux 安装程序已经运行了好几个月,但是间歇性地变得很慢(桌面从服务器挂载$ HOME,或者在笔记本电脑上播放video的用户体验),现在一直如此糟糕,以至于我不得不深入研究以找出问题所在(! ) 服务器在低负载下似乎可以,例如(笔记本电脑)客户端(在本地磁盘上有$ HOME),连接到服务器的imapd和nfs,安装RAID以访问1个文件:顶部显示负载约0.1或更less,0等待 但是当(桌面)客户端安装$ HOME并启动用户KDE会话(所有访问服务器)时, 顶部显示例如 top – 13:41:17 up 3:43, 3 users, load average: 9.29, 9.55, […]