运维学习资料(1)

常见的页面调度算法有哪些?请至少列出三种。如何判断一个调度算法的好坏?
解答:
1)常见的页面调度算法
(1)随机算法rand(Random Algorithm)。
(2)先进先出调度算法(FIFO)
(3)最近最少调度算法LFU(Least Frequently Used Algorithm )
(4)最近最不常用调度算法LRU(Least Recently Used Algorithm)
(5)最优替换算法OPT(Optimal replacement Algorithm)
2)判断一个页面调度算法好坏的评判标准
 一是命中率要高,二是算法要容易实现。
要提高一个调度算法的命中率,首先要是这种算法能正确反映程序的局部性,其次是这种算法要能够充分利用主存中页面调度情况的历史信息,或者能够预测主存中将要发生的页面调度情况。
列出页面调度(替换)算法主要的应用
(1) 虚拟存储器中,主存页面(或程序段)的替换
(2) Cache中的块替换
(3) 虚拟存储器的快慢表中,快表的替换
(4) 虚拟存储器中,用户基地址寄存器的替换
在Web服务中,负载均衡的基本作用是什么?列举一个你所知道的负载均衡的软件方法或理论
负载均衡的定义
负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过某种负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。
负载均衡的作用
如果你发现你的Web站点负载量非常大时,应当考虑使用负载均衡技术来将负载平均分摊到多个内部服务器上。如果有多个服务器同时执行某一个任务时,这些服务器就构成一个集群(clustering)。使用集群技术可以用最少的投资获得接近于大型主机的性能。
目前比较常用的负载均衡技术主要有:
基于DNS的负载均衡 反向代理负载均衡 基于NAT的负载均衡技术
软件如:Hearbeat,NGINX,keepalived,haproxy,cluster

服务器负载均衡有哪些实现方法?
答案:  A:实现服务器负载均衡有多种方法,常见的方法有:
    1.基于DNS 轮询的方法:即在DNS 服务器中对同一域名设置多条DNS A 记录,通过DNS 的轮询机制实现服务器负载均衡。
    2.基于服务器集群的方法;
    3.基于应用软件的实现方法,在应用软件设计中就考虑了多服务器之间的协同工作与任务调度。这种方法一般会有一台服务器作为中枢对访问请求进行调度,同时要求在应用层支持访问重定向或任务调度、跳转机制。
    4.采用专门的L4/L7 层交换机来实现,也即我们常说的负载均衡器。一般都是通过在L4/L7 层交换机作地址转换(NAT)来实现。
5.基于代理方式的负载均衡算法。

有文件file1
1、查询file1里面空行的所在行号
grep ^$ file
2、查询file1以abc结尾的行
grep abc$ file1
3、打印出file1文件第1到第三行
sed -n '1,3p'
head -3 file1
如何将本地80端口的请求转发到8080端口,当前主机IP为192.168.2.1
-A PREROUTING   -d 124.42.60.109 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.0.0.18:9000
编写个shell脚本将/usr/local/test 目录下大于100K的文件转移到/tmp目录下
ls -l aa.txt | awk '{print $5}'
===============================
#!/bin/bash
for file in `ls ${DIR}`
do
if [`ls -l ${file}| awk '{print $5}'` > 1000 ] then
mv $file /tmp
fi
done
=============================================
raid原理
RAID 0:无差错控制的带区组
将一个数据分为两份分别放在两块硬盘上。不需要计算校验码。
RAID 1:镜象结构
类似于备份模式,一个数据被复制到两块硬盘上。
RAID10:高可靠性与高效磁盘结构
一个带区结构加一个镜象结构,因为两种结构各有优缺点,因此可以相互补充。
主要用于容量不大,但要求速度和差错控制的数据库中。
RAID5:分布式奇偶校验的独立磁盘结构
它的奇偶校验码存在于所有磁盘上,任何一个硬盘损坏,都可以根据其它硬盘上的校验位来重建损坏的数据。支持一块盘掉线后仍然正常运行。
oracle数据库备份方式
物理备份:开启网络监听,备份数据库文件。
RMAN备份:通过表空间文件在RMAN模式对ORACLE数据备份。
如何查看占用端口8080的进程lsof -i:8080

