保证压力服务器上的SSH访问


11

前段时间我遇到了一个服务器的问题,其中Apache和Snort占用了100%的处理器,从而使sshd无法通过远程访问进行响应。我必须亲自去服务器上登录本地TTY,然后停止apache / snort。

我想知道是否有一种方法可以在CPU /内存负载为100%的情况下保证ssh连接。设置一个“不错”的优先级就足够了吗?

谢谢!

Answers:


10

除了使用带外方法之外,没有其他方法可以保证在满载的服务器上可以使用SSH。如果您的服务负载太大,甚至无法为您提供基本的SSH终端,那么您还有其他问题。

是的,renice给它一个较低的nice值可以提高重负载下的性能,但改用pam_security之类的东西(此处显示的示例)可以防止Apache /任何东西开始变得难以管理。


对。他正在寻求治疗症状,而不是真正的问题。
ewwhite

@ewwhite是的。治疗症状只会导致追尾,试图弄清楚为什么其他东西会因此折断。:)
内森·C

我正在寻找一种扑灭大火的方法,但是我当然会为其他守护程序设置限制。这是在紧急情况下,我需要保持安静,以知道我将始终使用sshd响应远程访问。
Renato Todorov 2013年

@RenatoTodorov在这种情况下,您无法治疗症状。如果您的系统有一个耗用了所有{CPU,RAM,套接字,PIDs}的失控进程,则您无法保证即使是一个nice'd罪魁祸首'也将以足够快的速度从CPU上启动,以确保您具有SSH访问权限(或就此而言)您拥有的任何控制台访问权限都可以使用)。在潜在的问题需要加以解决(资源-HOG)。消防系统管理不善。
voretaq13年

1
好吧,你们说服了我,只要我已经拥有iDRAC 7 Express,我就使用它。谢谢你们!
Renato Todorov

7

您的通用解决方案是带外管理工具,例如Dell iDRAC,IBM Remote Supervisor或HP iLO。它总是可以显示一个控制台(操作系统是否可以响应它取决于您的具体情况),并根据需要应用所需的电源状态。


好的,iDRAC是一个很好的选择,因为我正在使用Dell服务器,但是我在考虑一个更简单的解决方案,例如为sshd(包括它的衍生子代)保留CPU,为本地服务提供某种“ QoS”。
Renato Todorov

一些公司破产或贪婪:在这种情况下,sysrqd可以成为iDRAC,iLO,KVM的廉价替代品...
bgtvfr

0

我已经给sshd授予了实时特权,但是取得了一些成功,但是如果其中一个实时进程运行不当,这将不得不重新启动计算机。

因此,如果您想走这条路,请启动仅用于紧急情况的第二个ssh守护程序。:)


1
realtimesshd对我来说似乎很危险,特别是在端口22上(SSH扫描可能会成为DoS攻击-在备用端口上运行可以缓解这种情况,但我仍然会感到恐惧...)
voretaq7 2013年

如果我阻止来自Internet的访问,这不是问题,实际上我到该服务器的唯一路由是通过VPN。感谢您的建议!
Renato Todorov 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.