系统运维经验分享-系列2运维需要做什么:监控篇明明白白你的Linux服务器身为系统管理员,需要时刻对自己服务器的各方面状态性能等信息都有足够的了解。
首先需要掌握系统硬件的各种信息,比如:CPU的使用情况,内存的使用情况;不仅如此还需要进行网络流量的控制,以便更好的维护系统运行;当然对于日志的作用也是不能忽视的,日志可以帮助管理员掌握系统的运行情况。
熟练掌握以上内容有助于管理员保持对自己Linux服务器明明白白。
Linux/Unix服务器基础管理明明白白你的Linux服务器——硬件篇(1)一、如何查看服务器的CPU今天安装了9台Linux服务器,型号完全不一样(有DELL、HP和IBM服务器),又懒得去对清单,如何在Linux下cpu的个数和核数呢?另外,nginx的cpu工作模式也需要确切的知道linux服务器到底有多少个逻辑cpu,不过现在服务器那是相当的彪悍,直接上worker_processes 8吧。
判断依据:1.具有相同core id的cpu是同一个core的超线程。
(Physical id and core id are not necessarily consecutive but they are unique. Any cpu with the same core id are hyperthreads in the same core.)2.具有相同physical id的cpu是同一颗cpu封装的线程或者cores。
(Any cpuwith the same physical id are threads or cores in the same physical socket.)以自己的惠普DL380G6为例说明:①物理cpu个数:[root@localhost ~]# cat /proc/cpuinfo | grep "physical id" | sort | uniq |wc -l②每个物理cpu中core的个数(即核数)[root@localhost ~]# cat /proc/cpuinfo | grep "cpu cores" | uniqcpu cores : 4这样可以推算出自己服务器的逻辑CPU为物理个数*核数,如果你的服务器是server2003,你可以在你的资源管理器里以图形化方式看到你的逻辑CPU个数。
二、查看服务器的内存情况有时候,你运行了许多大的进程,比如你开启了300个fast-cgi。
这时候你感觉系统很慢,便需要查看服务器的内存情况:[root@server ~]# free -mtotal used free shared buffers cachedMem: 249 163 86 0 10 94-/+ buffers/cache: 58 191Swap: 511 0 511参数解释:total 内存总数used 已经使用的内存数free 空闲的内存数shared 多个进程共享的内存总额buffers Buffer Cache和cached Page Cache 磁盘缓存的大小-buffers/cache (已用)的内存数:used - buffers - cached+buffers/cache(可用)的内存数:free + buffers + cached可用的memory=free memory+buffers+cached上面的数值是一台我公司内网供PHP开发人员使用的DELL PE2850,内存为2G的服务器,其可使用内存为=217+515+826。
记住,Linux的内存使用管理机制是有多少就用多少(特别是在频繁存取文件后),即Linux内存不是拿来看的,是拿来用的。
编辑推荐:Linux系统内存监控全面讲解:free命令三、服务器磁盘使用情况有时感觉硬盘反映很慢,或需要查看日志所在分区时,下列命令可以查看磁盘的使用情况,很有用:①查看硬盘分区情况fdisk –l②查看当前硬盘使用情况df –h③查看硬盘性能# iostat -x 1 10Linux 2.6.18-92.el5xen 03/01/2010avg-cpu: %user %nice %system %iowait %steal %idle1.10 0.00 4.82 39.54 0.07 54.46Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %utilsda 0.00 3.50 0.40 2.50 5.60 48.00 18.48 0.00 0.97 0.97 0.28sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00sdc 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00sdd 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00sde 0.00 0.10 0.30 0.20 2.40 2.40 9.60 0.00 1.60 1.60 0.08sdf 17.40 0.50 102.00 0.20 12095.20 5.60 118.40 0.70 6.81 2.09 21.36sdg 232.40 1.90 379.70 0.50 76451.20 19.20 201.13 4.9413.78 2.45 93.16像我们公司,开发人员占多数。
有时为了节约成本,会同时采购一些性价比比较高的二手服务器;这时一般将服务器的硬件的工作模式设置为RAID1,同时对几种型号的服务器作相同文件的写操作,然后各自执行iostat –d,作对比性测试。
这样服务器的硬盘性能孰优孰劣,一下子就能对比出来。
图解:Tps 该设备每秒I/O传输的次数(每秒的I/O请求)Blk_read/s 表求从该设备每秒读的数据块数量Blk_wrth/s 表示从该设备每秒写的数据块数量四、查看系统内核查看系统内核主要为了掌握其版本号,为安装LVS等软件做准备。
uname –a有关查看内核信息的更多指令,可参考Linux查看版本信息及CPU内核、型号等一文。
有关Linux的内核优化,则可参考Linux 2.6.31内核优化指南一文。
五、查看服务器使用的Linux发行版的名称、版本号及描述信息等lsb_release -a这是我的某台用于SVN实验的vmware机器情况:六、查看服务器的平均负载感觉到系统压力较大时用可top或uptime查看下服务器的平均负载。
uptime的另一个用法是查看你的Linux服务器已经稳定运行多少天没有重启了,我这边的机器最高记录是360多天。
七、查看系统整体性能情况如果感觉系统比较繁忙,可以用vmstat查看系统整体性能情况。
vmstat不仅仅适应于linux系统,它一样适用于FreeBSD等unix系统。
vmstat 1 2如果 r经常大于 4 ,且id经常少于40,表示cpu的负荷很重。
如果pi,po 长期不等于0,表示内存不足。
如果disk 经常不等于0,且在 b中的队列大于3,表示 io性能不好。
编辑推荐:Linux系统监控工具之vmstat详解八、查看系统已载入的相关模块Linux操作系统的核心具有模块化的特性,应此在编译核心时,务须把全部的功能都放入核心。
你可以将这些功能编译成一个个单独的模块,待需要时再分别载入。
比如说在安装LVS+Keepalived,下列用法被经常用到:#检查内核模块,看一下ip_vs是否被加载lsmod |grep ip_vsip_vs 77313 0如果要查看当前系统的已加载模块,直接lsmod。
九、Linux下查找PCI设置有时需要在Linux下查找PCI设置,可用lspci命令,它可以列出机器中的PCI 设备,比如声卡、显卡、Modem、网卡等,主板集成设备也能列出来。
lspci 读取的是hwdata 数据库。
有的小伙可能和我一样,最关心的还是网卡型号:[root@mail ~]# lspci | grep Ethernet03:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5708 Gigabit Ethernet (rev 12)07:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5708 Gigabit Ethernet (rev 12)推荐阅读:七大实用命令行工具玩转Linux网络配置。
至于网络流量的监控,建议用centos自带的工具iptraf,其用法可参考这篇文章。
掌握上面这九条,你对你的Linux服务器的硬件信息基本就可以随时掌控了。
明明白白你的Linux服务器——网络篇(1)一、服务器的网络配置在服务器的网络配置时,喜欢图形的朋友可用setup或system-config-network来配置。
网卡配置文件为/etc/sysconfig/network-scripts/ifcfg-eth0,设置完毕后直接用service network restart生效1.[root@linpcl root]#cat /etc/sysconfig/networking/devices/ifcfg-rth02.DEVICE=eth03.ONBOOT=yes4.BOOTPROTO=static5.IPADDR=192.168.0.2MASK=255.255.255.07.GATEWAY=192.168.0.1GATEWAY选项可以设置网关参数,这里注意下ONBOOT选项,它表示网卡是否随系统启动而启动,此项一定要设置成on这里介绍二个不是太常用的参数USERCTL=no,即不允许普通用户修改网卡PEERDNS=yes,它表示允许从DHCP获得的DNS覆盖本地的DNS查看本机所有的网卡情况 ifconfig –a,更高级的网卡路由命令用ip addr,特别是你的服务器由keepalived绑定了虚拟VIP后用其查看很方便查看本机路由 netstat –rn 或route增加一条本机网络路由用命令route add -net 172.16.6.0 netmask 255.255.255.0 gw 172.16.2.25,即增加一条网络172.16.6.0/24 经过172.16.2.254 ,这个地址也可以理解为你的下一跳的地址删除路由用命令route del –net 172.16.86.0/24如果要永久的生效可用文件编辑的办法vim /etc/sysconfig/network-scripts/route-eth0172.16.6.0/24 via 172.16.2.25查看本机的DNS服务器 cat /etc/resolv.conf查看主机名hostname查看主机名对应的IP地址 /etc/hosts它的执行顺序是优于DNS的,现在多用于集群环境,比如Heartbeat;还有一个妙用,在没用DNS的环境中做测试时,直接改服务器的此文件,达到优先解析的目的查看与本机直连的网络设备用命令arp这里跟大家介绍一个很有用的工具,mii-tool,判断哪块网卡连接了网线,同事们靠抽插网线来判断哪个网卡连接了网线的办法比较没有效率1.[root@mail~]#mii-tool2.eth0: negotiated 100baseTx-FD flow-control, link ok3.SIOCGMIIPHY on 'eth1' failed: Resource temporarily unavailable大家看这段文字可能没什么感觉,但到了机房就非常有用了,特别是那些网卡多的服务器,我见得最多的某台Linux服务器上绑定了六块网卡。