1. 什么是 Linux 服务器 Load Average?
Load 是用来度量服务器工作量的大小,即计算机 CPU 任务执行队列的长度,值越大,表明包括正在运行和待运行的进程数越多。
2. 如何查看 Linux 服务器负载?
您可以通过执行 w
,top
,uptime
,procinfo
命令,或者访问 /proc/loadavg
文件进行查看。
procinfo 工具安装请参考 Linux 环境下安装软件的相关文档。
3. 服务器负载高怎么办?
服务器负载(Load/Load Average)是根据进程队列的长度来显示的。当服务器出现负载高的现象时(建议以15分钟平均值为参考),可能由于 CPU 资源不足,I/O 读写瓶颈,内存资源不足,CPU 正在进行密集型计算等原因造成。建议使用 vmstat
,iostat
,top
命令判断负载过高的原因,并找到具体占用大量资源的进程进行优化处理。
4. 如何查看服务器内存使用率?
您可以通过执行 free
,top
(执行后可通过 shift+m
对内存排序),vmstat
,procinfo
命令,或者访问 /proc/meminfo
文件进行查看。
5. 如何查看单个进程占用的内存大小?
您可以通过执行 top -p PID
,pmap -x PID
,ps aux|grep PID
命令,或者访问 /proc/$process_id(进程的 PID)/status
文件进行查看,例如 /proc/7159/status 文件。
6. 如何查看正在使用的服务和端口?
您可以通过执行 netstat -tunlp
,netstat -antup
,lsof -i:PORT
命令进行查看。
7. 如何查看服务器进程信息?
您可以通过执行 ps auxww|grep PID
,ps -ef
,lsof -p PID
,top -p PID
命令进行查看。
8. 如何停止进程?
您可以通过执行 kill -9 PID
(PID 表示进程号),killall 程序名
(例如 killall cron)来停止进程。
如果需要停止僵尸进程,则需要杀掉进程的父进程,执行的命令为: kill -9 ppid
(ppid 为父进程 ID 号,可以通过 ps -o ppid PID
命令进行查找,例如 ps -o ppid 32535)。
9. 如何查找僵尸进程?
您可以通过执行 top
命令查看僵尸进程(zombie)的总数,通过执行 ps -ef | grep defunct | grep -v grep
查找具体僵尸进程的信息。
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 是以文件系统为基础,此命令在系统管理中很有帮助。 例如: |
ps | 进程查看命令,可以用来显示进程的详细信息。 常用命令参数组合为,ps -ef,ps aux,推荐使用 ps -A -o 来自定义输出字段。 |
其他常用的命令和文件:free -m
,du
,uptime
,w
,/proc/stat
,/proc/cpuinfo
,/proc/meminfo
。
12. 如何删除 Linux 服务器上的文件?
可通过 rm
命令进行文件删除,但通过此命令删除的文件无法恢复,请谨慎使用。rm
命令格式为 rm (选项)(参数)
。
- 选项:
-d:直接将需删除的目录的硬连接数据删除为0,再删除该目录。
-f:强制删除文件或目录。
-i:删除已有文件或目录之前先询问用户。
-r 或 -R:递归处理,将指定目录下的所有文件与子目录一并处理。
--preserve-root:不对根目录进行递归操作。
-v:显示指令的详细执行过程。 - 参数:文件,指定被删除的文件列表,如果参数中含有目录,则需加上 -r 或者 -R 选项。
- 示例:
- 删除文件
test.txt
,请执行rm test.txt
。 - 删除目录
test
,请执行rm -r test
。 - 删除当前目录下的所有文件及子目录,请执行
rm -r *
。
- 删除文件