你用过那些LVS ,并讲述LVS各个模式的特点和区别? 【送二分】
dr模式用得比较多吧,这个模式效率最好。因为他的原理是把收到的包改了下hw地址就丢给交换机了
这样就造成两个大缺点
1是所有负载机器都要在同一个ip段才能响应,所以在idc上架的时候,为了方便扩容一开始就要预留好同ip段的ip,留ip是要钱的
2所有用户发过来的包交换机都要处理2次,加大了前端交换机的压力
3这种模式对收包少,回包多的应用(http常规应用)非常有效,但是如果是注册、登录之类(post大数据)的应用服务器,由于收包较多,lvs的服务器压力还是很大的(所以大量注册登录数据l的vs服务器的前面还是需要dns轮询来分流lvs服务器的),但是好歹把应用的计算压力给分担掉了
nat模式效率惨,原理和iptable做网关上网差不多,lvs服务器压力最大
最大的好处是只需要一个对外ip就可以了,内网ip随便配置,但是压力摆在那里,能配多少ip都么用
另外一个模式用的少也不怎么有兴趣了解
五 当LVS 超出它能承受最大的连接数了,你应做如何处理了? 【送五分】
六 一千万 并发,你有那些方案?【提示这些单用LVS 成受不起的,】【送五分】
这两题回答应该差不多
先用智能dsn负载到不同的lvs上
如果有钱可以在lvs前端上f5
智能dns——F5——LVS
三层负载分流,最后最大的压力其实还是在数据库上
第五题可以用淘宝优化过过得linux内核
其实主要就是改了内核编译的2个配置参数
八 IO 性能不足,你如何优调? 【系统优化题目】 【送三分】
简单的就是加硬件罗
raid卡加大缓存,用更快的硬盘
软件的话
磁盘写入用deadline,禁止文件系统的日志优化性能
oracle的话还尽量用裸磁盘做数据盘,不同业务还可以分开写到不同硬盘
如何 MySQL 优化 【应用优化题目】【提示 一定要按大并发】 【送三分】
数据库方面双主带多从,读写分离罗
改应用代码,把不常修改的数据全部读入memcache中(比如用户登录用的帐号数据),这样基本把mysql的读压力分担走
优化mysql语句,该用myiasm表的用myiasm表(比如不太太重要的用户帐号数据表),数据库设置concurrent_insert直接从表尾并发插入,这样可以有效降低大量注册与登录的锁竞争
十一 讲术 Memecahe 工作原理和优缺?【送二分】
memcache就是一个key-value的~~怎么说呢,nosql内存数据库?反正就是key-value形式把数据存放在内存的一个程序
优点速度快,部署方便
缺点吃内存,掉电就没数据了。
基本还是做mysql前端缓存或者存放诸如session之类丢掉后可以随时取回来的数据
大部分应用实现都需要修改代码,新项目随便弄,一开始设计好就行,旧项目得改代码,大型点的项目以前没上,现在我估计没人愿意去改代码上
十二 讲术CDN工作原理和优缺? 【送二分】
优点就是分流罗,可以有效分担静态资源的压力
最大缺点是各地数据同步需要一段时间,更新一个重要静态文件的话,生效时间急死人,而且价格也不便宜
十三 你如何监视服务器质量和网络质量?用个那些工具 及优缺点?【送二分】
nagios和cacti
cacti绘图漂亮,查看以往数据非常方便,但是报警功能弱
我觉得最大的缺点还是rrdtool上,cacti + rrdtool暂时没有把旧数据写到数据库的插件,导致做数据处理会很麻烦
取数据方便有snmp,能写各种脚本想要什么数据就有什么数据.
nagios报警强大,定义好报警脚本想短信猫就短信猫,想post短信平台就post短信平台
但是不适合查询以往数据,最大缺点不能像cacti那样一次行取多个数据进行记录、绘图,只能通过返回值确认是否故障。
一般都和cacti同时使用
sed /^[[:space:]]* $/d | sed /^$/d
egrep ‘xxx‘ a.log | grep -V ‘xxx‘|awk -F:‘{print $5}‘
iptables -t nat -A PREROUTING -d 192.168.16.1 -p tcp -dport 80 -j DNAT -to 192.168.16.1:8080
route add -net/host 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
#!/usr/bin/env python
i=0
n=input(‘please input‘)
while i<=n:
i+=1
print i*‘*‘
num=0
for x in range(1,101):
num = num+x
num +=x
print num
name = raw_input(‘please input your name:‘)
passwd = raw_input(‘please input your passwd:‘)
login = [name, passwd]
def li():
if login[0] == ‘admin‘ and login[1] == ‘123‘:
print ‘login success!‘
else:
print ‘login again!‘
name = raw_input(‘please input your name:‘)
passwd = raw_input(‘please input your passwd:‘)
li()
find / -name "*.log" -ctime +3 -exec rm -f {} \;
find . -size +100k -exec cp {} /tmp \;
sed ‘s:/user/local:/tmp:g‘ filename
BIOS启动引导(从mbr中装载启动管理器grub)----GRUB启动引导(装载kernel和initrd到内存)-----内核启动参数-sys init初始化
awk ‘{print $1}‘ access_log |sort |uniq -c|sort -nr|head -n 10
运维题目