服务器巡检常用命令,脚本,及调优思路

uname -a # 查看内核/操作系统/CPU信息

head -n 1 /etc/issue # 查看操作系统版本

cat /proc/cpuinfo # 查看CPU信息

hostname # 查看计算机名

lspci -tv # 列出所有PCI设备

lsusb -tv # 列出所有USB设备

lsmod # 列出加载的内核模块

env # 查看环境变量

free -m # 查看内存使用量和交换区使用量

df -h # 查看各分区使用情况

du -sh < 目录名> # 查看指定目录的大小

grep MemTotal /proc/meminfo # 查看内存总量

grep MemFree /proc/meminfo # 查看空闲内存量

uptime # 查看系统运行时间、用户数、负载

cat /proc/loadavg # 查看系统负载

mount | column -t # 查看挂接的分区状态

fdisk -l # 查看所有分区

swapon -s # 查看所有交换分区

hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)

dmesg | grep IDE # 查看启动时IDE设备检测状况

ifconfig # 查看所有网络接口的属性

iptables -L # 查看防火墙设置

route -n # 查看路由表

netstat -lntp # 查看所有监听端口

netstat -antp # 查看所有已经建立的连接

netstat -s # 查看网络统计信息

ps -ef # 查看所有进程

top # 实时显示进程状态

w # 查看活动用户

id < 用户名> # 查看指定用户信息

last # 查看用户登录日志

cut -d: -f1 /etc/passwd # 查看系统所有用户

cut -d: -f1 /etc/group # 查看系统所有组

crontab -l # 查看所有用户的定时任务

服务器巡检脚本:

#!/bin/bash
phy_cpu=$(sudo cat /proc/cpuinfo | grep "physical id"|sort | uniq | wc -l)
logic_cpu_num=$(sudo cat /proc/cpuinfo | grep "processor"| wc -l)
cpu_core_num=$(sudo cat /proc/cpuinfo | grep "cores"|uniq|awk -F: '{print $2}')
cpu_freq=$(sudo cat /proc/cpuinfo | grep MHz | uniq | awk -F: '{print $2}')
system_core=$(uname -r)
system_version=$(cat /proc/version)
system_hostname=$(hostname | awk '{print $1}')
systemc_envirement_variables=$(sudo env | grep PATH)
mem_free=$(sudo grep MemFree /proc/meminfo)
disk_usage=$(df -h)
system_uptime=$(sudo uptime)
system_load=$(sudo cat /proc/loadavg)
system_ip=$(sudo ifconfig | grep "inet addr" | awk -F: '{print $2}'| awk '{print $1}')
mem_info=$(sudo /usr/sbin/dmidecode | grep -A 16 "Memory Device"|grep -E "Size|Locator"|grep -v Bank)
mem_total=$(sudo grep MemTotal /proc/meminfo)
day01=$(date +%Y)
day02=$(date +%m)
day03=$(date +%d)

path=inspection.txt
echo -e " " > $path
echo -e $day01年$day02月$day03系统巡检报告 >> $path
echo -e 主机名:"\t"$system_hostname >> $path
echo -e 服务器IP: "\t"$system_ip >> $path
echo -e 系统内核: "\t"$system_core >> $path
echo -e 操作系统版本:"\t"$system_version >> $path
echo -e 磁盘使用情况: "\t""\t" $disk_usage >> $path
echo -e CPU核数:"\t"$cpu_core_num >> $path
echo -e 物理CPU个数:"\t"$phy_cpu >> $path
echo -e 逻辑CPU个数:"\t"$logic_cpu_num >> $path
echo -e 系统环境变量:"\t"$systemc_envirement_variables >> $path
echo -e CPU的主频:"\t"$cpu_freq >> $path
echo -e 内存简要信息:"\t"$mem_info >> $path
echo -e 内存总大小:"\t"$mem_total >> $path
echo -e 内存空间: "\t"$mem_free >> $path
echo -e 时间/系统运行时间/当前登陆用户/系统过去1分钟/5分钟/15分钟内平均负载/"\t"$system_uptime >> $path
echo -e 1分钟/5分钟/15分钟平均负载/在采样时刻,运行任务的数目/系统活跃任务的个数/最大的pid值线
程/ "\t"$system_load >> $path

性能调优整体思路
空间换时间
对热点数据缓存,减少数据查询时间。
分而治之
将大任务切片,分开执行。HDFS、MapReduce就是这个原理。
异步处理
若业务链中有某一环节耗时严重,则该环节将拉长业务链的整体耗时。可以将耗时业务采用消息队列异步化,从而缩短业务链耗时。
并行处理
采用多进程、多线程同时处理,提升处理速度。
离用户更近一点
如CDN技术,将静态资源放到离用户更近的地方,从而缩短请求静态资源的时间。
提升可扩展性
采用业务模块化、服务化的手段,提升系统的可扩展性,从而可根据业务需求实现弹性计算。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章