07. 23.
其实就是因为一次本机启动apache的时候,无论如何也启动不了,实际上是我忘记了N久之前开启过一次IIS,shit!因为我从来没把问题往这里考虑,思维固化的恶果啊……
找到到使用80端口进程的PID
C:\> netstat -ano|findstr “80″
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 2328
然后找进程名了
C:\> tasklist|findstr “2328″
httpd.exe 2328 Console 0 23,956 K
那么可以确定httpd.exe在使用80端口了,可以放心结束进程或者关闭相关程序或者服务什么的了~~
其他端口一样的方式去查找。
04. 4.
之前由于精简系统的服务而没有开启irqbalance服务,但是irqbalance现在被证实为非常有必要的服务,他的主要功能是可以合理的调配使用各个CPU核心,特别是对于目前主流多核心的CPU,简单的说就是能够把压力均匀的分配到各个CPU核心上,对提升性能有很大的帮助,我引用一段话:
启用 irqbalance 服务,既可以提升性能,又可以降低能耗。irqbalance 用于优化中断分配,它会自动收集系统数据以分析使用模式,并依据系统负载状况将工作状态置于 Performance mode 或 Power-save mode。处于 Performance mode 时,irqbalance 会将中断尽可能均匀地分发给各个 CPU core,以充分利用 CPU 多核,提升性能。处于 Power-save mode 时,irqbalance 会将中断集中分配给第一个 CPU,以保证其它空闲 CPU 的睡眠时间,降低能耗。(详见:http://www.irqbalance.org/documentation.php)
开启irqbalance服务,具体操作如下:
shell> chkconfig –level 2345 irqbalance on
shell> service irqbalance start
如果没有此服务,请先安装依赖软件包,操作如下:
shell> yum -y install irqbalance
shell> service irqbalance start
可以使用shell>mpstat -P ALL 1 10来观察前后的实际的CPU使用运行情况。
01. 1.
一直莫名其妙的遇到类似这样错误:connect() to unix:/tmp/php-fcgi.sock failed (11: Resource temporarily unavailable) while connecting to upstream,N久之后才发现了Igor Sysoev的留言。
原文链接:http://marc.info/?l=nginx&m=125423942216521&w=2
> I found that :
>
> #define NGX_LISTEN_BACKLOG 511
>
> and use it as the backlog of listen()
>
> ls.backlog = NGX_LISTEN_BACKLOG;
> if (listen(s, ls.backlog) == -1) {
>
> Does it mean that only 511 connection could be accept at the same time ?
No, it means that up to 511 connections can be queued in kernel listen
queue. 511 is just a safe limit for the most OSes. For FreeBSD it’s -1,
i.e., value of sysctl kern.ipc.somaxconn.
> May I modify it to 1024 or higher( I am sure use it less than SOMAXCONN )
listen 80 default backlog=1024;
–
Igor Sysoev
阅读全文 »
12. 1.
一、PPTP 协议介绍
1、PPTP 简介
PPTP: Point to Point Tunneling Protocol
点对点隧道协议(PPTP)是一种支持多协议虚拟专用网络的网络技术。通过该协议,远程用户能够通过 Microsoft Windows NT 工作站、Windows 95 和 Windows 98 操作系统以及其它装有点对点协议的系统安全访问公司网络,并能拨号连入本地 ISP,通过 Internet 安全链接到公司网络。
PPTP 可以用于在 IP 网络上建立 PPP 会话隧道。在这种配置下,PPTP 隧道和 PPP 会话运行在两个相同的机器上,呼叫方充当 PNS。PPTP 使用客户机-服务器结构来分离当前网络访问服务器具备的一些功能并支持虚拟专用网络。PPTP 作为一个呼叫控制和管理协议,它允许服务器控制来自 PSTN 或 ISDN 的拨入电路交换呼叫访问并初始化外部电路交换连接。
PPTP 只能通过 PAC 和 PNS 来实施,其它系统没有必要知道 PPTP。拨号网络可与 PAC 相连接而无需知道 PPTP。标准的 PPP 客户机软件可继续在隧道 PPP 链接上操作。
PPTP 使用 GRE 的扩展版本来传输用户 PPP 包。这些增强允许为在 PAC 和 PNS 之间传输用户数据的隧道提供低层拥塞控制和流控制。这种机制允许高效使用隧道可用带宽并且避免了不必要的重发和缓冲区溢出。PPTP 没有规定特定的算法用于低层控制,但它确实定义了一些通信参数来支持这样的算法工作。
阅读全文 »
11. 8.
There is no Zend Optimizer for PHP 5.3 currently, so php codes encrypted with Zend Guard do not work.
Zend has promised a new version of Zend Optimiser and Zend Guard for PHP 5.3 later this year. But there is a catch, because of compatibility problems apps encrypted with older Zend Guard versions will probably not work with PHP 5.3 .
source: http://forums.zend.com/viewtopic.php?f=57&t=1365
10. 2.
某台前端服务器发现iconv函数数据输出为空。其他前端则输出正常;系统版本和安装的软件包都是一样;经过分析基本判断为gd库和iconv的冲突问题只要php编译中加入gd库支持就会导致这一情况。
但是在前端服务器里面缺完全没有这个问题,看来只是针对特定硬件出现的问题。解决方法是把gd或者iconv作为作为动态模块加载,总之避免gd和iconv同时使用静态方式编译就行。
php动态方式加载gd编译方法
首先安装好gd
假设gd是安装在/usr/local/gd,php是安装在/usr/local/php
cd /usr/local/src/php-5.2.8/ext/gd/
/usr/local/php/bin/phpize
./configure –with-gd=/usr/local/gd –with-php-config=/usr/local/php/bin/php-config
make && make install
09. 24.
key_buffer_size – 这对MyISAM表来说非常重要。如果只是使用MyISAM表,可以把它设置为可用内存的 30-40%。合理的值取决于索引大小、数据量以及负载。
记住,MyISAM表会使用操作系统的缓存来缓存数据,因此需要留出部分内存给它们,很多情况下数据比索引大多了。尽管如此,需要总是检查是否所有的 key_buffer 都被利用了。
.MYI 文件只有 1GB,而 key_buffer 却设置为 4GB 的情况是非常少的。这么做太浪费了。如果你很少使用MyISAM表,那么也保留低于 16-32MB 的 key_buffer_size 以适应给予磁盘的临时表索引所需。
innodb_buffer_pool_size – 这对Innodb表来说非常重要。Innodb相比MyISAM表对缓冲更为敏感。MyISAM可以在默认的 key_buffer_size 设置下运行的可以,然而Innodb在默认的 innodb_buffer_pool_size 设置下却跟蜗牛似的。由于Innodb把数据和索引都缓存起来,无需留给操作系统太多的内存,因此如果只需要用Innodb的话则可以设置它高达 70-80% 的可用内存。如果你的数据量不大,并且不会暴增,那么无需把 innodb_buffer_pool_size 设置的太大了。
innodb_additional_pool_size – 这个选项对性能影响并不太多,至少在有差不多足够内存可分配的操作系统上是这样。不过如果你仍然想设置为 20MB(或者更大),因此就需要看一下Innodb其他需要分配的内存有多少。
06. 17.
环境:centos x86_64
说明:使用daemon的方式来跑svn,不使用apache
首先到:http://subversion.tigris.org/ 下载最新的subversion源码
我下的是:http://subversion.tigris.org/downloads/subversion-1.6.2.tar.bz2
解压:tar jxvf subversion-1.6.2.tar.bz2
cd subversion-1.6.2
svn co http://svn.apache.org/repos/asf/apr/apr/branches/1.2.x apr
svn co http://svn.apache.org/repos/asf/apr/apr-util/branches/1.2.x apr-util
下载:wget -c http://www.sqlite.org/sqlite-amalgamation-3.6.13.tar.gz
解压缩sqlite-amalgamation-3.6.13.tar.gz
并且把其中的sqlite3.c拷贝到(不存在的路径自己建立):
cp sqlite-3.6.13/sqlite3.c ./subversion-1.6.2/sqlite-amalgamation/
04. 24.
最近发现两台MySQL server在中午的时候忽然(很突然的那种)发飙,不断的挂掉。重启mysql也尽是失败,看mysql的errorlog,只能看到类似如下的信息:
Forcing close of thread 12232 user: ‘root’
用mysqladmin 简单的监控了下mysql的情况:
mysqladmin -uroot -p******** status -i 1
发现Queries per second avg只有200左右,可以说很低,但是Threads 确非常不稳定,居然会瞬间升级200以上,一般情况下这个线程这个值都是不会高于5的个位数!
然后继续看
mysqladmin -uroot -p******** processlist
居然有大量的unauthenticated user?? 如下情况
04. 20.
本文系转载精文,原文地址:http://www.sudone.com/nginx/nginx_vs_lvs.html
lvs和nginx都可以用作多机负载的方案,它们各有优缺,在生产环境中需要好好分析实际情况并加以利用。
首先提醒,做技术切不可人云亦云,我云即你云;同时也不可太趋向保守,过于相信旧有方式而等别人来帮你做垫被测试。把所有即时听说到的好东西加以钻研,从而提高自己对技术的认知和水平,乃是一个好习惯。
下面来分析一下两者:
一、lvs的优势:
1、抗负载能力强,因为lvs工作方式的逻辑是非常之简单,而且工作在网络4层仅做请求分发之用,没有流量,所以在效率上基本不需要太过考虑。在我手里的 lvs,仅仅出过一次问题:在并发最高的一小段时间内均衡器出现丢包现象,据分析为网络问题,即网卡或linux2.4内核的承载能力已到上限,内存和 cpu方面基本无消耗。
2、配置性低,这通常是一大劣势,但同时也是一大优势,因为没有太多可配置的选项,所以除了增减服务器,并不需要经常去触碰它,大大减少了人为出错的几率。
阅读全文 »
hao32