你使用过监控软件吗?说说其特点
使用nagios对服务器进行监控,其特点可实时实现手机短信、电子邮件、MSN、飞信报警。
使用cacti对流量进行监控。

1•简述树的深度优先算法、广度优先算法,及非递归实现的特点。
深度优先搜索法是优先扩展尚未扩展的且具有最大深度的结点;广度优先搜索法是在扩展完第K层的结点以后才扩展K+1层的结点。主要不同点在于深度优先需要使用栈,广度优先使用队列FIFO。
非递归实现要求程序自己设置栈来保存要用到的数据,与递归不同的是递归需要系统来完成数据和程序执行状态在栈中的保存。非递归可以减少数据的冗余以及系统设置栈带来的巨大开销。

2•在文件系统中,元数据(比如ext2中的inode)的基本作用是什么?ext2跟ext3的根本区别是什么?
记录数据的Modify,Access,Create times.以及记录数据的存放块区。并且通过元数据的加锁机制等可以保证数据的一致性。
ext3是ext2的扩展,主要区别是ext3加入了日志系统。它允许以回写(writeback)预定(ordered),数据(data)三种方式记录日志,默认为预定。并默认在日志添满1/4,或某一个日志记时器超时时提交日志。
3•在web服务中,负载均衡的基本作用是什么?请举例你熟悉的一款负载均衡软件或者实现方案,简述它们的实现原理。(这题后半部分为开放性,我也没记多深,大概就这样)
由于系统服务访问量和带宽的暴增,服务器的TCP/IP协议栈,服务器系统的低效和处理器的低效便成为了瓶颈。因此负载均衡集群的出现将服务均匀地分配给提供同一种服务的各个服务器,从而降低单个服务器的负担。
LVS(Linux Vitual Server):LVS采用GPL协议,可以自由开发。大致分为三层:
1.负载调度器:对外的前端机使用IPVS(IP负载均衡)软件,采用3种IP负载均衡技术和8种负载调度算法。其中负载均衡技术如直接路由法 VS/DR,可以通过改写请求的MAC地址,将请求发送到真实的服务器,这样有效地提高了集群系统的伸缩性和吞吐量。8种调度算法如加权最少链接法,动态 地将请求发送到目前链接最少的真实服务器上,并通过加权来优化算法,很好地提高性能。
2.服务器池:通过增加服务器池的结点数目,往往性能会成线性的增长。有效地解决了服务的伸缩性。
3.共享存储:数据库或是网络文件系统,也有可能是分布式文件系统。数据库保证并发访问的一致性,静态数据可存在网络文件系统如NFS/CIFS 中,如系统规模大,可以使用分布式文件系统存储。而且共享存储对于大多数情况下的读密集服务来讲可以提供大容量的cache,因此访问速度接近本地磁盘。
另外还有基于HTTPS的安全系统管理WEB界面,便 于系统管理员进行集群的管理和操作。
4•数据库事务的四大特性是什么?请你简单举例对一个完全不懂数据库的人解释这四个特性。投数据库管理员(DBA)必答。
事务的:原子性、一致性、分离性、持久性

数据库死锁原理
根据操作系统中的定义:死锁是指在一组进程中的各个进程均占有不会释放的资源,但因互相申请被其他进程所站用不会释放的资源而处于的一种永久等待状态。

如何查看占用80端口的进程
netstat -an|grep 80
 
lsof -i :80|grep -v "PID"|awk '{print "kill -9",$2}'|sh
以上脚本可以清除80端口的进程

数据库查询排列
sum求和
count总数
group by 按....排列
order  by  desc   降序排列


挂载光驱
 mount -t iso9660 /dev/hdc /mnt/cdrom
增加路由 route add

查看路由表 route -n # 查看路由表

时间同步服务器/usr/sbin/ntpdate 210.72.145.44 > /dev/null

