全面了解Linux 服务器
-------------------------------------------------------------------------------------------------------------------------
查看系统的版本信息
一。查看内核版本命令:
1) [root@SOR_SYS ~]# cat /proc/version
Linux version 2.6.18-238.el5 (
[email protected]) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-50)) #1 SMP Sun Dec 19 14:22:44 EST 2010
[root@SOR_SYS ~]#
2)[root@SOR_SYS ~]# uname -r
2.6.18-238.el5
3)[root@SOR_SYS ~]# uname -a
Linux SOR_SYS.99bill.com 2.6.18-238.el5 #1 SMP Sun Dec 19 14:22:44 EST 2010 x86_64 x86_64 x86_64 GNU/Linux
[root@SOR_SYS ~]#
二。查看linux版本:
1) 登录到服务器执行 lsb_release -a ,即可列出所有版本信息,例如:
[root@SOR_SYS ~]# lsb_release -a
LSB Version: :core-4.0-amd64:core-4.0-ia32:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-ia32:printing-4.0-noarch
Distributor ID: RedHatEnterpriseAS
Description: Red Hat Enterprise Linux AS release 4 (Nahant Update 4)
Release: 4
Codename: NahantUpdate4
[root@SOR_SYS ~]#
注:这个命令适用于所有的linux,包括Redhat、SuSE、Debian等发行版。
2) 登录到linux执行cat /etc/issue,例如如下:
[root@SOR_SYS ~]# cat /etc/issue
Red Hat Enterprise Linux Server release 5.6 (Tikanga)
Kernel \r on an \m
[root@SOR_SYS ~]#
3) 登录到linux执行cat /etc/redhat-release ,例如如下:
[root@SOR_SYS ~]# cat /etc/redhat-release
Red Hat Enterprise Linux AS release 4 (Nahant Update 4)
[root@SOR_SYS ~]#
注:这种方式下可以直接看到具体的版本号,比如 AS4 Update 1
4)登录到linux执行rpm -q redhat-release ,例如如下:
[root@SOR_SYS ~]# rpm -q redhat-release
redhat-release-5Server-5.6.0.3
-------------------------------------------------------------------------------------------------------------------------------
一.查看Linux系统是几位的操作系统
uname -a
二,查看Linux服务器的cpu 详细情况
1.具有相同core id的CPU是同一个core 的超线程,具有相同physical id 的CPU 是同一个CPU封装的线程或核心
查看物理CPU 个数如下
#cat /proc/cpuinfo|grep "physical id "|sort|uniq|wc -l 真实机
查看个物理CPU中core 的个数(即核数)如下所示:
cat /proc/cpuinfo/grep ''cpu coress " |uniq
产看逻辑cpu 的个数
#cat /proc/cpuinfo |grep "processor"|wc -l 所有的机器
三. 查看Linux 服务器的内存使用情况
free -m
total:内存的总数
used:已经使用的内存数
free:空闲的内存数
shared :多个进程共享的内存总额,当数值是0表示当前已经废弃不用。
-buffers/cache:(已用)的内存数,即used-buffers-cached (这里used 是第一行的used,buffers和cached 也是第一行的)
+buffers/cache:(可用)的内存数,即free+buffers+cached (这里used是第一行的used,buffers和cached 也是第一样的)
在linux 系统下,只要swap 的交换空间没有使用或者说用的很少,说明我们的物理内存够用。
四查看Linux服务器的硬盘使用情况
1.查看硬盘分区信息
fdisk -l
2.查看文件系统的硬盘空间占用情况
df -h
3.查看硬盘的i/0性能
注:iostat 是含在套装sysstat 中的,yum install sysstat -y
iostat -d -x -k 1 10
iostat -x 1 5 :查看iostat 的返回结果
rrqm/s:每秒进行merge的读操作数目,即delta (rmerge)/s
wrqm/s :每秒进行merge的写操作数目,即delta (wmerge)/s
r/s:每秒完成的读i/o 设备次数,即delta(rio)/s
w/s:每秒完成的写i/o 设备次数,即delta(wio)/s
rsec/s:每秒读扇区数,即delta (rsect)/s
wsec/s:每秒写扇区数,即delta (rsect)/s
rkb/s:每秒读k字节数,即rsec/s的一半,因为每扇区大小为512字节。
wkb/s:每秒写k字节数,是wsec/s的一半
avgrp-sz:平均每次设备I/O操作的数据大小(即扇区),即delta(reset+wset)/delta(rio+wio)
avgqu-sz:平均I/O队列的长度,即delta(aveq)/s/1000 (除以1000 因为aveq的单位为毫秒)。
await :平均每次设备I/O操作的服务服务时间(单位:毫秒),即delat(ruse+wuse)/delta (rio+wio)
svctm :平均每次设备I/O操作的服务时间(单位:毫秒),即delta(use)/delta(rio+wio).
%util :一秒中有百分之多少的时间用于I/O操作,或者说一秒种有多少时间I/O队列是空的
注:
%util 接近100%,说明产生的I/0请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈
如果idle 小于70%,I/O的压力就比较大了,说明读取进程中有较多的wait.同时还可以结合vmstat 查看b
参数(等待资源的进程数)和wa参数(I/O等待所占用的CPU时间的百分比,高过30%时I/O的压力就比较高了
另外还可·
·以参考如下情况,svctm 应该小于await,因为同时等待请求的等待时间被重复计算了。一般来说,svctm
的大小和磁盘性能有关,cpu/内存的负荷也会对其有一定的影响,请求过多就会间接导致svctm增加
await 的大小一般取决于服务时间(svntm)以及I/O队列的长度和I/O 请求的发出模式,如果svntm 比较接近await
,说明I/O几乎没有等待时间;如果await 远大于说明I/O队列太长
4.产看Linux 系统中某目录的大小,这个比较常用,可以用du -sh 目录名来查看
#du -sh /root
检查是否有分区使用率(use%)过高(比如超过90%)的情况,如果发现某个分区空间接近用完,可以进入该分区
的挂载点,可以用以下命令找出占用空间最多的文件或目录,然后按照从大到小的顺序,找出系统中占用
最多空间的前10个文件或目录。
#du -cks *|sort -rn|head -n 10
5.dd 命令在linux 系统中也经常用,
用dd 命令可以把指定的输入文件拷贝到指定的输出文件中,并且在拷贝过程中可以进行格式转换。
我碰到的几个需要用到dd命令的地方如下
dd if=/dev/zero of =/swapfile bs=1024 count=65535
#mkswap swapile
swapon swapfile
方法二
新建swap
mkswap /dev/sdb2 格式化
swapon /dev/sdb2 挂载上
-----------------------------------
制作ISO 镜像
dd if=/dev/cdrom of=/root/cd1.ios
-------------------------------------------------------------
linux 系统的平均负载的概念:有的时候我们觉得系统的响应时间很慢,所以在web 或系统变慢的第一时间变慢
时的第一时间查看系统的负载,即CPU 的平均负载
uptime
w :查看系统当前有哪些用户,他们占用了哪些的终端,另外还有top ,这个命令可以反映系统负载情况。top
显示的首行和uptime的首行查看一下
原来它所表示的是过去的1分钟
--------------------------------
获得nginx 的pid
ps -aux|grep 'nginx: master'|grep -v 'grep nginx'|awk '{print $2}'
可以使用一下命令查使用内存最多的5个进程
ps -aux | sort -k4nr | head 5
或者
top (然后按下M,注意大写)
可以使用一下命令查使用CPU最多的5个进程
ps -aux | sort -k3nr | head 5
或者
top (然后按下P,注意大写)
-------------------------------------------------------------
查看是32 或者64 位的系统
ls -lF /|grep lib64
另外一种常见方法是通过file 命令
file /sbin/init
----------------------------------------------------------------------------
查看服务器使用的Linux发行版本的相关信息
Linux 发行版的名称、版本、号以及描述的信息等
lsb_release -a
如果没有lsb_release 没有这个命令可以 用yum install redhat-lsb 来安装
------------------------------------------------------------------------------------------------------------
查看系统已载入的相关模块
Linux操作系统的和核心具有模块化的作用,因此在编译核心时,务虚把所有的功能都放入核心,可以将这
些功能编译成一个个单独的模块,带需要的时候在分别载入。在配置lvs+keepalived 时,我们经常来查看lvs
模块是否已经载入。