Ubuntu Linux cron(Vixie cron?)是否支持为其作业设置超时? 具体来说,这个过程会在X秒后被杀死,除非到那时成功完成。 由于networking连接和各种问题,我有一些情况下挂起任务。 除非你手动清理并杀死它们,否则这个过程将永远悬挂下去。
我正在使用powercli脚本来循环访问环境中的每个数据存储,并回收精简configuration的LUN上的空间。 环境中的所有LUN均为Dell Equal Logic。 vCenter版本: 5.5.0_1750787 ESXi版本: Dell 5.5-1331820(A01) 我遇到的问题是,在脚本中执行unmap命令之后的恰好30分钟,我得到以下错误: 来自PowerCLI: Message: An error occurred while communicating with the remote host: InnerText: At \\SOMEIP\Share\folder\vmware_unmap_datastore.ps1:96 char:9 + $RETVAL = $ESXCLI.storage.vmfs.unmap(200, $ds.Name, $null) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CatagoryInfo : OperationsStopped: (:) [], HostCommunication + FullyQualifiedErrorId : VMware.VimAutomation.ViCore.Types.V1.ErrorHandling.HostCommunication 来自:ESXi主机vpxa.log: ==> vpxa.log <== 2014-06-30T14:39:51.907Z [7265EB70 error 'vpxavpxaVmomi' opID=60e7b2a5-11] [VpxaClientAdapter::InvokeCommon] Got […]
我们大部分开发工作的Solaris机器都有一个恼人的SSH会话超时习惯。 无论客户端是我的Ubuntu桌面,我的Solaris桌面还是我的Windows桌面(putty); 共同的因素是大型的Solaris机器。 有什么我可以做的,以阻止这种情况发生? 当你rest午餐时,这是很烦人的,而terminal会话你已经打开并且configuration得很精致,所以你需要把它们全部杀死,重新build立所有的上下文。
在本地开发机器上, 我有一个像这样的nginx反向代理 : server { listen 80; server_name myvirtualhost1.local; location / { proxy_pass http://127.0.0.1:8080; } server { listen 80; server_name myvirtualhost2.local; location / { proxy_pass http://127.0.0.1:9090; } 然而,如果我debugging我的应用程序,响应可能会延迟无限的时间,但30秒后,我得到: 504 Gateway Time-out 作为回应。 我如何禁用超时,让我的反向代理永远等待响应? 我喜欢这个设置是全球化的,所以我不必为每个代理设置它。
我已经开始使用Nginx作为提供某种服务的一组服务器的反向代理。 这个服务有时可能相当慢(它运行在Java上,而且JVM有时会陷入“完全垃圾回收”中,可能需要几秒钟),所以我把proxy_connect_timeout设置为2秒,这将给Nginx足够的时间弄清楚服务停留在GC上,不会及时响应,而且应该将请求传递给另一台服务器。 我还设置了proxy_read_timeout来防止反向代理被阻塞,如果服务本身需要太多时间来计算响应 – 再次,它应该将请求移动到另一个服务器,该服务器应该有足够的空间来返回一个及时的响应。 我已经运行了一些基准,我可以清楚地看到, proxy_connect_timeout正常工作,因为一些请求正好在连接超时指定的时间返回,因为服务被卡住,不接受传入的连接(服务使用Jetty作为embedded式servlet容器)。 proxy_read_timeout也可以工作,因为我可以看到在那里指定的超时之后返回的请求。 问题是我希望在proxy_read_timeout + proxy_connect_timeout之后看到一些超时,或者几乎是这个时间长度,如果服务被卡住,并且不会在Nginx尝试访问它时接受连接,但是在Nginx可以超时之前 -它被释放并开始处理,但速度太慢,Nginx会由于读取超时而中止。 我相信这个服务有这样的情况,但是在运行了几个基准之后,总共有几百万个请求 – 我没有看到一个返回超过proxy_read_timeout (这是更大的超时)的请求。 我会很感激这个问题的任何评论,虽然我认为这可能是由于Nginx的一个错误(我还没有看代码,所以这只是一个假设)超时计数器不会重置后连接是成功的,如果Nginx没有从上游服务器读取任何东西。
我目前有一个运行在mpm-prefork和mod_php上的带有512M真实/ 1024M可突发RAM(无交换)的OpenVZ VPS的Apache2服务器。 运行一些testing后,我发现Apache获得的最大进程大小是23M,所以我将MaxClients设置为25(23M x 25 = 575 MB,对我来说可以)。 我决定在我的服务器上运行一些负载testing,结果让我感到困惑。 我在我的台式机上使用ab ,要求wordpress博客的主页面。 当我用24个并发连接运行ab时,一切似乎都很好。 当然,CPU上升,可用RAM降低,每个请求的结果是大约2-3秒的响应时间。 但是如果我用25个并发连接(我的服务器限制)运行ab ,Apache几秒钟后就挂起了。 它开始处理请求,然后停止响应,CPU回到100%空闲, ab超时。 Apache日志说,它达到了MaxClients 。 当发生这种情况时,Apache保持自己locking了25个正在运行的进程(如果我检查服务器状态,它们都是“W”),并且只有在TimeOut设置进程开始死亡并且服务器再次开始响应之后(在我的情况下设置为45)。 我的问题是那个预期的行为? 为什么Apache在达到MaxClients时候就死了? 如果它与24个连接一起工作,不应该与25个工作,只是采取更多的时间来响应每个请求,其余的排队呢? 这听起来有点奇怪,任何运行ab孩子都可以通过设置与服务器MaxClients的并发连接来杀死一个web服务器。
我一整天都在读这本书,从我所收集的内容来看,TIME_WAIT是一个相对无害的状态。 即使太多,也应该是无害的。 但是,如果他们跳到我过去24小时看到的数字,那么真的是错的! [root@1 ~]# netstat -nat | awk '{print $6}' | sort | uniq -c | sort -n 1 established) 1 Foreign 12 CLOSE_WAIT 15 LISTEN 64 LAST_ACK 201 FIN_WAIT2 334 CLOSING 605 ESTABLISHED 816 SYN_RECV 981 FIN_WAIT1 26830 TIME_WAIT 这个数字从2万到3万+波动(到目前为止,我见过的最多的是32,000)。 令我担心的是,它们都是来自各种随机位置的不同IP地址。 现在这应该是(或应该是)DDoS攻击。 我知道这个事实,但我不会进入无聊的细节。 它起初是一个DDoS,它确实影响了我的服务器的性能几分钟。 之后,一切都恢复正常了。 我的服务器负载是正常的。 我的互联网stream量是正常的。 没有服务器资源正在被滥用。 我的网站加载正常。 我也有IPTABLES禁用。 这也有一个奇怪的问题。 每当我启用防火墙/ iptables,我的服务器开始遇到丢包。 […]
我使用prefork在Apache 2.2服务器(Ubuntu Server 10.04,8x2GHz,12Gb RAM)上运行PHP Web应用程序。 Apache每天获得大约100k-200k的请求,其中大约100-200个点击超时限制(大约每1000个点击一次),几乎所有其他的请求都在超时时间之外服务。 我能做些什么来找出为什么发生这种情况? 或者所有请求中的一小部分超时是否正常? 这是我迄今为止所做的: 可以看出,在超时限制和更合理的请求之间的请求很less。 目前超时限制被设置为50秒,之前被设置为300,并且在一些超时之后仍然是相同的情况,然后与其他请求相距甚远。 所有超时的请求都是AJAX请求,但其中绝大多数都是,所以也许更是巧合。 Apache的返回码是200 ,但超时限制显然已经达到了。 他们来自各种不同的知识产权。 我已经看过了那些超时的要求,如果我做了相同的要求,他们的要求也不会超过一秒钟。 我试图看看不同的资源,看看我能find原因,但没有运气。 总是有足够的可用内存(最less约3GB空闲),负载有时高达1.4,CPU利用率达到40%,但是当负载和CPU利用率很低时,很多超时会发生。 磁盘写入/读取在一天中几乎是不变的。 MySQL慢速查询日志中没有条目(设置为logging大于1秒的任何内容),没有请求使用这么多的数据库写入/读取。 蓝色是CPU使用率,最高峰值为40%,栗色负载峰值为1.4。 所以我们可以看到,即使在CPU利用率/负载较低的情况下,我们也会得到超时(十秒钟的峰值与CPU利用率相当,但这是另一个问题,我有更高的期望找出可能造成这种情况的原因)。 Apache错误日志中没有错误,我没有看到它达到200多个活动的Apache进程。 服务器设置: Timeout 50 KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 2 <IfModule mpm_prefork_module> ServerLimit 350 StartServers 20 MinSpareServers 75 MaxSpareServers 150 MaxClients 320 MaxRequestsPerChild 5000 </IfModule> 更新: 我更新到Ubuntu 12.04.1,以防万一,没有改变。 我添加了mod_reqtimeout的设置: RequestReadTimeout header=20-40,minrate=500 RequestReadTimeout […]
我已经为我的域设置了SSL,它从Apache的angular度来看是有效的。 问题是,通过HTTPS访问我的域有时会导致超时。 当它不起作用,通过HTTP访问我的网站需要一些时间,但它永远不会超时。 为什么HTTPS会发生这种情况,并且有办法控制HTTPS的超时时间吗? 我的configuration:CentOS 5上的Apache 2.2.11 NameVirtualHost *:443 <VirtualHost *:443> SuexecUserGroup foo DocumentRoot /home/mydomain/www/ ServerName example.com SSLEngine on SSLProtocol -all +TLSv1 +SSLv3 SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM SSLCertificateFile /path/example.com.com.crt SSLCertificateKeyFile /path/example.com.key SSLVerifyClient none SSLProxyVerify none SSLVerifyDepth 0 SSLProxyVerifyDepth 0 SSLProxyEngine off SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0 <Directory "/home/mydomain/www"> SSLRequireSSL AllowOverride all Options +FollowSymLinks +ExecCGI -Indexes […]
当浏览器获得给定主机名称(例如ip1和ip2)的多个Alogging时,有人能够指导我获取有关确切浏览器行为的信息,并且其中一个不可访问。 我对EXACT的细节感兴趣,比如(但不限于): 浏览器会从操作系统获得2个IP,还是只有一个? 浏览器会先尝试哪个ip(随机或总是第一个)? 现在,让我们说浏览器开始与失败的ip1 浏览器要多久才会尝试ip1? 如果用户在等待ip1时点击“停止”,然后点击刷新 哪个IP会浏览器试试? 当它超时会发生什么 – 它会开始尝试ip2或给出错误? (如果错误,当用户点击刷新时,浏览器将使用哪个ip)。 当用户点击刷新,任何浏览器将尝试新的DNS查找? 现在让我们假设浏览器首先尝试使用ip2。 对于下一个页面的请求,浏览器还会使用ip2,还是可能随机切换ips? 浏览器将IP保存在caching中多长时间? 当浏览器发送一个新的DNS请求,并获得SAME ips,它会继续使用相同的已知的工作IP,或该过程从头开始,它可能会尝试任何两个? 当然,这一切都可能依赖于浏览器,也可能在版本和平台之间有所不同,我很乐意拥有最多的细节。 这样做的目的 – 我试图了解什么时候用户将遇到什么时使用循环DNS基于使用和主机之一失败。 请不要问DNS负载平衡有多糟糕,请不要回答“不要这样做”,“这是一个坏主意”,“你需要心跳/代理/ BGP /不pipe”等等。