今天面试被问到了这个问题,想听听大家的想法。 首先我先说说我的回答:
网站变卡了,首先从网络端开始查询是否受到了 DD 的攻击.使用 nmon 工具查看当前的网卡网络流量信息。首先判断是否有被 DD 攻击。 如果流量正常则查看一下网络连接状态使用(netstat -ano) 查看是否有明显的大量连接数。来判断是否受到了 CC 攻击。(我理解的是 DD 就是发大量的数据包来把你的带宽占满,CC 攻击就是不停访问你大量占用 CPU 或者数据库查询的页面将服务器拖垮,如有误忘指正)
如果流量不是很大的话,连接数也不是很多的话,使用 Top 命令查看是否有 CPU 占用高的进程 ,比如说如果 Tomcat or nginx or Mysql 是否占用了很大的 CPU,查看是否有程序的死循环导致的 CPU 跑满. 查看当前 IO 是否很高,是否有大量的查询数据库。 (这里有问到如何去查询 IO 是否很高,我回答也是使用 nmon 的 d 菜单去看,不过似乎这个并不能精确到进程,忘大神指教)
还有就是用 free -m 查看当前内存占用率是多少,是不是程序有内存泄漏导致内存满了溢出?这样拖慢程序? (这个我没讲,有点小紧张忘了)
其中很多操作都是需要精确到命令。。我感觉我平时遇到这种问题都是土法子搞,因为毕竟不是大型生产环境直接重启服务或者 kill 掉了,我知道这个习惯不好,所以要改。
PS 题外话: 如果受到了攻击该怎么样?关服务器么。。。 另外如果受到了 CC 攻击导致 CPU 边高应该怎么办。。
抛砖,忘大神给出一二点建议和授予一点知识,若同在深圳我请你吃好吃的呀(一枚吃货的第一反映)。Orz
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.