好久没面试了,最近也总是在玩,面试前总是很紧张,忐忑的去了,途中在地铁里,人事打来电话不知道什么事,上了下邮件看面试约的时间是3:30估计到那也就不到3点。
去了首先开始做题
几个比较有价值的问题
1.从下面图中,你可以看到那些信息
当时面试官纠正我犯的一个错误就是:
我把10.0.0.1认为是当前用户的ip地址,这一条应该是上一个用户登录的地址。
但回来后我发现其实从w 输出的内容里,我们是可以看到当前用户的登录地址即为10.0.0.1,有很多时候,基础不扎实,就容易像我这样。
从下面的w输出的内容,我们也可以看到8time这个用户的登录时间为19:49
查看到的信息
1当前的登录用户为8time.
2.系统运行时间,登录的用户数
3.系统的负载
4.上一个用户登录的ip
2.数据库问题
1.有一个数据库有60列5000万行,请从锁的角度来说明,会不会影响数据库的性能,如果影响应该怎样解决。(偏题了)
1.首先可以协调程序,对数据库进行水平切分或垂直切分,然后分别存放在不同的数据库里。
2.使用mysql的主从的架构,采用读写分离的方式(读从库,写主库)。对多个从库采用集群的方式,来提高读的性能。
2.Mysql锁的一些知识总结:(未完成)
mysql锁是一个线程阻止其他线程去更新数据的一种方式
A对一个数据进行修改则B只能等待A修改完才能对数据进行修改。
锁的种类:
读锁:A发起一个test表发起一个读锁,则B也可以读到test的内容,但C想写则不能写;简单理解为排他写,(一个读锁后,其他的用户不可以写);读锁可以理解为一个表加了个门,其他人可以看见里面的内容,但不能进去修改,香港虚拟主机,只能看.
写锁:A发起一个test的写锁,则其他的用户则既不能读,也不能写。写锁相当于为一个表加一个保险柜,既不能看,又不能修改。
死锁:A对表test1发起一个写锁,B也对表test2发起一个写锁,如果此时,A需要访问test2表,则只能等待;如果此时B也要对test1进行操作,香港空间,则也只能等待;双方都在等待对方,则就产生了死锁
本地锁:A对test1表发起一个本地锁lcoktablestest1readlocal则B用户则只能在test1表的尾部进行数据的添加。
写的请求大于读的请求,如果同样都是在等待,那写锁则优先于读锁。
在日常的数据库管理中,不建议给普通用户lcok权限。
表锁:锁定一个表大多数引擎都支持
行锁:innodb支持
查看innodb行锁的状态的信息
S-shared共享锁允许对事务进行读
X-exclusive派他所允许对事务进行更新改变一个值
IS有意向S锁
IX有意向X锁
3.lvs+keepalived的一些细节
1.问题一:
当我们查看lvs+keepalived架构中,后端一台真实的web服务器上没有负载,通常你会从那些角度去排查呢。
1首先可以在lvs主上面查看使用ipvsadm-L-n–stat查看下lvs上面后端RS的状态,如果此时我们在RS里看不到后端那台真实的web服务器,其他的却正常,我们应该检查下keepalived的配置文件,比如端口是不是写错了、检查的方式是不是有问题、其他配置是不是有问题等。
3.检查后端web服务器的80端口是否正常开放。
4.如果上述都正常,那可能就是网络有问题了。解决方法暂时没遇到不好说。
问题二:
Lvs+keepalived中各自的功能是什么?
global_defs{
notification_email{
}
notification_email_fromAlexandre.Cassen@firewall.loc
smtp_connect_timeout30
}
vrrp_instanceVI_1{
authentication{
auth_pass8090
}
virtual_ipaddress{
}
}
connect_timeout10连接超时的时间
}
}
real_server10.0.10.5480{
weight100
TCP_CHECK{
connect_timeout10
nb_get_retry3
delay_before_retry3
connect_port80
}
}
}
浅析lvs跟keepalived的功能
为什么不是?
所以lvs+keepalived对后端RS的检测应该是keepalived的,有时间我会实验下。
谈一谈进程
什么是进程?
进程系统资源的集合?What?
Apache里有设置user跟group
当我们启动apache的时候,美国服务器,apache会使用root产生一个父进程,然后以apache里设置的user、group的用户去产生子进程。
这样做的原因是
在系统里小于1024的端口,只能由root打开,所以apache就采用这种一个父进程去打开这个80端口接受请求,然后将请求丢给apache的子进程去处理。
安全性上:php程序可以直接调用Linux的shell命令,夸张点来说,在网页里如果是root那用户,则直接可以通过相关的代码执行一个useradd命令。
Work模式跟perfork模式
没有什么可留恋,只有抑制不住的梦想,