linux支持4G以上内存
原因:
X86系统默认寻址能力的限制
解决办法:
安装具有PAE(物理寻址扩展)功能的内核
1) 命令行下运行内核安装命令 'yum install kernel-PAE'。
2) 编辑启动配置文件 'vi /etc/grub.conf',修改default值为0。这样的做的目的是让kernel-PAE做为默认启动内核.
   default=0
   timeout=5
   splashimage=(hd0,0)/grub/splash.xpm.gz
   hiddenmenu
   title CentOS (2.6.18-53.1.4.el5PAE)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-53.1.4.el5PAE ro root=LABEL=/1
        initrd /initrd-2.6.18-53.1.4.el5PAE.img
   title CentOS (2.6.18-8.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-8.el5 ro root=LABEL=/1
        initrd /initrd-2.6.18-8.el5.img
 
3) 保存配置,重启机器.

ip配置
 
建议通过终端字符方式下来修改
一修改IP地址
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
BROADCAST=192.168.1.255
IPADDR=192.168.1.33
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes
USERCTL=no
PEERDNS=no
TYPE=Ethernet
~
vi /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.2.34
NETMASK=255.255.255.0
USERCTL=no
PEERDNS=no
TYPE=Ethernet
NETWORK=192.168.2.0
BROADCAST=192.168.2.255
修改网关
vi /etc/sysconfig/network
 
NETWORKING=yes
HOSTNAME=Aaron
GATEWAY=192.168.1.1
 
重新启动网络配置
/etc/init.d/network restart
添加IP地址:ifconfig eth0 IP netmask 子网掩码 broadcast 广播地址
查看网卡信息: route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric   Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0     eth0
10.1.1.0            0.0.0.0         255.255.255.0   U     0      0        0     eth1
169.254.0.0     0.0.0.0         255.255.0.0        U      0      0        0     eth0
0.0.0.0         192.168.1.254   0.0.0.0             UG    0      0        0     eth0
查看物理网卡:mii-tool
重启eth0: ifup eth0
查看eth0信息:ethtool eth0

[email protected][email protected]发送邮件过程(大题)
[email protected] [email protected] DNS是dns
来自[email protected] 域的 邮件 [email protected]主机先看是否是给本地的如果不是 找DNS 发给外面的域 如果是则发给本地主机
[email protected] 也一样
我们可以正常访问客户网站,但是客户无法访问,检查服务器和网络配置都没有问题,该如何向客户解释并解决。(大题)
请客户检查本地网络是否正常,如果不正常,则说明是由于客户本地网络导致的,如果正常,则说明可能由于电信DNS部分地区不能正常解析导致的,可以这样向客户解释:可能由于电信DNS部分地区不能正常解析导致无法访问,我们立刻提交相关部门处理,请您留下联系方式,测试访问正常后通知您。

HTTP403错误
HTTP 400 -请求无效
HTTP 403 -禁止访问
HTTP 404-无法找到文件
HTTP 500 -内部服务器错误
HTTP 502 -网关错误

端口范围
0-255 公用端口
255-1023 用于各个公司
1023-49151 已注册端口号
49151-66536 动态或专用端口号

FTP下查看文件列表命令
  ls:列出远程机的当前目录。
  cd:在远程机上改变工作目录。
  lcd:在本地机上改变工作目录。
  close:终止当前的ftp会话。
  hash:每次传输完数据缓冲区中的数据后就显示一个#号。
  get(mget):从远程机传送指定文件到本地机。
  put(mput):从本地机传送指定文件到远程机。
  quit:断开与远程机的连接,并退出ftp


有文件file1
1、查询file1里面空行的所在行号
awk ‘{if($0~/^$/)print NR}’ file
or
grep -n ^$ file |awk ‘BEGIN{FS=”:”}{print $1}’
2、查询file1以abc结尾的行
grep abc$ file1

3、打印出file1文件第1到第3行
sed -n ’1,3p’ file1
head -3 file1

如何将本地80端口的请求转发到8080端口,当前主机IP为192.168.2.1
-A PREROUTING  -d 124.42.60.109 -p tcp -m tcp –dport 80 -j DNAT –to-destination 10.0.0.18:9000

编写个shell脚本将/usr/local/test 目录下大于100K的文件转移到/tmp目录下
#!/bin/bash
for file in `ls /root`
do
       if [ -f $file ]; then
              if [ `ls -l $file|awk '{print $5}'` >  10000 ];  then
                     mv $file /tmp/
              fi
       fi
done

你可能感兴趣的:(算法,Random,命中率,Recently)