1. 什么是linux服务器loadaverage?
2. 如何查看linux服务器负载?
3. 服务器负载高怎么办?
4. 如何查看服务器内存使用率?
5. 如何查看单个进程占用的内存大小?
6. 如何查看正在使用的服务和端口?
7. 如何查看服务器进程信息?
8. 如何杀死进程?
9. 如何查找僵尸进程?
10. 为什么启动不了服务器端口?
11. 常用的linux服务器性能查看命令有哪些?
12. Cron不生效怎么办?
13. 如何设置云服务器开机任务?
14. 为什么服务器硬盘只读?
15. 如何查看linux系统日志?
16. 如何查找文件系统大文件?
17. 如何查看服务器操作系统版本?
18. 为什么linux终端显示中文会出现乱码?
19. 如何设置通过SecureCRT连接云服务器的超时时间?
20. 为什么删除linux服务器上的文件,硬盘空间不释放?
1. 什么是linux服务器load average?
Load是用来度量服务器工作量的大小,即计算机cpu任务执行队列的长度,值越大,表明包括正在运行和待运行的进程数越多。
参考资料:http://en.wikipedia.org/wiki/Load_average
2. 如何查看linux服务器负载?
可以通过w,top,uptime,procinfo命令,也可以通过/proc/loadavg文件查看。
procinfo工具安装请参考Linux环境下安装软件。
3. 服务器负载高怎么办?
服务器负载(load/loadaverage)是根据进程队列的长度来显示的。
当服务器出现负载高的现象时(建议以15分钟平均值为参考),可能是由于CPU资源不足,I/O读写瓶颈,内存资源不足等原因造成,也可能是由于CPU正在进行密集型计算。
建议使用vmstat-x,iostat,top命令判断负载过高的原因,然后找到具体占用大量资源的进程进行优化处理。
4. 如何查看服务器内存使用率?
可以通过free,top(执行后可通过shitf+m对内存排序),vmstat,procinfo命令,也可以通过/proc/meminfo文件查看。
5. 如何查看单个进程占用的内存大小?
可以使用top-p PID,pmap -x PID,ps aux|grepPID命令,也可以通过/proc/$process_id(进程的PID)/status文件查看,例如/proc/7159/status文件。
6. 如何查看正在使用的服务和端口?
可以使用netstat-tunlp,netstat -antup,lsof-i:PORT命令查看。
7. 如何查看服务器进程信息?
可以使用psauxww|grep PID,ps -ef,lsof -pPID,top -p PID命令查看。
8. 如何杀死进程?
可以使用kill-9 PID(进程号),killall 程序名(比如killallcron)来杀死进程。
如果要杀死的是僵尸进程,则需要杀掉进程的父进程才有效果,命令为: kill -9 ppid(ppid为父进程ID号,可以通过ps -o ppid PID查找,例如ps -o ppid 32535)。
9. 如何查找僵尸进程?
可以使用top命令查看僵尸进程(zombie)的总数,使用ps -ef | grep defunct | grep -vgrep查找具体僵尸进程的信息。
10. 为什么启动不了服务器端口?
服务器端口的启动监听,需要从操作系统本身以及应用程序查看。
linux操作系统1024以下的端口只能由root用户启动,即需要先运行sudo su –获取root权限后再启用服务端口。
应用程序问题,建议通过应用程序启动日志来排查失败原因,例如端口冲突(腾讯服务器系统使用端口不能占用,比如36000),配置问题等。
11. 常用的linux服务器性能查看命令有哪些?
命令名称 | 说明 |
top | 进程监控命令,用来监控系统的整体性能。 |
可以显示系统负载,进程,cpu,内存,分页等信息, | |
常用shift+m和shift+p来按memory和cpu使用对进程进行排序。 | |
vmstat | 系统监控命令,重点侧重于虚拟内存,也可以监控cpu,进程,内存分页以及IO的状态信息。 |
例如,vmstat 3 10,每隔3秒输出结果,执行10次。 | |
iostat | 用于输出cpu状态和IO状态的工具,可以详细展示系统的IO信息。 |
例如iostat -dxmt 10,每10秒以MB的格式输出IO的详细信息。 | |
df | 用来检查系统的磁盘空间占用状况。 |
例如:df -m,以MB为单位展现磁盘使用状况。 | |
lsof | 列举系统中被打开的文件,由于linux是以文件系统为基础,此命令在系统管理中很有帮助。 |
例如: | |
lsof -i:36000,显示使用36000端口的进程 | |
lsof -u root,显示以root运行的程序 | |
lsof -c php-fpm,显示php-fpm进程打开的文件 | |
lsof php.ini,显示打开php.ini的进程。 | |
ps | 进程查看命令,可以用来显示进程的详细信息。 |
常用命令参数组合为,ps -ef,ps aux,推荐使用ps -A -o来自定义输出字段。 | |
例如: | |
ps -A -o pid,stat,uname,%cpu,%mem,rss,args,lstart,etime |sort -k6,6 -rn, | |
按所列字段输出并以第六个字段进行排序 | |
ps -A -o comm |sort -k1 |uniq -c|sort -k1 -rn|head,列出运行实例最多的进程。 |
其他常用的命令和文件,free -m,du,uptime,w,/proc/stat,/proc/cpuinfo,/proc/meminfo。
参考资料:http://en.wikipedia.org/wiki/Template:Unix_commands,http://www.linuxmanpages.com/
12. Cron不生效怎么办?
排查步骤如下:
1) 确认crontab是否正常运行。
可以运行命令crontab -e添加如下测试条目*/1 * ** * /bin/date >> /tmp/crontest 2>&1 &,然后观察/tmp/crontest文件。
如果有问题,建议使用ps aux|grep cron查找cron的pid,kill -9 PID结束cron进程,然后通过/etc/init.d/cron start重新启动cron。
2) 确认cron条目中的脚本路径为绝对路径。
3) 查看运行cron的用户帐号是否正确,同时查看/etc/cron.deny中是否包含此账户。
4) 检查脚本的执行权限,脚本目录以及日志的文件权限。
5) 建议通过后台方式运行脚本,在脚本条目后添加“&”,例如,*/1 * * * * /bin/date >>/tmp/crontest 2>&1 &
13. 如何设置云服务器开机任务?
Linux内核启动顺序为:
/sbin/init进程启动,
然后依次执行init初始脚本,
运行级别脚本/etc/rc.d/rc*.d,*号值等于运行模式,可以在/etc/inittab中查看,最后执行/etc/rc.d/rc.local。
如果需要配置开机任务,可以在/etc/rc.d/rc*.d中的S**rclocal文件配置,也可以在/etc/rc.d/rc.local中配置。
14. 为什么服务器硬盘只读?
硬盘只读的常见原因如下:
1) 磁盘空间满
可以通过df -m命令查看磁盘使用情况,然后删除多余的文件释放磁盘空间(非第三方文件不建议删除,如果需要请确认);
2) 磁盘inode资源占用完
可以通过df -i命令查看,确认相关的进程;
3) 硬件故障
15. 如何查看linux系统日志?
系统级别的日志文件存放路径为/var/log。
常用的系统日志为/var/log/messages 。
16. 如何查找文件系统大文件?
可以首先通过df命令查看磁盘分区使用情况,比如df -m;
然后通过du命令查看具体文件夹的大小,比如du -sh ./*,du -h --max-depth=1|head -10;
使用ls命令列出文件以及大小,比如ls -lSh;
另外,也可以通过find命令直接查看特定目录下的文件大小,比如find/ -type f -size +10M -exec ls -lrt {} ;
17. 如何查看服务器操作系统版本?
可以通过下列命令查看系统版本:
uname -a,cat /proc/version,cat/etc/issue
18. 为什么linux终端显示中文会出现乱码?
服务器本身没有对显示语言有限制,如果是终端软件的影响中文的显示,可以尝试调整【选项】-【会话选项】-【外观】(secureCRT设置,其他版本软件请查找相关设置);
如果是纯Linuxshell出现乱码,请使用export命令查看用户环境变量,查看LANG,LC_CTYPE等环境变量设置。
19. 如何设置通过SecureCRT连接云服务器的超时时间?
可以通过如下设置,使SecureCRT连接云服务器时,不断开连接:
打开secureCRT选项(Options),选择会话选项(Session Opetions),点击终端(Terminal),在右侧反空闲(Anti-idle)的框中勾选发送协议NO-OP(Send protocol NO-OP),时间设置为每120秒(every 120 seconds)。
20. 为什么删除linux服务器上的文件,硬盘空间不释放?
有时,登录linux服务器执行 rm 命令删除文件后,用 df 命令查看硬盘空间,发现删除文件后可用的硬盘空间没有增加。原因是通过 rm 命令删除文件的时候,如果正好有其它进程在访问该文件,通过 df 命令查看,删除的文件占用的空间是没有立即释放的。
解决方法:
使用root权限执行 lsof |grep deleted ,查看正在使用被删除文件的进程的PID,通过命令 kill -9 PID 杀掉对应的进程即可。
面试中遇到对 Linux 基础知识的考察,主要是一些简单的文本操作,某项系统数据、日志的查看。
鉴于是考核测试工程师而不是考核运维工程师,难度不很小,相应的分值也不高。
大多数时候你的面试官往往也不是很精通Linux ,此类问题稍作准备即可。
查看服务器的某个端口是否打开
· nmap -sTlocalhost查看指定 ip 所有打开的端口
· telnetlocalhost 22 查看指定 ip 的指定端口是否打开
· netstat-ntpl |grep 22查看本机指定端口是否打开
根据进程查端口
· ps -ef |grep Name 先找到进程的 pid
· netstat-nap | grep 2111 根据进程 pid 查端口
linux 根据进程名查看其占用的端口
§ lsof -Pnl +M -i4 | grep 22 查看指定端口所属进程id
Linux下根据端口号查询对应进程
查看内存占用
· free 命令
linux-2g4s:~ # free -m
total used free shared buffers cached
Mem: 7746 2764 4981 204 2 1340
-/+ buffers/cache: 1421 6324
Swap: 8197 0 8197
· top 命令
top - 22:50:48 up 33 min, 1user, load average: 0.29, 0.75, 0.63
Tasks: 220 total, 1 running, 219 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.2us, 2.2 sy, 0.0 ni, 96.6 id, 0.0 wa, 0.0 hi, 0.0si, 0.0 st
KiB Mem: 7932260 total, 2831700 used, 5100560 free, 2488buffers
KiB Swap: 8394748 total, 0 used, 8394748 free. 1374992 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1371 root 20 0 206052 45928 19960 S 3.322 0.579 1:16.57 Xorg
1586 zhouqiz+ 20 0 2093212 175428 81420 S 2.326 2.212 1:38.60gnome-shell
2856 zhouqiz+ 20 0 958652 50292 36296 S 2.326 0.634 0:09.08 gnome-terminal-
1102 root 20 0 572608 16160 11240 S 0.997 0.204 0:01.34 NetworkManager
1070 message+ 20 0 41124 5268 3676 S 0.664 0.066 0:01.02 dbus-daemon
360 root 20 0 0 0 0 S 0.332 0.000 0:00.32 btrfs-transacti
1820 zhouqiz+ 20 0 384708 13560 9996 S 0.332 0.171 0:00.20 mission-control
2229 zhouqiz+ 20 0 1857708 221152 108252 S 0.332 2.788 1:17.47 chromium
3646 root 20 0 14092 2452 1940 R 0.332 0.031 0:00.03 top
1 root 20 0 185360 5928 3944 S 0.000 0.075 0:10.72 systemd
2 root 20 0 0 0 0 S 0.000 0.000 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0.000 0.000 0:00.03 ksoftirqd/0
5 root 0 -20 0 0 0S 0.000 0.000 0:00.00 kworker/0:0H
7 root 20 0 0 0 0 S 0.000 0.000 0:01.61 rcu_sched
8 root 20 0 0 0 0 S 0.000 0.000 0:00.00 rcu_bh
9 root rt 0 0 0 0 S 0.000 0.000 0:00.00 migration/0
10 root rt 0 0 0 0 S 0.000 0.000 0:00.00 watchdog/0
查看硬盘分区大小
· fdisk
linux-2g4s:~ # fdisk -l
Disk /dev/sda: 238.5GiB, 256060514304 bytes, 500118192 sectors
Units: sectors of 1 *512 = 512 bytes
Sector size(logical/physical): 512 bytes / 512 bytes
I/O size(minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier:2590AC87-0E3E-4F54-9062-46B3FA6E6D11
Device Start End Sectors Size Type
/dev/sda1 2048 923647 921600 450M Windowsrecovery environment
/dev/sda2 923648 1128447 204800 100M EFI System
/dev/sda3 1128448 1161215 32768 16M Microsoftreserved
/dev/sda4 1161216 254112398 252951183 120.6G Microsoft basic data
/dev/sda5 254113792 270903295 16789504 8G Microsoft basic data
/dev/sda6 270903296 291885055 20981760 10G Microsoft basic data
/dev/sda7 291885056 500117503 208232448 99.3G Microsoft basic data
查看每个挂载点占用情况
· df
linux-2g4s:~ # df -hT
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs tmpfs 3.8G 11M 3.8G 1%/dev/shm
tmpfs tmpfs 3.8G 2.6M 3.8G 1%/run
tmpfs tmpfs 3.8G 0 3.8G 0% /sys/fs/cgroup
/dev/sda6 btrfs 11G 7.2G 2.8G 73% /
/dev/sda2 vfat 96M 29M 68M 30%/boot/efi
/dev/sda6 btrfs 11G 7.2G 2.8G 73%/boot/grub2/i386-pc
/dev/sda6 btrfs 11G 7.2G 2.8G 73%/var/lib/pgsql
/dev/sda6 btrfs 11G 7.2G 2.8G 73%/var/tmp
/dev/sda7 xfs 100G 8.1G 92G 9%/home
/dev/sda6 btrfs 11G 7.2G 2.8G 73%/var/crash
/dev/sda6 btrfs 11G 7.2G 2.8G 73%/var/lib/mariadb
/dev/sda6 btrfs 11G 7.2G 2.8G 73%/var/spool
/dev/sda6 btrfs 11G 7.2G 2.8G 73% /tmp
/dev/sda6 btrfs 11G 7.2G 2.8G 73%/var/log
/dev/sda6 btrfs 11G 7.2G 2.8G 73%/var/lib/mysql
/dev/sda6 btrfs 11G 7.2G 2.8G 73%/var/lib/libvirt/images
/dev/sda6 btrfs 11G 7.2G 2.8G 73%/boot/grub2/x86_64-efi
/dev/sda6 btrfs 11G 7.2G 2.8G 73%/var/opt
/dev/sda6 btrfs 11G 7.2G 2.8G 73% /srv
/dev/sda6 btrfs 11G 7.2G 2.8G 73%/var/lib/mailman
/dev/sda6 btrfs 11G 7.2G 2.8G 73% /opt
/dev/sda6 btrfs 11G 7.2G 2.8G 73%/usr/local
/dev/sda6 btrfs 11G 7.2G 2.8G 73%/var/lib/named
/dev/sda6 btrfs 11G 7.2G 2.8G 73%/var/lib/machines
/dev/sda6 btrfs 11G 7.2G 2.8G 73%/var/cache
tmpfs tmpfs 775M 28K 775M 1%/run/user/1000
du查看文件目录大小
linux-2g4s:/usr # du -h -d1
0 ./local
2.6G ./share
458M ./lib
42M ./sbin
43M ./include
2.4G ./lib64
0 ./X11R6
377M ./bin
0 ./games
0 ./src
28K./x86_64-suse-linux
5.8G