面试总结

最近面试了几家公司,都是猎头推荐的,发现到了后面找工作很大一部分是猎头去推荐了,自己都不用去找什么了。这次面试中遇到了一个cto面试,感受还是挺多的,之前一直在外包工作,很多东西是没体会到。考虑东西也不全面,只是局限于眼前的看到的。这次的面试有2个问题觉得有必要记下。

一。 在遇到对外接口用户调用没有反应,该怎么分析问题,判断出错的原因。

       习惯了外包的思维,第一想到的是在代码加上日志,通过日志去追查问题。可是实际上有的问题不一定是我们代码的问题,大致上我们可以分为硬件,软件,环境。硬件方面有系统cpu,硬盘空间原因,在cup出现持续被占满的情况下,有可能我们的请求是响应很慢,cpu一直没有分片去处理这个任务,导致用户感知超时,没有响应。这种情况我们可以通过linux下的top命令来查看cpu的使用率,还可以通过观察前几名的进程,来分析是哪些进程一直占用的这cpu,然后通过jstat命令来查看内存的使用情况,命令详解http://blog.csdn.net/zhaozheng7758/article/details/8623549。确定cpu没有问题后,查看硬盘是否满载了,导致数据库或者其他文件无法写入。之前有一个项目就遇到过这个问题,数据库无法写入,所有数据库写的操作全部卡着了,查了好久没发现问题,最后发现是mysql挂载的文件空间写满了。通过du、df命令可以查看文件空间。再确定硬件没问题之后,我们在跟踪软件代码,分析代码中的是否有异常,看接口时候正常返回了。这个我们就可以通过日志的方式跟踪。在确定完了代码问题之后我们再跟踪数据发送,通过tcpdump命令抓取数据包,例如 tcpdump tcp port 8080 -w /tmp/xxxx.cap抓取8080端口数据写入到/tmp/xxx.cap文件中。这样我们就可以确定数据是否正常发送出去了

二 给你一个表a,里面有id,name,addtime,updatetime,性别几个字段,怎么设计索引。

   第一反应是id是主键,name使用比较多,应该加一个索引,然后就是updatetime,再是性别,addtime。面试官给的答案是我首先应该做的是问题他这几个字段的类型,使用频率,不是直接给出答案。确实,这也体现出了在工作中自己很多东西都是想当然的,没有去认真思考。在做之前应该先去确定用户到底要的时候。接着面试官分析怎么使用索引,在addtime和updatetime之间,updatetime是一个经常别动的值,不适合建立索引,这样对索引的压力很大,所以这2个之间选择addtime,然后是name,在查询中使用频率很高,但是如果这个字段的取值很大,也不适合做索引,性别的区分度很低,建立索引也没有什么意义

外包做久了人的思维都有些定视了,自己一直想出去,可是到头来发现自己一直在里面打滚,没有出去。不过这次总算是出来了,期待自己接下来的成长吧

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值