interview

Posted skyzy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了interview相关的知识,希望对你有一定的参考价值。

(1)web服务器连接很卡:
网络问题,网络延时,网络丢包
查看服务器的连接数,是不是同时连接人数太多,超过服务器的正常负载
查看日志
查看服务器的TCP连接情况,是不是被DDOS攻击
查看服务器内存使用量,是否某个应用出现问题;CPU
通过iostat查看,是不是服务器的IO吃紧
数据库,数据库的负载,查询的效率
top iostat netstat
(@)TIME_WAIT数量过多问题的解决办法:
查看:netstat -an
# vim /etc/sysctl.conf
net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接
net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收
net.ipv4.tcp_fin_timeout = 30 修改系統默认的 TIMEOUT 时间
net.ipv4.tcp_keepalive_time = 30 保持连接的时间
net.ipv4.tcp_max_tw_buckets = 100 这个是设置服务器同时保持的time_wait的数目
---------------------------------------------------------------------
数据库调优
使用索引
(创建表的时候可以同时创建合适的索引,也可以使用ALTERTABLE或CREATEINDEX在以后创建索引)
索引应建立在那些将用于JOIN,WHERE判断和ORDERBY排序的字段上。尽量不要对数据库中某个含有大量重复的值的字段建立索引
优化的查询语句
对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。
应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描
最好不要给数据库留NULL,尽可能的使用 NOT NULL填充数据库
应尽量避免在 where 子句中使用 != 或 <> 操作符,否则将引擎放弃使用索引而进行全表扫描。
应尽量避免在 where 子句中使用 or 来连接条件,如果一个字段有索引,一个字段没有索引,将导致引擎放弃使用索引而进行全表扫描
in 和 not in 也要慎用;对于连续的数值,能用between就不要用in;
避免在 where 子句中对字段进行表达式操作;避免在where子句中对字段进行函数操作
尽可能的使用 varchar/nvarchar 代替 char/nchar
选取最适用的字段属性
prefork和worker模式的比较
prefork模式
使用多个子进程,每个子进程只有一个线程。每个进程在某个确定的时间只能维持一个连接。
在大多数平台上,Prefork MPM在效率上要比Worker MPM要高,但是内存使用大得多。
prefork的无线程设计在某些情况下将比worker更有优势:
它可以使用那些没有处理好线程安全的第三方模块,并且对于那些线程调试困难的平台而言,它也更容易调试一些。
使用多个子进程,每个子进程只有一个线程。每个进程在某个确定的时间只能维持一个连接,效率高,但内存占用量比较大。
worker模式
使用多个子进程,每个子进程有多个线程。每个线程在某个确定的时间只能维持一个连接。
通常来说,在一个高流量的HTTP服务器上,Worker MPM是个比较好的选择,因为Worker MPM的内存使用比Prefork MPM要低得多。
但worker MPM也由不完善的地方,如果一个线程崩溃,整个进程就会连同其所有线程一起"死掉"。
由于线程共享内存空间,所以一个程序在运行时必须被系统识别为"每个线程都是安全的"。
worker使用多个子进程,每个子进程有多个线程,每个线程在某个确定的时间只能维持一个连接,内存占用量比较小,适合高流量的http服务器。
缺点是假如一个线程崩溃,整个进程就会连同其任何线程一起”死掉”,所以要保证一个程式在运行时必须被系统识别为”每个线程都是安全的”
总的来说,prefork方式速度要稍高于worker,然而它需要的cpu和memory资源也稍多于woker。
查看文件系统类型:
df -T
lsblk -f
fsck -N /dev/sda1
端口扫描:nmap
常见的端口号:
smtp 25
pop3 110
smtps 465
pop3s 995
ssh 22
ftp 21,20
smtp 25
tftp 69
sftp 115
snmp 161
redis 6379
memcache 11211
squid 3128
mssql 1433/1434
mongodb 27017
ldap 389
ldap 636 ---轻量目录访问协议
rtsp 554 ---实时流传输协议,是TCP/IP协议体系中的一个应用层协议,传送多媒体数据
imaps 993 ---邮件访问协议
imap3 220

以上是关于interview的主要内容,如果未能解决你的问题,请参考以下文章