Articles of 高负载

如何限制会话数量?

我需要一种方法来跟踪和限制networking会话到一个Web应用程序。 “会话”被粗略地定义为浏览所述networking应用的页面的单个用户。 我认为可以翻译成: 会话被定义为元组<clientIP,vHost>或者<clientIP,serverIP,serverPort>或<cookie,vHost> ,取决于层和可用数据 会话在用户将authentication数据发送到定义的loginURI后开始 会话在用户点击定义的注销URI后结束 如果在客户端请求最后一个对象之后指定的超时已到期,则会话结束 在达到指定的会话限制之后,下一个用户应该被定向到一个自定义错误页面。 我还需要一种方法来跟踪当前的会话数量,以便进行监控,并能够将监控服务器列入白名单(这将定期向Web应用程序发出查询)并免除限制。 我能与之合作的是: RadWare AppDirector ,其中Web应用程序具有已定义的自己的场,并且正在以反向代理模式运行 Apache 2.2 SLES 11 SP2 我宁愿不涉及一个额外的代理服务器,虽然会考虑如果没有其他选项。 所有这一切背后的基本原理是,上述的networking应用程序很容易被超载,并开始拒绝不请求的请求,使工作中的用户(通常)在进程中丢失了input数据。 通过在超负荷条件不太可能的情况下指定限制,我们希望创build一个明确的故障条件,如果负载可能高峰,用户将被告知以后返回。 编辑 :Web应用程序是第一层(呈现层,在Apache vHost中作为CGI代码实现)的三层实现,它非常简单,显然仅限于基本的error handling和请求应用程序服务器之间的负载平衡。 它不会在它运行的Web服务器上施加任何重要的负载 – 这就是为什么我们只是在AppDirector场中以故障转移模式(无负载平衡)运行它,这应该有点简化。 除此之外的一切对我们来说基本上是一个黑盒子 – 在数据层我们有一个MSSQL数据库,但几乎不可能从供应商那里得到关于表结构的任何有意义的信息。 应用程序服务器是封闭的,供应商使用了相当全面的实现框架,但似乎无法回答更简单的与操作相关的问题。

rsync ionice目的地

为了避免rsync挨饿系统和networking,我们在启动rsync时使用ionice并设置–bwlimit参数。 例如: ionice -c2 -n7 rsync -aH –bwlimit=30000 /foo [email protected]:/ 这确实有助于确保源服务器保持响应。 但是,目标服务器由于100%的磁盘IO而变得非常慢(如atop工具所见)。 是否有可能以某种方式在目标服务器上使用ionice ? 也许通过rsync -e选项? 如果可能,我宁愿不运行rsync守护进程。

在Linux Ubuntu上加载平淡的奇怪

在过去的几天里,我一直在试图理解我们基础架构中发生的奇怪事情,但是我一直无法想象它,所以我正在转向你们给我一些提示。 我一直在注意到Graphite,load_avg中的尖峰大约每2个小时发生一次致命的规律 – 这不是完全是2个小时,而是非常规律的。 我附上了我从Graphite拿来的截图 我一直在调查这一点 – 这种规律导致我认为这是某种cron工作或类似的东西,但没有在这些服务器上运行的cronjob – 实际上这些是在Rackspace云运行的虚拟机。 我正在寻找的是某种迹象可能会导致这些问题,以及如何进一步调查。 服务器相当闲置 – 这是一个临时环境,所以几乎没有stream量进入/应该没有负载。 这些都是4个虚拟核心虚拟机。 我所知道的是,我们每10秒钟就会收集一堆Graphite样本,但如果这是造成负载的原因,那么我认为它会持续高涨,而不是在不同的服务器上每隔2小时发生一次。 任何帮助如何调查这将不胜感激! 以下是一些来自app01的数据 – 这是上图中的第一个蓝色尖峰 – 我无法从数据中得出任何结论。 也不是说,每半小时(不是每2小时)发生的字节写数就是每30分钟一次的厨师客户端。 即使我已经做了这些,但是我也会尽力收集更多的数据,但是也不能从这些数据中得出任何结论。 加载 09:55:01 PM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked 10:05:01 PM 0 125 1.28 1.26 0.86 0 10:15:01 PM 0 125 0.71 1.08 0.98 0 10:25:01 PM 0 125 4.10 3.59 […]

nagios服务器的高负载 – nagios服务器的服务检查次数太多了?

我有一个运行Ubuntu 2.0GHz英特尔处理器,RAID10arrays和400 MB RAM的nagios服务器。 它监测8台主机上共42个服务,其中大部分使用check_http插件检查,甚至5分钟,每分钟一次。 最近在nagios服务器上的负载已经高于4,通常高达6个。服务器还运行cacti,每分钟收集6个主机的统计信息。 我想知道,像这样的硬件能够处理多less服务? 负载是如此之高,因为我正在推动硬件的限制,或者这个硬件应该能够处理42个服务检查加上仙人掌? 如果硬件不足,我应该增加更多的内存,更多的内核还是更快的内核? 其他人正在运行哪些硬件/服务检查?

CPU0被eth1中断吞噬

我有一个Ubuntu虚拟机,运行在基于Ubuntu的Xen XCP中。 它在nginx后面托pipe一个基于FCGI的自定义HTTP服务。 在ab负载下, 第一个CPU内核已经饱和,剩下的内存不足。 在/proc/interrupts我看到CPU0的中断数比其他任何内核都多。 他们大部分来自eth1 。 有什么我可以做的改善这个虚拟机的性能? 有没有一种平衡中断的方法? 血淋淋的细节: $ uname -a Linux MYHOST 2.6.38-15-virtual#59 -Ubuntu SMP Fri Apr 27 16:40:18 UTC 2012 i686 i686 i386 GNU / Linux $ lsb_release -a 没有LSB模块可用。 经销商ID:Ubuntu 说明:Ubuntu 11.04 发行date:11.04 代号:natty $ cat / proc / interrupts CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7 283:113720624 […]

