我们进行大部分开发的 Solaris 机器有一个令人讨厌的习惯,即超时 SSH 会话。不管客户端是我的 Ubuntu 桌面、我的 Solaris 桌面还是我的 Windows 桌面(腻子);共同因素是大型 Solaris 机器。
我能做些什么来阻止这种情况发生吗?当您午休时很烦人,并且您打开并精心配置的终端会话都被冻结了,因此您需要将它们全部杀死并重新建立您的所有上下文。
我目前有一个 Apache2 服务器,mpm-prefork它mod_php在 OpenVZ VPS 上运行,具有 512M 真实/1024M 可爆内存(无交换)。运行一些测试后,我发现 Apache 获得的最大进程大小是 23M,所以我设置MaxClients为 25(23M x 25 = 575 MB,对我来说还可以)。我决定在我的服务器上运行一些负载测试,结果让我感到困惑。
我ab在我的台式机上使用从 wordpress 博客请求主页。
当我运行ab24 个并发连接时,一切似乎都很好。当然,CPU 上升,空闲 RAM 下降,结果是每个请求的响应时间约为 2-3 秒。
但是如果我运行ab25 个并发连接(我的服务器限制),Apache 会在几秒钟后挂起。它开始处理请求,然后停止响应,CPU 回到 100% 空闲并ab超时。Apache 日志说它已达到MaxClients.
发生这种情况时,Apache 将自己锁定在 25 个正在运行的进程中(如果我检查服务器状态,它们都处于“W”状态)并且只有在TimeOut设置后进程开始死亡并且服务器再次开始响应(在我的情况下它已设置到 45)。
我的问题:这是预期的行为吗?为什么 Apache 到达时就死了MaxClients?如果它适用于 24 个连接,它不应该适用于 25 个连接,只是花更多的时间来响应每个请求并将其余的排队?
对我来说,任何一个正在运行的孩子ab都可以通过设置与服务器的并发连接来单独杀死一个网络服务器,这对我来说有点奇怪MaxClients。
我们的服务器遇到了严重的连接超时问题,所以我们用tcptrack跟踪tcp连接
我们发现,如果客户端开始连接到服务器,tcptrack 显示连接,但处于 SYN_SENT 状态,并且netstat -nat什么也不显示。(tcptrack & netstat 都在服务器上运行)
我ab在同一个内网中做了一个基准测试,到指定的网卡,它处理了 10000 个并发连接和 400000 个请求
ps:这不是每次都发生,但确实发生了很多
pps:有没有什么好的工具可以追踪tcp连接丢失的地方?
我正在评估一些 SSL 故障,并注意到当我使用curl其中一个故障站点时,我得到了curl: (56) SSL read: errno -5961; 但是,我对该错误的 google 查询没有显示 openssl 失败的原因。
问题: curl 失败是什么意思curl: (56) SSL read: errno -5961?
我包括以下完整curl...
[mpenning@mpenning-lnx ~]$ curl -vk https://192.0.2.168/
* About to connect() to 192.0.2.168 port 443 (#0)
* Trying 192.0.2.168... connected
* Connected to 192.0.2.168 (192.0.2.168) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* warning: ignoring value of ssl.verifyhost
* skipping SSL peer certificate verification
* SSL connection using TLS_RSA_WITH_AES_256_CBC_SHA …Run Code Online (Sandbox Code Playgroud) 我正在编写一个 powercli 脚本来循环遍历我们环境中的每个数据存储并回收精简配置的 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
Run Code Online (Sandbox Code Playgroud)
来自:ESXi 主机 vpxa.log:
==> vpxa.log <==
2014-06-30T14:39:51.907Z [7265EB70 error 'vpxavpxaVmomi' opID=60e7b2a5-11]
[VpxaClientAdapter::InvokeCommon] Got exception while invoking executeSoap
on vmodl.reflect.ManagedMethodExecuter:ha-managed-method-executer:
'Operation timed out', backtrace: …Run Code Online (Sandbox Code Playgroud) 我用satisfied和basic_auth保护了一个目录,但似乎验证没有存储在cookie中,一段时间后它被删除,似乎它是ip或基于某些东西。因此,如果我将网站打开半小时,我会登录一次和前夕,它不会重新请求验证。
有没有办法设置超时?即,访问 10 分钟后,如果单击文件必须再次登录?
我想使用curl向 URL 发送 HTTP HEAD 请求以验证它是否正常工作(服务器已启动并发送成功响应)。最后,我需要返回的最终 HTTP 响应代码和 URL(在遵循任何重定向之后)。最后,我需要设置一个硬超时(一段时间后调用将失败,无论请求curl位于何处)。
是否curl支持这一切?我需要使用哪些选项来完成此操作?
我有一台运行 ubuntu 10.04 服务器的机器。在使用curl和wget.
使用tcpdumpwireshark,我发现问题出在为设置连接而进行的DNS查找中:
例子
当我运行时:
wget www.site1.com
Run Code Online (Sandbox Code Playgroud)
我看到以下行为:
LOOKUP: AAAA www.site1.com
# => fail, no delay, site1 doesn't have an IPv6 AAAA record
LOOKUP: AAAA www.site1.com.mydomain.lan
# => fail, BIG DELAY, crazy domain doesn't exist
LOOKUP: A www.site1.com
# => success, no delay, resolves as expected (site1 has IPv4 A record)
CONNECTION PROCEEDS ...
Run Code Online (Sandbox Code Playgroud)
我的设置
我的服务器的 resolv.conf 看起来像这样:
nameserver 192.168.0.1 # my router
domain mydomain.lan # made up domain name, for my …Run Code Online (Sandbox Code Playgroud) 我正在运行一个包含大量编码的文件。处理 500 个用户大约需要 55 秒,但现在我必须处理 1000 个用户。默认超时是 60 秒,所以我必须增加 FastCGI 读取超时。
我在 StackOverflow 上发现了这个问题,说我必须增加,fastcgi_read_timeout但我不知道把它放在哪里fastcgi.conf。
我有一个 web 应用程序(Tomcat/Hibernate/DBCP 1.4),它运行对 MySQL 的查询,这对于特定的负载很有效,比如每秒 50 个查询。当我通过 HAProxy 路由相同的中等负载(仍然只使用一个数据库)时,我会失败,可能每 500 次查询就会失败。我的应用报告:
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet successfully received from the server was 196,898 milliseconds ago. The last packet sent successfully to the server was 0 milliseconds ago.
at sun.reflect.GeneratedConstructorAccessor210.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1117)
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3567)
...
Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:3017) …Run Code Online (Sandbox Code Playgroud) timeout ×10
curl ×2
nginx ×2
tcp ×2
504 ×1
apache-2.2 ×1
connection ×1
domain ×1
fastcgi ×1
gateway ×1
haproxy ×1
http ×1
http-headers ×1
jdbc ×1
mpm-prefork ×1
mysql ×1
openvz ×1
powercli ×1
powershell ×1
resolv.conf ×1
search ×1
solaris ×1
ssh ×1
ssl ×1
url ×1
vmware-esxi ×1