云计算面试总结

shell脚本对日志进行备份

shell 对日志备份
#!/bin/bash
if      [ -d /log/bak/ ] || mkdir -p /log/bak/
then
        tar Pcf /log/bak/log_$(date +%Y%m%d)''$(date +%H%M%S).tar.gz  /var/log/*.log
        echo "干完!可以约会啦"
fi

存在的问题:
说的太快,听清楚问题再说,不要说无关的知识,及内容;自我介绍,没想了解那么详细,毕业后做什么
不要说几年经验,改成会shell
Kafka 用在大数据场景;mysql使用ID场景

Linux
1、linux 基础之-高并发内核优化
1)单进程最大打开文件数限制
2)内核TCP参数方面 Linux系统下,TCP连接断开后,会以 TIME_WAIT 状态保留一定时间,然后才释放端口。当并发请求过多时,会产生大量 TIME_WAIT 状态连接,无法及时断开会占用大量的端口资源和服务器资源。
3)IO事件分配机制
生产环境请根据自己的实际情况调整观察再调整
2、如何优化 Linux系统(可以不说太具体)?
答:
安全:
01)不用root ,添加普通用户,通过sudo授权管理。
02)更改默认的远程连接SSH服务端口及禁止root用户远程连接。
03)锁定关键系统文件。
chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
处理以上内容后把chattr.lsattr改名 oldboy ,这样就安全多了。
4)去除系统及内核版本登录前的屏幕显示,清空/etc/issue。
5)清除无用的默认系统账户或组。
性能:
1)定时自动更新服务器时间。
04) 配置yum更新源,从国内更新源下载安装rpm包。
05)关闭selinux及iptable(IPtable工作场景如果有wan ip一般要打开,高并发除外)。
06)调整文件描述符的数量。进程及文件的打开都会消耗文件描述符。
07)定时自动清理/var/spool/clientmquene/目录垃圾文件,防止inodes节点被占满。
08)精简开机自启动服务(crond,sshd,network,rsyslog)。
09)linux内核参数优化/etc/sysctl.conf ,执行sysctl -p生效。
10)更改字符集,支持中文,但建议还是使用英文字符集,防止乱码问题,不要使用中文。
11)

Tomcat

优化:
1)Tomcat的运行模式:bio效率低,apr对系统配置有一些更高的要求;一般使用nio
2)关键配置
maxthereads:最大线程数,默认200
minsparetherad:最小活跃线程数,默认是25
maxqueusize: 最大等待队列个数
3)影响性能的配置
compression设置成on,开启压缩
禁用AJP链接器:用nginx+tomcat架构,用不到AJP
disableuploadtimeou=fase: 上传是否使用超时机制

下面举一些例子来说明 jar 命令的用法:

  1. 压缩jar -cvf test.jar test

  2. 解压jar -xvf test.jar test

mysql

1)mha是通过心跳来检测存活,

问:索引建立越多越好吗?

数据量小的表不需要建立索引,因为建立索引会增加额外的开销。
数据变更需要维护索引,因此更多的索引意味着更多的维护成本。
更多的索引意味着更多的存储空间。

理论

1、简述Raid0、1、5的特点与原理

raid0:读写性能提升,无冗余,利用率100%,至少两块盘
raid1:读性能提升写性能下降,有冗余,利用率 1/2,至少两块盘
raid5:读写性能提升,有冗余,利用率n-1,只能坏一块盘,至少三块盘

2、linux根目录下各子目录的名词及作用

答:1)/bin binary二进制
系统可执行程序文件。普通用户的命令,例如ls pwd whoami
2)/home 用户家目录;
每给系统增加一个用户,都在此目录创建一个“同名”的目录,作为该用户的家目录使用,用户每次登陆系统首先进入其家目录。
3)/sbin super binary超级的二进制
系统可执行程序文件,是root管理员执行;例如init
4)/root 超级管理员root的家目录
5) /boot 系统启动文件目录
/boot/initramfs-2.6.32-504.el6.i686.img是系统内核文件
6)/etc 系统配置文件目录
/etc/passwd 存放系统用户信息
/etc/group 存放系统用户组信息
7)/dev device设备目录
系统把全部的硬件映射为文件存储在此目录
例如:/dev/cdrom用于指向“光驱”
8)/usr unix system resource操作系统资源文件目录
类似windows系统的C:/Program Files目录
是系统软件安装
3、什么是代理服务器,什么叫CDN?
答:代理服务器
1. 本身不产生内容
2.处于中间位置转发上下游的请求和响应
① 面向下游的客户端: 它是服务器,反向代理
② 面向上游的服务器: 它是客户端,正向代理
CDN即内容分发网络
其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络边缘,使用户可就近取得所需的内容,提高用户访问网站的速度

4、linux系统启动流程
centos-6 开机自检BIOS-MBR引导-GRUB菜单-加载内核-init进程初始化
centos-7 开机自检BIOS-MBR引导-GRUB2菜单-加载内核-systemd进程初始化

故障排查
1、假如有人反应,调取后端接口时特别慢,你会如何排查?

答:只是看你回答的内容与面试官契合度有多高,能不能说到他想要的点上,主要是看你排查问题的思路。
问清楚反应的人哪个服务应用或者页面调取哪个接口慢,叫他把页面或相关的URL发给你,
首先,最直观的分析就是用浏览器按F12,看下是哪一块的内容过慢(DNS解析、网络加载、大图片、还是某个文件内容等),
如果有,就对症下药去解决(图片慢就优化图片、网络慢就查看内网情况等)。
其次,看后端服务的日志,其实大多数的问题看相关日志是最有效分析,最好用tail -f 跟踪一下日志,
当然你也要点击测试来访问接口日志才会打出来。
最后,排除sql,,找到sql去mysql执行一下,看看时间是否很久,如果很久,就要优化SQL问题了,
expain一下SQL看看索引情况啥的,针对性优化。数据量太大的能分表就分表,能分库就分库。如果SQL没啥问题,那可能就是写的逻辑代码的问题了,一行行审代码,找到耗时的地方改造,优化逻辑。

2、当一个网站访问慢时, 你都是怎么去查找问题,和解决问题以达到优化效果的

答:第一,用5分钟排除网络因素,借助工具(如pagespeed)分析页面加载过程

  1. 某个元素或者图片加载过慢: 具体原因具体分析

  2. DNS解析时长问题: 可以通过购买解析服务, 来让自己的域名在各地DNS更多缓存

  3. 网络带宽瓶颈: 考虑增加带宽

  4. 网络线路波动: 考虑CDN,或者镜像站第二,要考虑到服务器问题1. 是否有服务器过载: 考虑增加硬件

  5. I/O操作:数据库的频繁读写,服务器的频繁请求(包括静态文件的读取,图片的读取)等都属于I/O问题。对于数据库的问题,首先要优化SQL,存储过程等。如果单表数据量过大要考虑做分割或者运用程序来控制分表。如果请求量过大,要考虑做集群。对于服务器(静态)文件的I/O问题,则可以考虑做CDN,这样也可以解决地域性问题。对于动态文件的访问,则涉及到代码优化及负载均衡两项。

  6. 具体应用优化: nginx针对访问量修改配置文件,调高Buffers 调低keep alive空连接时间等第三,安全方面1. 查看web\mail等其它服务日志,是否存在被攻击现象: 针对安全方面加固

  7. 是否有其它攻击存在DDOS,WEB CC等

3、web应用
http返回状态码
200 请求成功
302,307 临时重定向
404 请求的资源在前端查明不存在(前端服务如:Apache等找不到请求的资源)
500 服务器的内部错误,程序错误(Apache等前端程序错误,未启动或错误配置)
503 服务暂时不可用(服务器的程序出现问题)

4、HTTP流程

1)用户输入域名–》DNS解析–》浏览器向服务器发起TCP连接(三次握手)
客户端发起HTTP请求–》服务器响应–》客户端向服务器发起tcp断开(四次挥手)

2)用户访问网站流程
用户输入域名,抵达防火墙
防火墙根据规则判断是否放行,通过tcp连接负载均衡器
负载均衡器,通过tcp连接到web服务器
web服务器解析内容
静态:由本地或nfs解析,获取图片等内容,根据调度算法返回给用户
动态:向后端缓存或数据库建立tcp连接
由数据库–》动态程序(Tomcat或php)–》缓存–》web–》负载均衡–》防火墙–》用户

5、为什么TCP是四次挥手?
因为服务端要确认一下,它发送的FIN和ACK包,客户端是否收到

为什么TCP是三次握手?
因为服务端收到SYN包之后,它向客户端发送的SYN和ACK包放在一个报文里面发送的

6、TCP三次握手
建立连接时,客户端向服务端发送SYN请求包,等待服务器确认
服务端收到请求,确认后,向客户端发送一个SYN+ACK包
客户端收到响应,给服务端发送一个ACK包,连接成功

TCP四次挥手
客户端发送一个FIN,用来关闭客户端和服务端的数据传送
服务端收到FIN后,发送一个ACK给客户端
服务端发送一个FIN,用来关闭服务端到客户端的数据传送
客户端收到FIN后,客户端发送一个ACK给服务端,断开连接

白话解释:

三次握手:
1)发送端首先发送一个带有SYN(synchronize)标志地数据包给接收方。

2)接收方接收后,回传一个带有SYN/ACK标志的数据包传递确认信息,表示我收到了。

3)最后,发送方再回传一个带有ACK标志的数据包,代表我知道了,表示’握手‘结束。

syn和ack代表什么意思
URG:紧急指针(urgent pointer)有效。
ACK:确认序号有效。
PSH:接收方应该尽快将这个报文交给应用层。
RST:重置连接。
S

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Friends of the wind

您的是我坚持原创免费作品的不懈

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值