September 1, 2011
Linux系统监控工具之vmstat详解
"vmstat是一个十分有用的Linux系统监控工具,使用vmstat命令可以得到关于进程、内存、内存分页、堵塞IO、traps及CPU活动的信息。\n一、前言\n很显然从名字中我们就可以知道vmstat是一个查看虚拟内存(Virtual Memory)使用状况的工具,但是怎样通过vmstat来发现系统中的瓶颈呢?在回答这个问题前,还是让我们回顾一下Linux中关于虚拟内存相关内容。\n二、虚拟内存运行原理\n在系统中运行的每个进程都需要使用到内存,但不是每个进程都需要每时每刻使用系统分配的内存空间。当系统运行所需内存超过实际的物理内存,内核会释放某些进程所占用但未使用的部分或所有物理内存,将这部分资料存储在磁盘上直到进程下一次调用,并将释放出的内存提供给有需要的进程使用。\n在Linux内存管理中,主要是通过“调页Paging”和“交换Swapping”来完成上述的内存调度。调页算法是将内存中最近不常使用的页面换到磁盘上,把活动页面保留在内存中供进程使用。交换技术是将整个进程,而不是部分页面,全部交换到磁盘上。\n分页(Page)写入磁盘的过程被称作Page-Out,分页(Page)从磁盘重新回到 …"
September 1, 2011
PHP-FPM高负载的解决办法
"这里只是介绍了php-fpm的优化方法的,但一般情况下和nginx组合使用的时候,单独优化其中一项的话,作用不是特别的大,同时还需要对nginx进行优化.nginx的做法方法参考:.上面的优化前和优化后的图,看得出前后差距还是特别的大的.\n导致nginx 502 bad gateway的PHP-CGI(FASTCGI)\nNGINX频爆502 BAD GATEWAY的错误,看了网上的教程,仍没有彻底解决。\n目前我总结的解决502 BAD GATEWAY的方式有:\n1.视服务器的性能,在php-fmp.conf里增加max_children的值,我目前用的15.\n2.用reload参数定时重载php-fpm。这个主要原因是php脚本执行时间过长造成的,重载php-fpm能杜绝这个问题。如何彻底解决php-cgi脚本占用大量内存从而导致502错误的产生还值得进一步探讨,目前该做法不失为一种好办法。\n具体的做法是,用crontab让php-fpm平滑重启,从而不影响PHP脚本的运行。\n*/10 * * * * /usr/local/php/sbin/php-fpm reload …"
September 1, 2011
Linux主分区,扩展分区,逻辑分区的联系和区别
"言归正传,在安装 CentOS5.3 的过程中,会遇到磁盘分区的界面,下拉式菜单中有 4 个选项,这时你不要选择默认,打开下拉式菜单,选择最后一项(翻译成中文意思是:建立自定义的分割模式)。然后选择右下角的确认,在下一个对话界面里依序建立 / 、 /home 及 swap ,完成后如图。确认设置后的分割区。\n为强调重点,把图中重要内容,再写一遍。\n/ 根目录 ext3 hda1\n/home 用户目录 ext3 hda2\nSwap 交换分区 swap hda3\n对 hda1 的解释:\nhd : IDE 硬盘。如果是 SCSI 硬盘,则为 sd ,这个只能记住,没有更好的办法。\na: : 第一块硬盘。如果是第二块硬盘,则为 b ,依此类推 c,d……\n1 : 主分区。其中 1 , 2 , 3 , 4 都是主分区,从第 5 开始为逻辑分区,最大到 16\n磁盘容量与主分区、扩展分区、逻辑分区的关系:\n硬盘的容量=主分区的容量+扩展分区的容量扩展分区的容量=各个逻辑分区的容量之和\n一块物理硬盘只能有 : 一到四个主分区 ( 但其中只能有一个是活动的主分区 ), 或一到三个主分区 , 和一个扩展分 …"
September 1, 2011
Linux(nginx)下安装awstats日志分析软件
"这里用的是centos的系统,linux上的安装方法基本上都一样的.\n一.下载awstats软件\n从地址可以下载,这里使用的是最新的7.0的版本\n#cd /usr/local #wget http://cdnetworks-kr-1.dl.sourceforge.net/project/awstats/AWStats/7.0/awstats-7.0.zip#unzip awstats-7.0.zip awstats #chmod +x /usr/local/awstats/tools/awstats_configure.pl #chmod +x /usr/local/awstats/wwwroot/cgi-bin/awstats.pl #chmod +x /usr/local/awstats/tools/awstats_buildstaticpages.pl #用来存放swstats的数据文件 #mkdir /var/lib/awstats\n二.创建配置文件\n#cd /usr/local/awstats/tools/ #perl ./awstats_configure.pl\n根据提示信 …"
September 1, 2011
Linux下如何查看 CPU 信息, 包括位数和多核信息
"查看当前操作系统内核信息 # uname -aLinux redcat 2.6.31-20-generic #58-Ubuntu SMP Fri Mar 12 05:23:09 UTC 2010 i686 GNU/Linux\n查看当前操作系统发行版信息\n#cat /etc/issue\nUbuntu 9.10 n l查看cpu型号# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c\n2 Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz\n(看到有2个逻辑CPU, 也知道了CPU型号)查看物理cpu颗数\n# cat /proc/cpuinfo | grep physical | uniq -c2 physical id : 0\n(说明实际上是1颗2核的CPU)查看cpu运行模式\ngetconf LONG_BIT32(说明当前CPU运行在32bit模式下, 但不代表CPU不支持64bit)查看cpu是否支持64bit# cat /proc/cpuinfo | grep flags | grep ‘ …"
September 1, 2011
linux 下如何查看和踢除正在登陆的其它用户
"如何在linux下查看当前登录的用户,并且踢掉你认为应该踢掉的用户? 请使用who这个命令来查看当前正在登录的用户\n[root@localhost http]# who root tty1 Apr 9 13:17 http pts/0 Apr 16 15:13 (192.168.8.235) http pts/1 Apr 16 15:13 (192.168.8.235)\n注意:可能有朋友马上要叫出来了:“什么?!有3个用户在登录!我被黑了!”,呵呵,开玩笑了~~上面的消息告诉我们:\ntty是指在任何一个虚拟控制台登录则产生一个tty,比如你插上显示器登录主机,就会增加一个tty.\npts是每一个远程连接都会产生的,比如我现在使用ftp客户端连接到主机上,主机就会产生一个pts,事实上上面的192.168.8.235就是我,那两个http就我的连接。 tty和pts详见:\n要踢出某个用户以及该用户运行的程序(很野蛮),请采用如下方法: 比如:想踢除http这个用户和他的所有开启的程序执行下面命令\npkill -u http\n注意:这个命令实际上很危险,要相当小心的执行!! 说他危险的原因 …"
September 1, 2011
LINUX下判断CPU和系统是32位还是64位
"判断操作系统是32位还是64位的方法:\n输入如下命令:\n$ uname -a\n输出:\nx86_64 GNU/Linux 表示64位内核\ni386/i486/i586/i686 表示32位内核\n判断Linux kernel是32位还是64位的方法:\n输入如下命令:\n$ cat /proc/cpuinfo |grep flags\n输出:\nlm(long mode) 表示64位CPU\nProtoected 表示32位CPU\nReal 表示16位CPU\n==================================================================\n在LINUX下怎样决断你的CPU是32位还是64位?\n打入下面的命令\ngrep flags /proc/cpuinfo\n输出\nflags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm nx lm\n如果找到lm, 则说明你 …"
August 31, 2011
linux 系统tty、pty和pts 的概念及区别
"基本概念:\ntty(终端设备的统称): tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被键盘与显示器取代,所以现在叫终端比较合适。\n终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。\npty(虚拟终端): 但是如果我们远程telnet到主机或使用xterm时不也需要一个终端交互么?是的,这就是虚拟终端pty(pseudo-tty)\npts/ptmx(pts/ptmx结合使用,进而实现pty): pts(pseudo-terminal slave)是pty的实现方法,与ptmx(pseudo-terminal master)配合使用实现pty。\nLinux终端:\n在Linux系统的设备特殊文件目录/dev/下,终端特殊设备文件一般有以下几种:\n1、串行端口终端(/dev/ttySn)\n串 行端口终端(Serial Port Terminal)是使用计算机串行端口连接的终端设备。计算机把每个串行端口都看作是一个字符设备。有段时间这些串行端口设备通常被称为终端设 …"
August 31, 2011
为VMware Linux增加虚拟硬盘
"VMware安装Linux的时候默认分配的空间是4GB,可能会不够,这个时候可以通过增加一块虚拟硬盘,将/usr或其他内容拷贝过去解决这个问题:\n总个操作过程可分为:\n分区 格式化 挂载 三个过程.\n创建虚拟硬盘 1、关闭VM中正在运行的虚拟系统;\n2、在虚拟系统名称上点右键-》Virtual Machine Settings; 3、在Hardware页点“Add”-》Add a hard disk-》Create a new virtual disk-》SCSI(recommended)-》分配空间大小-》OK; 4、可以看见Hardware中出现了一块新的硬盘Hard Disk 2。\n对虚拟硬盘进行分区和格式化 [root@cncmail data1]# fdisk -l ## 这里是查看目前系统上有几块硬盘\nDisk /dev/sda: 36.4 GB, 36401479680 bytes 255 heads, 63 sectors/track, 4425 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes …"
August 30, 2011
Call to undefined function curl_init()错误解决
"提示不支持这个函数,于是在php.ini文件里启用了扩展,把前面的;去掉,重启apache,竟然不起作用.后来查找了一下,原来还需要两个dll(libeay32.dll、ssleay32.dll)文件支持,将dll复制到c:/windows/system32目录里.然后重启apache即可.\n特在此记录一下."