【运维心得】原来大厂的面试题不过如此(2)
文章目录基础知识网络知识开发能力接续上文,继续根据面试题看大厂的优劣,本次是一家老厂,运维的薪资也达到了20K,看看大家是否猜的出来?
接续上文,继续根据面试题看大厂的优劣,本次是一家老厂,运维的薪资也达到了20K,看看大家是否猜的出来?
基础知识
- 什么是linux的daemon进程?和一般进程有什么区别?
网上参考答案:
daemon进程又称为守护进程,是在系统启动就运行,系统关闭才停止的进程,独立于终端之外,不与客户端交互。
区别:一般进程在关闭终端后就停止了,而daemon进程不会停止。 - 通过free命令查看内存是,看到的buffer和cache各表示什么含义?
网上参考答案:
buffer是缓冲区:是即将被写入磁盘的,是由各种进程分配的,被用在输入队列中,某个进程要求多个字段读入,在所有字段被读入完整之前,进程会把先读入的字段放在buffer中保存。
cache是缓存区:是即将从磁盘中读取的,经常被用在磁盘的I/O请求上,如果多个进程都要访问某个文件,于是该文件被做为cache以便下次访问。提供系统性能 - 使用ln -s 和mv 对某一个文件做如下操作时
bash$ ln -s /usr/afile /etc/bfilebash$ mv /etc/afile /etc/bfile
对inode和block有哪些影响?
网上参考答案:
第一条命令是建立了文件的软链接,只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间(不影响block),假设不带-s参数,则会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化(block增大)。对inode不影响。
第二条命令是使用文件名建立目录项,删除带有原来的文件名的目录项,对inode表没有影响(除了时间戳),对block也没有影响。 - apache和nginx这两个web服务器有哪些区别
| 对比 | nginx | apache |
|---|---|---|
| 总体评价 | 轻量级,反向代理,高并发,占用内存小,处理请求异步非阻塞 | rewrite更强大,更加稳定 |
| 配置 | 简单 | 复杂 |
| 进程 | 异步多进程,多连接对应一个进程 | 同步多进程,一个连接对应一个进程 |
| 负载能力 | 高 | 低 |
| 动态请求 | 鸡肋,不支持 | 支持,一般采用nginx+apache |
网络知识
- 请解释一下以下response header各行的含义:
Date
Tue,22Feb 2011 04:37:45 GMT
Server
Apache
Last-Modified
Thu,04 Nov 2010 04;12:24 GMT
Etag
“9fc-10c-82-5d73fa00”
Content-Length 130
Cache-Control max-age-2592000
Expires
Thu,24 Mar 2011 04:37:45 GMT
Age
21190
X-Cache
HIT from 86-74.ul.sinaimg.cn
Via
1.0.86-74.ul.sinaimg.cn:80(squid/2.6.STABLE21)
Connection
keep-alive
网上参考答案:
ETag:资源的一个标识,类似于key-value pair(键值对)中的key。ETag通常用于校验一个资源实体有没有被修改过。在数据缓存和PUT方法更新资源时候有用处。ETag: “737060cd8c284d8af7ad3082f209582d”
Cache-Control:对缓存的控制
Age:一个资源存在于代理中 缓存的时间,单位是秒
x-cache:是squid代理的自定义header,用来记录缓存的命中与否
Via:告诉客户端,该回应经历了那些代理。如:
Via: 1.0 example1.com, 1.1 example2.com (Apache/1.1)
-
将lvs配置为DR方式,发现无法正常工作,经测试直接访问realserver可以提供服务,请问用何种方法定位lvs问题
网上参考答案:主要防止“乒乓”现象,参见此文LVS+DR合设配置方法以及存在的问题 -
内核参数的含义:
net.ipv4.tcp_tw_recycle=1
减少TIME_WAIT连接数量,详细可参见此文:改内核参数小心了–net.ipv4.tcp_tw_recycle = 1可不能随便设置
net.ipv4.tcp_tw_reuse=1
reuse是表示是否允许重新应用处于TIME-WAIT状态的socket用于新的TCP连接
vm.swappiness=0
表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面,在linux里面,默认设置swappiness这个值等于60
开发能力
- 同一时间脚本只能运行一个实例(可以用任意语言实现)
ps -ef | grep "${0#./}" | grep -v $$ > /dev/null
if (( $? == 0 )); then
echo "已经在运行!"
exit
fi
- 计算出从你生日之日起到今天一共过了多少天?(可以用除shell之外任意语言实现)
链接:https://www.nowcoder.com/questionTerminal/9c91351484104afa92d453d7c648471f?source=relative
来源:牛客网
def Day_num(birth_year,birth_month,birth_day):
day = 0
for month in range(birth_month,12):
if month==3 or month==5 or month==7 or month==8 or month==10 or month==12:
day = day+31
elif month==2:
day = day+28
else:
day = day+30
if birth_year%4==0:
day = day+1-birth_day
else:
day = day-birth_day
for year in range(birth_year+1,2020):
if(year%4==0):
day = day+366
else:
day = day+356
day = day+31+29+31+30+31+16
return day
Day = Day_num(1997,3,4)
print(Day)
- 写出一段程序,用于判断一段字符串是否是回文。(可以用除shell之外任意语言实现)
#include <stdio.h>
#include<stdlib.h>
int main()
{
char a[100];
int i=0,j=0;
printf("请输入字符串:\n");
gets(a);
while(a[i]!='\0')
i++;
i--;
for(;j<=i;i--,j++)
{
if(a[i]!=a[j])
{
break;
}
}
if(j<=i)
{
printf("不是回文串\n",a);
}
else
{
printf("是回文串\n",a);
}
system("pause");
return 0;
}
- 有一文件记录了1-100000之间随机的整数共5000个,存储的格式100,50,35,89…请取出其中最大和最小的整数。(可以用除shell之外任意语言实现)
[root@centos7 ~]# for(( i=1;i<=5000;i++ ));do echo $[$RANDOM*RANDOM%100000] ;done > numbers.txt
[root@centos7 ~]# awk -F, '{max=$1;min=$1;for(i=1;i<NF;i++){if($i>max){max=$i}else{if($i<min){min=$i}}}}END{print "最大值:"max,"最小值:"min}' numbers.txt
最大值:99966 最小值:16
更多推荐



所有评论(0)