<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[李飞勃的专栏]]></title><description><![CDATA[专注于高性能web服务器]]></description><link>https://blog.youkuaiyun.com/lifeibo</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lifeibo]]></copyright><item><title><![CDATA[我的个人博客开通啦！！]]></title><link>https://blog.youkuaiyun.com/lifeibo/article/details/6042625</link><guid>https://blog.youkuaiyun.com/lifeibo/article/details/6042625</guid><author>lifeibo</author><pubDate>Mon, 29 Nov 2010 13:46:00 +0800</pubDate><description><![CDATA[<br />我的个人博客开通啦，<br />http://blog.lifeibo.com/<br />以后在这里更新文章，大家关注！！]]></description><category></category></item><item><title><![CDATA[执行perl时出现Undefined subroutine]]></title><link>https://blog.youkuaiyun.com/lifeibo/article/details/6002519</link><guid>https://blog.youkuaiyun.com/lifeibo/article/details/6002519</guid><author>lifeibo</author><pubDate>Thu, 11 Nov 2010 13:55:00 +0800</pubDate><description><![CDATA[<br /> <br />对perl研究得不是很深，平时只是随便写写，最近一次，执行perl时，出现如下错误<br />Undefined subroutine &main::like called at ./get.t line 78.<br />分析之后，其实就是未定义的函数调用，在这里，like这个函数的调用有问题，like未定义，一般是由于未引入某个库文件。<br />加入use Test::More;之后就ok了！！]]></description><category></category></item><item><title><![CDATA[Comet：基于 HTTP 长连接的“服务器推”技术]]></title><link>https://blog.youkuaiyun.com/lifeibo/article/details/5988718</link><guid>https://blog.youkuaiyun.com/lifeibo/article/details/5988718</guid><author>lifeibo</author><pubDate>Fri, 05 Nov 2010 00:58:00 +0800</pubDate><description><![CDATA[ 很多应用譬如监控、即时通信、即时报价系统都需要将后台发生的变化实时传送到客户端而无须客户端不停地刷新、发送请求。本文首先介绍、比较了常用的“服务器推”方案，着重介绍了 Comet － 使用 HTTP 长连接、无须浏览器安装插件的两种“服务器推”方案：基于 AJAX 的长轮询方式；基于 iframe 及 htmlfile 的流方式。最后分析了开发 Comet 应用需要注意的一些问题，以及如何借助开源的 Comet 框架－pushlet 构建自己的“服务器推”应用。请访问 Ajax 技术资源中心，这是有关 A]]></description><category></category></item><item><title><![CDATA[http中有关缓存相关的几个字段]]></title><link>https://blog.youkuaiyun.com/lifeibo/article/details/5979572</link><guid>https://blog.youkuaiyun.com/lifeibo/article/details/5979572</guid><author>lifeibo</author><pubDate>Mon, 01 Nov 2010 14:50:00 +0800</pubDate><description><![CDATA[Expires、Cache-Control、Last-Modified、 ETag是RFC 2616（HTTP/1.1）协议中和网页缓存相关的几个字段。前两个用来控制缓存的失效日期，后两个用来验证网页的有效性。要注意的是， HTTP/1.0有一个功能比较弱的缓存控制机制：Pragma，使用HTTP/1.0的缓存将忽略Expires和Cache-Control头。我们这里以Apache2.0服务器为例，只讨论HTTP/1.1协议。ExpiresExpires字段声明了一个网页或URL地址不再被浏览器缓存的时间]]></description><category></category></item><item><title><![CDATA[ServerAlias指令]]></title><link>https://blog.youkuaiyun.com/lifeibo/article/details/5979158</link><guid>https://blog.youkuaiyun.com/lifeibo/article/details/5979158</guid><author>lifeibo</author><pubDate>Mon, 01 Nov 2010 11:42:00 +0800</pubDate><description><![CDATA[<br />ServerAlias指令与基于域名的虚拟主机联用，设定主机的候补域名。<br /> <br />如下配置：<br /> <br /><VirtualHost *><br />ServerName server.domain.com<br />ServerAlias server server2.domain.com server2<br />...<br /></VirtualHost><br /> ]]></description><category></category></item><item><title><![CDATA[调整linux内核的几个重要参数]]></title><link>https://blog.youkuaiyun.com/lifeibo/article/details/5972356</link><guid>https://blog.youkuaiyun.com/lifeibo/article/details/5972356</guid><author>lifeibo</author><pubDate>Thu, 28 Oct 2010 17:02:00 +0800</pubDate><description><![CDATA[ 在linux的内核参数调整中,有几个参数是可以调整下的,比如用netstat发现 如下很多time-wait数量 netstat -ae|grep 1521|grep root 通过查看:vi /etc/sysctl.conf 可以看到 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 1200 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_r]]></description><category></category></item><item><title><![CDATA[Web后台开发的问题分析方法]]></title><link>https://blog.youkuaiyun.com/lifeibo/article/details/5970053</link><guid>https://blog.youkuaiyun.com/lifeibo/article/details/5970053</guid><author>lifeibo</author><pubDate>Wed, 27 Oct 2010 20:03:00 +0800</pubDate><description><![CDATA[<br /><br />Web后台开发中遇到的问题五花八门，分析问题涉及到的方方面面挺多的，不容易下手。本文分享工作中遇到的一些解决问题的方法仅供参考。如果您有好方法和案例，欢迎分享。<br /><br />1一些系统知识ulimit -a里的各种限制，特别是open files和core file size共享内存大小受/proc/sys/kernel/shmmax控制32位OS下默认写文件超过2G会coredump，可通过定义宏来解决32位OS下，受低端内存大小（800M，所有进程共享）的影响，单机so]]></description><category></category></item><item><title><![CDATA[Linux下通过SSH方式登陆不需要密码的方法 SSH without password]]></title><link>https://blog.youkuaiyun.com/lifeibo/article/details/5970038</link><guid>https://blog.youkuaiyun.com/lifeibo/article/details/5970038</guid><author>lifeibo</author><pubDate>Wed, 27 Oct 2010 19:50:00 +0800</pubDate><description><![CDATA[<br />假设现在有两台Linux服务器 A,B。 从A登陆B是通过SSH方式连接的。 <br />在A服务器的控制台界面如下 <br />a@A：ssh-keygen -t rsa <br />a@A：ssh-copy-id -d ~/.ssh/id_rsa.pud b@192.168.2.5 <br /><br />b： 为登陆B服务器的帐户，这里要写你登陆B服务器的帐户； <br />192.168.2.5： 为B服务器的IP地址，这里应该写你要登陆的服务器的IP地址； <br /><br />然后]]></description><category></category></item><item><title><![CDATA[load的小结]]></title><link>https://blog.youkuaiyun.com/lifeibo/article/details/5969907</link><guid>https://blog.youkuaiyun.com/lifeibo/article/details/5969907</guid><author>lifeibo</author><pubDate>Wed, 27 Oct 2010 18:23:00 +0800</pubDate><description><![CDATA[<br />linux下UPTIME或者TOP后,经常看到CPU的LOAD,1分,5分,15分钟内的平均负载, <br />几乎每个接触类 Unix 操作系统的工程师都知道如何查看系统负载。但这东西的工作机理到底是怎样的，可能没有多少能说清楚。对比了一些相关信息，加上自己的理解，做一下笔记。 <br /><br />什么是 Load ? 什么是 Load Average ? <br />Load 就是对计算机干活多少的度量(WikiPedia: the system load is a measure of]]></description><category></category></item><item><title><![CDATA[linux下的pmap命令]]></title><link>https://blog.youkuaiyun.com/lifeibo/article/details/5967994</link><guid>https://blog.youkuaiyun.com/lifeibo/article/details/5967994</guid><author>lifeibo</author><pubDate>Tue, 26 Oct 2010 23:11:00 +0800</pubDate><description><![CDATA[<br />linux的pmap命令可以很方便地看到某个进程所用的内存情况，说明如下： 
1 pmap -d 进程号 
　出现的几列的含义 
　　每列的含义如下： 
参数 解释 
Address：进程所占的地址空间 
Kbytes：该虚拟段的大小 
RSS：设备号（主设备：次设备） 
Anon：设备的节点号，0表示没有节点与内存相对应 
Locked：是否允许swapped 
Mode 权限：r=read, w=write, x=execute, s=shared, p=private(]]></description><category></category></item><item><title><![CDATA[介绍一个监控软件dstat]]></title><link>https://blog.youkuaiyun.com/lifeibo/article/details/5967912</link><guid>https://blog.youkuaiyun.com/lifeibo/article/details/5967912</guid><author>lifeibo</author><pubDate>Tue, 26 Oct 2010 22:36:00 +0800</pubDate><description><![CDATA[<br />在监控方面，之前有了vmstat,iostat，sar等工具了，但如果想综合一点用的话， <br />新发现了一个不错的监控工具dstat,下面简单介绍之： <br />1 下载： <br />   http://dag.wieers.com/rpm/packages/dstat/dstat-0.6.7-1.rh7.rf.noarch.rpm <br /><br />2 安装 <br /><br />3  使用： <br />    输入dstat后，会显示出cpu,disk,net,pagin]]></description><category></category></item><item><title><![CDATA[linux文件输入输出]]></title><link>https://blog.youkuaiyun.com/lifeibo/article/details/5965258</link><guid>https://blog.youkuaiyun.com/lifeibo/article/details/5965258</guid><author>lifeibo</author><pubDate>Mon, 25 Oct 2010 22:11:00 +0800</pubDate><description><![CDATA[<br />1. 基于文件指针的文件操作(缓冲)在Linux中，大多数的资源都可以以文件的方式进行处理，常见的文件类型有：l         普通文件l         无名管道和命名管道l         目录l         设备l         符号连接l         套接字普通文件：也称磁盘文件，并且能够进行随机的数据存储(能够自由seek定位到某一个位置)；管道：是一个从一端发送数据，另一端接收数据的数据通道；目录：也称为目录文件，它包含了保存在目录中文件列表的简单文件。设备：也称为特殊文]]></description><category></category></item><item><title><![CDATA[ linux信号处理]]></title><link>https://blog.youkuaiyun.com/lifeibo/article/details/5965203</link><guid>https://blog.youkuaiyun.com/lifeibo/article/details/5965203</guid><author>lifeibo</author><pubDate>Mon, 25 Oct 2010 21:47:00 +0800</pubDate><description><![CDATA[1. 信号概念信号是进程在运行过程中，由自身产生或由进程外部发过来的消息（事件）。信号是 硬件中断的软件模拟(软中断)。每个信号用一个整型常量宏表示，以SIG开头，比如SIGCHLD、SIGINT等，它们在系统头文 件中定义,也可以通过在shell下键入kill –l查看信号列表，或者键入man 7 signal查看更详细的说明。信号的生成来自内核，让内核生成信号的请求来自3个地方：l         用户：用户能够通过输入CTRL+c、Ctrl+/，或者是终端驱动程序分配给信号控制字符的其他任何键来请求内]]></description><category></category></item><item><title><![CDATA[nginx一般的http请求建立处理，发送函数调用，以及各个phase的状态（等完善）]]></title><link>https://blog.youkuaiyun.com/lifeibo/article/details/5962374</link><guid>https://blog.youkuaiyun.com/lifeibo/article/details/5962374</guid><author>lifeibo</author><pubDate>Sun, 24 Oct 2010 16:40:00 +0800</pubDate><description><![CDATA[<br /> <br />调用关系太复杂了，每个函数里面都做了很多事情，详细的过程有空再写。<br /> <br />// 当前连接过来时：ngx_http_init_connection会被调用<br />ngx_http_init_connection->ngx_http_init_request->ngx_http_process_request_line-><br />ngx_http_process_request_headers->ngx_http_process_request->ngx_ht]]></description><category></category></item><item><title><![CDATA[用netstat命令发现大量的TIME_WAIT现象]]></title><link>https://blog.youkuaiyun.com/lifeibo/article/details/5958595</link><guid>https://blog.youkuaiyun.com/lifeibo/article/details/5958595</guid><author>lifeibo</author><pubDate>Fri, 22 Oct 2010 11:54:00 +0800</pubDate><description><![CDATA[<br /><br />用netstat命令发现大量的TIME_WAIT现象：<br />netstat -ae|grep 1521|grep root<br />……<br />TIME_WAIT   root<br />TIME_WAIT   root<br />TIME_WAIT   root<br />TIME_WAIT   root<br />TIME_WAIT   root<br />TIME_WAIT   root<br />TIME_WAIT   root<br />TIME_WAIT   ]]></description><category></category></item><item><title><![CDATA[LOSF 命令说明]]></title><link>https://blog.youkuaiyun.com/lifeibo/article/details/5932011</link><guid>https://blog.youkuaiyun.com/lifeibo/article/details/5932011</guid><author>lifeibo</author><pubDate>Sun, 10 Oct 2010 21:18:00 +0800</pubDate><description><![CDATA[<br />列出所有打开的文件：<br /># lsof<br /><br />列出Internet, x.25 (HP-UX), and UNIX domain 文件：<br /># lsof -i -U<br /><br />列出指定进程打开的IPv4文件：<br /># lsof -i 4 -a -p 1234<br /><br />列出指定进程打开的IPv4文件：<br /># lsof -i 6<br /><br />列出使用 /dev/log的文件：<br /># lsof /dev/log<b]]></description><category></category></item><item><title><![CDATA[nginx源码分析(1):hash的使用]]></title><link>https://blog.youkuaiyun.com/lifeibo/article/details/5897126</link><guid>https://blog.youkuaiyun.com/lifeibo/article/details/5897126</guid><author>lifeibo</author><pubDate>Mon, 20 Sep 2010 15:25:00 +0800</pubDate><description><![CDATA[在nginx源码中提供了一个比较重要的hash结构，可以为我们带来高效的kv查找。该hash的实现比较简单，但却非常的高效。该hash结构是只读的，在创建之后，以后只能提供查询功能。该hash结构体，刚开始理解起来比较费劲，而且在使用时也会有不爽的感觉，需要好几个结构体，以及好几个函数配合才能完成初始化及查找。在本文中，对于通配符的使用，我们先不作介绍。我们先看看如何使用吧。创建一个hash结构体的过程是：1. 构造一个ngx_hash_key_t为成员的数组，然后用我们需要hash的key、value以及]]></description><category></category></item><item><title><![CDATA[tb-common-utils源码分析(3):文件和目录的基本操作]]></title><link>https://blog.youkuaiyun.com/lifeibo/article/details/5895164</link><guid>https://blog.youkuaiyun.com/lifeibo/article/details/5895164</guid><author>lifeibo</author><pubDate>Sun, 19 Sep 2010 17:29:00 +0800</pubDate><description><![CDATA[<br />工作之前总在windows下写程序，进入linux之后，对文件和目录操作的很多方法不太熟，本文介绍一下tb-common-utils中对文件和目录操作封闭的几个函数，虽然简单，但还是值得学习的。<br />今天要介绍一下CFileUtil这个类，该类仅提供三个静态函数：mkdirs、isDirectory以及isSymLink。<br /> <br />首先是mkdirs，该函数用于创建多级目录，注意，不能将常量字符串传给该函数。<br />  bool CFileUtil::mkdirs(ch]]></description><category></category></item><item><title><![CDATA[url转义字符]]></title><link>https://blog.youkuaiyun.com/lifeibo/article/details/5894395</link><guid>https://blog.youkuaiyun.com/lifeibo/article/details/5894395</guid><author>lifeibo</author><pubDate>Sun, 19 Sep 2010 13:26:00 +0800</pubDate><description><![CDATA[<br /><br />url转义字符原理<br />如果表单的action为list.jsf?act=go&state=5<br />则提交时通过request.getParameter可以分别取得act和state的值。<br />如果你的本意是act='go&state=5'这个字符串，那么为了在服务端拿到act的准确值，你必须对&进行转义<br />[预备知识]<br />  <br />     对与通过get方式提交的url，浏览器在提交前首先根据http协议把一一个的参数及其值解析配对。而ur]]></description><category></category></item><item><title><![CDATA[tb-common-utils源码分析(2):简单线程管理]]></title><link>https://blog.youkuaiyun.com/lifeibo/article/details/5883861</link><guid>https://blog.youkuaiyun.com/lifeibo/article/details/5883861</guid><author>lifeibo</author><pubDate>Tue, 14 Sep 2010 16:26:00 +0800</pubDate><description><![CDATA[<br />在上一篇文章中，我们研究了日志类的实现。比较简单，也比较实用。这次，我们来研究一个对线程的简单管理方案。<br />在分析源码之前，我们先来看一个使用线程类的例子，上代码：<br /> <br />#include <stdio.h>
// 引用头文件
#include <tbsys.h>
using namespace tbsys;
// 写我们继承的线程类 
class Myrunable : public Runnable {
    // 此处是我们的线程函数
    vo]]></description><category></category></item></channel></rss>