高负载平均,适度的CPU利用率,几乎没有IO

对于在linux下很less使用cpu的高负载平均值,通常的解释是太多的IO(或更适当的不中断的睡眠 )。 我有一个运行在2核虚拟机上的服务,它performance出适度的CPU使用率(〜55-70%空闲),但高于2个负载平均值,同时经历IO接近零,适度的上下文切换以及不交换。 用ps轮询我从来没有在进程状态列中看到D 这个服务是ruby 1.9在独angular兽下运行的。 它连接到两个上游postgres数据库,提供非常快速的avg语句执行(〜0.5ms)。 该服务正在logging经过的请求持续时间,大约是在我们的性能testingnetworking中承受较高压力负载的情况下的两倍。 唯一一个看起来不重要的监控信号是平均负载(当然也包括平均响应时间),其他所有内容(cpu,内存,io,networking,cswitch,intr)都是标称和匹配的投影。 系统是Ubuntu 10.04.4 LTS“Lucid”。 uname是Linux dirsvc0 2.6.32-32-server #62-Ubuntu SMP Wed Apr 20 22:07:43 UTC 2011 x86_64 GNU/Linux 。 pipe理程序是VMWare ESX 5.1。 更新:更多信息按照@ewwhite的要求。 存储是映射到连接到NetApp的虚拟机主机上的NFS安装的虚拟磁盘设备。 我会指出,所有迹象表明,没有重大的磁盘IO发生。 该服务读取和写入networking套接字(〜200KB / s),并进行普通访问和错误logging(以约20KB / s的速率)。 vm主机有一对千兆位端口连接到两个机架顶部交换机,每个机架交换机都将四个千兆位端口连接到一个核心路由器,全部为铜缆。 每个vm主机都有24个(4×6)物理内核和150GB的内存,通常会运行大约30个同样大小的vm客户端,运行各种不同的服务。 在生产中,这些主机不会在内存上过度提交,只会在CPU上过度提交。 我会欢迎想法来解释高负荷。 以下是今天中午两小时窗口提取的sar数据: sar -q#加载平均值 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 12:05:01 PM 1 173 1.15 2.41 […]

在较低的CPU /内存使用情况下,Linux负载较高

我有一个很奇怪的情况,那就是我的CentOS 5.5盒子很高,但是CPU和内存很低: top – 20:41:38 up 42 days, 6:14, 2 users, load average: 19.79, 21.25, 18.87 Tasks: 254 total, 1 running, 253 sleeping, 0 stopped, 0 zombie Cpu(s): 3.8%us, 0.3%sy, 0.1%ni, 95.0%id, 0.6%wa, 0.0%hi, 0.1%si, 0.0%st Mem: 4035284k total, 4008084k used, 27200k free, 38748k buffers Swap: 4208928k total, 242576k used, 3966352k free, 1465008k cached free […]

ps aux挂在高CPU / IO与Java进程

我有一些与java进程和nrpe检查问题。 我们有一些进程有时在32核心系统上使用1000%的CPU。 该系统是非常敏感的,直到你做一个 ps aux 或者尝试在/ proc / pid中做任何事情 [[email protected] /proc/18679]# ls hangs.. 一个ps aux stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2819, …}) = 0 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2819, …}) = 0 stat("/dev/pts1", 0x7fffb8526f00) = -1 ENOENT (No such file or directory) stat("/dev/pts", {st_mode=S_IFDIR|0755, st_size=0, …}) = 0 readlink("/proc/15693/fd/2", "/dev/pts/1", 127) = 10 stat("/dev/pts/1", {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), …}) = 0 […]

使用nginx作为主要Web服务器的缺点?

我已经看到数以百万计的网站使用nginx作为代理networking服务器与Apache一起工作。 但是我已经看到很less的服务器只运行nginx作为它们的默认web服务器。 这种configuration的主要缺点是什么? 我可以看到一些: 无法使用每个目录configuration文件,如.htaccess所以每个configuration更改应该对主服务器configuration文件进行,并需要服务器重新加载。 但pecl htscanner可以弥补他们的PHP设置 mod_php对于nginx是不可用的,例如可以通过php-fpm进行补偿。 别人是什么? 为什么人们不放弃Apache并转向nginx或其他任何轻量级解决scheme? 可能是,有一些特殊的原因? 编辑:这个问题主要是关于使用LAMP堆栈。

请求频率下降时为什么响应时间会爆炸?

更正 :响应时间( %D )是μs而不是ms! 1 这并不能改变这种模式的怪异性,但这意味着它实际上不那么具有破坏性。 为什么响应时间与请求频率成反比? 在处理请求不太忙时,服务器不应该更快响应吗? 任何build议如何使Apache“利用”较less的负载? 这种模式是周期性的。 这意味着,如果展示次数低于每分钟200个请求(这是由于自然的用户活动)从深夜到清晨,就会显示出来。 这些请求是非常简单的发送less于1000个字符的JSON POST – 这个JSON被存储(附加到一个文本文件) – 就是这样。 答复只是“ – ”。 图中显示的数据是用Apache本身logging的: LogFormat "%{%Y-%m-%d+%H:%M:%S}t %k %D %I %O" performance CustomLog "/var/log/apache2/performance.log" performance