您的位置:首页 > 运维架构 > Linux

Linux常用面试题4

2017-03-05 01:26 169 查看
查看进程名打开的tcp连接数
losf -i | grep java | grep -v LISTEN | wc -l

查看端口号或进程号打开的tcp连接数
netstat -ant | grep ESTABLISHED| grep 端口号 | wc -l
netstat -ant | grep ESTABLISHED| grep 进程号 | wc -l

1、用户刷接口,导致机器负载过高,怎么处理?
解决方法1:
通过iptables限制单个IP访问80端口的最大链接数

iptables -A INPUT -p tcp --dport 80 -s 192.168.1.1 -m connlimit -conlimit-above 5 -j REJECT
参考博客:http://blog.uinion.com/?p=272
解决方法2:
通过nginx_waf控制也可以

2、选择某个十分钟内的nginx access.log,得到以下数据
访问次数最多的10个ip,升序输出
NG_LOG='/usr/local/nginx/logs/access.log'
find ${NG_LOG} -mmin -10 | awk '{print $7}' | sort -rn | uniq -c | head -10

3、查看服务器网络连接状态
netstat -ant | awk '/^tcp/{++S[$NF]}END{for(a in S)print a,S[a]}'

4、查看服务器网络连接数
netstat -ant | grep ESTABLISHED | wc -l

5、了解DDOS攻击吗?现在又有哪些攻击类型?防范机理是怎样的?
DDoS攻击通过大量合法的请求占用大量网络资源,以达到瘫痪网络的目的。 这种攻击方式可分为以下几种:
通过使网络过载来干扰甚至阻断正常的网络通讯;
通过向服务器提交大量请求,使服务器超负荷;
阻断某一用户访问服务器;
阻断某服务与特定系统或个人的通讯。

防范
主机设置
所有的主机平台都有抵御DoS的设置,总结一下,基本的有几种:
关闭不必要的服务
限制同时打开的Syn半连接数目
缩短Syn半连接的time out 时间
及时更新系统补丁
安装专业抗DDOS防火墙
增强操作系统的TCP/IP栈、
把网站做成静态页面
升级主机服务器硬件
充足的网络带宽保证
尽量避免NAT的使用
采用高性能的网络设备

6、请你设计一个商城系统的整体架构。(写出架构思路即可)
注:不需要考虑服务器、网络设备数目假设你手头上资源充足,你需要提交网络架构图,每台机器的IP,每台机器上运行的关健软件、如何考虑安全高可用
前端Nginx,2-3个,Keepalived+VIP,可上HAProxy+LVS
后端Tomcat、PHP,运行业务Web,3-4个节点,Nginx Upstream多节点高可用,随时剔除故障节点
消息队列Redis集群,或者RabbitMQ集群,或者ActiveMQ集群
数据库集群高可用 MySQL主从、MySQL集群、MariaDB集群

7、以下是某台服务器IO情况,请大致解释各个参数的含及分析一下此台服务器的瓶颈,服务器遇到瓶颈怎么处理?
Linux 2.6.9-8.11.EVAL (ts3-150.ts.cn.tlan)

avg-cpu: %user %nice %sys %iowait %idle
12.01 0.00 2.15 2.30 83.54

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
hda 7.13 200.12 34.73 640119 111076
各个输出项目的含义如下:

avg-cpu段:
%user: 在用户级别运行所使用的CPU的百分比.
%nice: nice操作所使用的CPU的百分比.
%sys: 在系统级别(kernel)运行所使用CPU的百分比.
%iowait: CPU等待硬件I/O时,所占用CPU百分比.
%idle: CPU空闲时间的百分比.
Device段:
tps: 每秒钟发送到的I/O请求数.
Blk_read /s: 每秒读取的block数.
Blk_wrtn/s: 每秒写入的block数.
Blk_read: 读入的block总数.
Blk_wrtn: 写入的block总数.

服务器遇到的瓶颈处理手段
需要查一下是什么进程对磁盘进行操作。从而做出相应的处理

8、activemq和rabbitmq有什么区别?怎么选型?
activemq是java写的,遵循 jms规范,功能模块比较完善,自已如果想做一些调整还是可以

9、Nginx怎么保持会话连接,长时间保持会话连接有什么弊端?
1、可以用Keepalived的参数配置
2、Nginx里面配置也写明长连接
3、Linux内核参数也有这个相关配置
弊端:长时间保持会话连接没有什么意义,最多就是让客户端与服务端的数倨传输时的时间能简短一点点,不需要再重新发起tcp协议的三次握手而已,这种保持会话很容易被人通过cc或ddos攻击消耗进cpu或系统的文件打开数而导致服务无响应

10、Nginx是如何实现高并发的?
Nginx的异步非阻塞工作方式是利用的这点等待的时间。在需要等待的时候,这些进程就空闲出来待命了。因此表现为少数几个进程解决了大量的并发问题

11、如何添加缺省网关路由?
route add default gw ip地址

12、如何添加主机路由,IP192.168.1.11,网卡eth1
route add -host 192.168.1.11 dev eth1

13、如何将Linux本地80端口请求转发到8080端口
iptables -t nat -A PREROUTING -d 192.168.1.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1:8080

14、请写出用tcpdump抓取符合如下条件包的命令:(1)目标端口是80:,(2)来源IP或者是1.1.1.1,或者2.2.2.2(3)UDP包
tcpdump -nnv host 1.1.1.1 or 2.2.2.2 upd port 80

15、编写一个Nginx的access模块,要求准许192.168.3.29/24的机器访问,准许10.1.20.6/16这个网段的所有机器访问,准许34.26.157.0/24这个网段访问,队此之外的机器不准许访问
location /access {
allow 192.168.3.29/24;
allow 10.1.20.6/16;

allow 34.26.157.0/24;
deny all;

}

16、用netstat命令配合其他shell命令,按照来源IP统计下所有到80端口的ESTABLISHED状态链接个数,
列出对结果类似(第一列为连接数,第二列为IP)
22 202.165.123.2
35 202.165.123.2
69 202.165.123.2
netstat -anp |grep ESTABLISHED | grep '\b:22\b' | awk '{print $5}' | awk -F':' '{print $1}' | sort -rn | uniq -c
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux 常用 面试题