我们只是将我们的网站configuration到运行在Windows Server 2008上的新服务器。
我们的服务器相当强大,至强quadcore 3.0和25GB内存。 运行Mysql和Apache
问题是我们在CPU上运行得很高。 任务pipe理器通常在所有内核中显示90-> 100%的CPU最大值。 这个CPU都在从Apache处理httd。
运行
netstat -ano | find /c "80"
我们发现服务器总是在端口80上连接大约2200 – > 2700的连接。这是否是ddos攻击,我们如何重新configuration以优化服务器并阻止不必要的请求?
不pipe是不好还是不好,都取决于你的应用和具体情况。 通常当你使用netstat来统计连接时,你会这样做:
netstat -ano | grep ESTABLISHED | find /c "80" | wc -l
否则你将在TIME_WAIT中计数大量的连接,这通常是正常的。 您也可以对SYN连接进行计数,以检查SYN Flood攻击。
你可能会发现你的连接数量显着下降,只需计算ESTABLISHED。 例如,在我的一台服务器上,当前处于6 req / sec,总共有1000个连接,但只有5个处于ESTABLISHED状态(大部分在TIME_WAIT)。 但是,在另一台服务器上,有1000个连接,但在ESTABLISHED状态下有500个连接(20 req / sec,我怀疑某种KeepAlive设置在这里)。 从这些值你的数字不一定看起来不错。
您也可以使用扩展netstat命令来计算每个IP地址连接到服务器的连接数量:
netstat -an | grep ESTABLISHED | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
连接/ IP的“正常”数量取决于您的应用程序。 在我的情况下,平均是5-10,所以如果我看到更多的比我更详细地看。