- 查看cpu详细情况
物理cpu个数 [root@localhost ~]# cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l 1 每个物理cpu中core的个数(核数) [root@localhost ~]# cat /proc/cpuinfo | grep "cpu cores" | uniq cpu cores : 2 逻辑cpu的个数 [root@localhost ~]# cat /proc/cpuinfo | grep "processor" | wc -l 2 [root@localhost ~]#
- 查看内存
[root@localhost ~]# free -m total used free shared buffers cached Mem: 1005 428 576 0 89 210 -/+ buffers/cache: 129 875 Swap: 2041 0 2041
- 查看硬盘及分区信息
[root@localhost ~]# fdisk -l Disk /dev/sda: 500.1 GB, 500107862016 bytes 240 heads, 63 sectors/track, 64601 cylinders Units = cylinders of 15120 * 512 = 7741440 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk identifier: 0x27292728 Device Boot Start End Blocks Id System /dev/sda1 * 1 3468 26218048+ 7 HPFS/NTFS Partition 1 does not start on physical sector boundary. /dev/sda2 3469 64601 462165480 f W95 Ext'd (LBA) /dev/sda5 3469 6937 26225608+ b W95 FAT32 Partition 5 does not start on physical sector boundary. /dev/sda6 6938 6965 204800 83 Linux /dev/sda7 6965 56002 370722816 83 Linux /dev/sda8 56002 58776 20971520 83 Linux /dev/sda9 58777 61551 20971520 83 Linux /dev/sda10 61551 64325 20971520 83 Linux /dev/sda11 64325 64601 2091008 82 Linux swap / Solaris
- 检查文件系统的磁盘空间占用情况
[root@localhost ~]# df -h 文件系统 容量 已用 可用 已用%% 挂载点 /dev/sda8 20G 418M 19G 3% / tmpfs 503M 0 503M 0% /dev/shm /dev/sda6 194M 27M 158M 15% /boot /dev/sda7 349G 1.6G 329G 1% /home /dev/sda9 20G 4.6G 15G 25% /usr /dev/sda10 20G 443M 19G 3% /var
- 查看硬盘的I/O性能
[wm@localhost test]$ iostat -d -x -k 1 10 Linux 2.6.32-358.el6.i686 (localhost.wangmeng) 2015年04月13日 _i686_ (2 CPU) Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util sda 3.66 0.80 4.47 0.30 245.38 4.38 104.91 0.02 3.69 2.20 1.05 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util sda 0.00 0.00 1.00 0.00 8.00 0.00 16.00 0.01 10.00 10.00 1.00 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
- 查看Linux系统中某目录的大小
[wm@localhost workspace]$ du -sh test 16K test
- 查看目录大小排序
[root@localhost workspace]# du -sh * | sort -nr 836K libevent-2.0.22-stable.tar.gz 776K shell-98-v1 169M glibc-2.21 108K src.2e.tar.gz 50M Mastering_CMake.pdf
- 查看当前分区挂载点占用空间最多的文件或目录,从大到小10个
[root@localhost workspace]# du -cks * |sort -rn |head -n 10 308304 总用量 173020 glibc-2.21 50976 Git权威指南.pdf 50340 Mastering_CMake.pdf 24656 glibc-2.21.tar.gz 3880 libevent-2.0.22-stable 3576 apue.2e 836 libevent-2.0.22-stable.tar.gz 776 shell-98-v1 108 src.2e.tar.gz
- 查看平均负载
[root@localhost workspace]# uptime 07:11:46 up 1:47, 1 user, load average: 0.00, 0.00, 0.00
- 查看系统当前有哪些用户,占用了哪些终端
[wm@localhost ~]$ tty /dev/pts/0 [wm@localhost ~]$ who am i wm pts/0 2015-04-22 06:22 (192.168.1.101) [wm@localhost ~]$ w 06:38:13 up 16 min, 1 user, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT wm pts/0 192.168.1.101 06:22 0.00s 0.05s 0.00s w [wm@localhost ~]$ who wm pts/0 2015-04-22 06:22 (192.168.1.101)
- 动态命令top查看负载
[root@localhost workspace]# top top - 07:13:29 up 1:49, 1 user, load average: 0.00, 0.00, 0.00 Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 1029408k total, 259264k used, 770144k free, 82044k buffers Swap: 2091000k total, 0k used, 2091000k free, 55980k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3101 root 20 0 2700 1092 860 R 0.3 0.1 0:00.05 top
- 使用vmstat监控Linux系统的整体性能
[root@localhost workspace]# vmstat procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 770292 82052 55980 0 0 108 2 41 35 2 1 97 0 0 [root@localhost workspace]#
- 查看系统内核
[root@localhost workspace]# uname -a Linux localhost.wangmeng 2.6.32-358.el6.i686 #1 SMP Thu Feb 21 21:50:49 UTC 2013 i686 i686 i386 GNU/Linux [root@localhost workspace]# uname -r 2.6.32-358.el6.i686
- 查看系统体系结构
[wm@adx ~]$ uname -m x86_64 [wm@adx ~]$ arch x86_64
- 查看系统是32位或者64位
[root@localhost workspace]# file /sbin/init /sbin/init: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
- 是否存在/lib64目录,有则是64位
[root@localhost workspace]# ls -lF / | grep /$
- 查看发行版本
[root@localhost workspace]# lsb_release -a LSB Version: :base-4.0-ia32:base-4.0-noarch:core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-ia32:printing-4.0-noarch Distributor ID: CentOS Description: CentOS release 6.4 (Final) Release: 6.4 Codename: Final
- 查看lvs模块是否载入
[root@localhost workspace]# lsmod | grep ip_vs
- 查看pci信息
[root@localhost workspace]# lspci | grep Ether 05:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8056 PCI-E Gigabit Ethernet Controller (rev 14)
网卡监控命令miit-tool和iptraf
- 查看所有限制值
[wm@localhost ~]$ ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 7920 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 10240 cpu time (seconds, -t) unlimited max user processes (-u) 1024 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
- 系统最大文件打开数总限制
[wm@localhost ~]$ cat /proc/sys/fs/file-max 100962
- 整个系统目前使用的文件句柄数量
[wm@localhost ~]$ cat /proc/sys/fs/file-nr 1056 0 100962
- lsof命令查看某个进程打开了哪些句柄,也可以看到某个文件/目录被什么警察占用了
[wm@localhost ~]$ lsof | more COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME init 1 root cwd unknown /proc/1/cwd (readlink: Permission denied) init 1 root rtd unknown /proc/1/root (readlink: Permission denied) init 1 root txt unknown /proc/1/exe (readlink: Permission denied) init 1 root NOFD /proc/1/fd (opendir: Permission denied) kthreadd 2 root cwd unknown /proc/2/cwd (readlink: Permission denied) kthreadd 2 root rtd unknown /proc/2/root (readlink: Permission denied)
- 修改ulimits数值永久生效,则必须修改配置文档
[wm@localhost ~]$ vim /etc/profile [wm@localhost ~]$ vim /etc/sysctl.conf // 不会改变用户的ulimits -a 只是/proc/sys/fs/file-max的值变了 [wm@localhost ~]$ vim /ect/security/limits.conf // 添加soft nofile 32768 hard nofile 65536 文件句柄限制改成软32768,硬65536 重启失效 [wm@localhost ~]$ vim /etc/rc.loal // 添加 ulimit -SHn 65535 -H 硬限制(实际限制),-S软限制(警告限制)
- crontab防止脚本周期内未执行完重复执行
如果某脚本要运行30分钟,可以在Crontab里把脚本间隔设为至少一小时来避免冲突。而比较糟的情况是可能该脚本在执行周期内没有完成,接着第 二个脚本又开始运行了。如何确保只有一个脚本实例运行呢?一个好用的方法是利用lockf(FreeBSD 8.1下为lockf,CentOS 5.5下为flock),在脚本执行前先检测能否获取某个文件锁,以防止脚本运行冲突。
lockf的参数如下:
-k:一直等待获取文件锁。
-s:silent,不发出任何信息,即使拿不到文件锁。
-t seconds:设定timeout的时间是seconds秒,如果超过时间,则自动放弃。
以下Crontab计划任务执行前,需获取临时文件create.lock的文件锁,此项Crontab计划任务的内容如下:
1*/10 * * * * (lockf -s -t 0 /tmp/create.lock /usr/bin/python /home/project/cron/create_tab.py >> /home/project/logs/create.log 2>&1)
若第一个实例在10分钟内没有运行完,第2个实例不会运行。我以前是通过Shell脚本来解决这个问题的,比如用while...do循环,然后放在后台执行。但后来发现其实用flock或lockf方法更为简单。
lockf的参数如下:
-k:一直等待获取文件锁。
-s:silent,不发出任何信息,即使拿不到文件锁。
-t seconds:设定timeout的时间是seconds秒,如果超过时间,则自动放弃。
以下Crontab计划任务执行前,需获取临时文件create.lock的文件锁,此项Crontab计划任务的内容如下:
1*/10 * * * * (lockf -s -t 0 /tmp/create.lock /usr/bin/python /home/project/cron/create_tab.py >> /home/project/logs/create.log 2>&1)
若第一个实例在10分钟内没有运行完,第2个实例不会运行。我以前是通过Shell脚本来解决这个问题的,比如用while...do循环,然后放在后台执行。但后来发现其实用flock或lockf方法更为简单。