高性能站点一书学习心得1

1 apache的ab压力测试工具讲解:

   ab -n1000 -c10 http://www.sohu.com
其中N为指定共发1000个请求,-C为并发数为10
出现的结果中,有几点值得注意的:
  在结果中;
  Time taken for tests:处理所有这些请求花费的时间
  Complete requests:表示总请求数
  request per second:每秒处理的请求数,即吞吐率=  Complete requests/ Time taken for tests

  Time per request;用户平均等待时间
=Time taken for tests/Complete requests/并发数

Time per request(across all concurrent requests):服务器平均请求处理时间
=Time taken for tests/Complete requests


2 LINUX中TOP的几个重要参数
  PR  NI    VIRT  RES  SHR  S  %CPU  %MEM  TIME+  COMMAND
 
PR:优先级
NI:nice值,负值表示高优先,正值表示低优先
VIRT:进程使用的虚拟内存总量,KB,VIRT=SWAP+RES
SWAP:进程使用的虚拟内存中,被换出的大小,KB
RES:进程使用的,未被换出的物理内存大小,RES=CODE+DATA
CODE:可执行代码占用的物理大小,KB
DATA:可执行代码以外的部分(数据段+栈)占用的物理内存大小
SHR:共享内存大小
S:进程状态 R=运行 S=睡眠  T=跟踪  Z=僵尸

CPU的状态:
  CPUS(S);用户空间占用百分比
  0.0%sy;内核空间占用百分比
  0.0%ni:用户进程空间内改变优先级的进程占用的CPU百分比
  100.0%id:空闲CPU百分比
   0.0%wa:等待,输入/输出的CPU时间百分比

3 阻塞和非阻塞:
   阻塞:当进程访问的数据如果没就绪,进程需要等待,非阻塞:需要等待

4 同步阻塞IO,当进程调用某些IO操作时,进程暂停下来,等I/O操作完成,有点象去餐馆等餐时,一直等餐到
  同步非阻塞IO,不等待数据就绪,如果数据不可读或不可写,则告诉进程,有点象等餐时,不耐烦,跑去逛街,
但不时又跑回来咨询餐馆
  多路IO:允许进程通过一个方法同时监视所有文件描述符,并可以快速获得就绪的文件符,有点象搞了个屏幕,告诉你所有的餐观产品的情况(但居然把没做好的餐品情况也告诉你了)。这个是select/poll,在BSD中很多;
而/dev/poll只告诉你哪些餐厅的哪些产品已做好了,如果只显示一次,叫边缘触发,如果每次都显示,叫水平触发。
但如果更先进的,用EPOLL机制,等于短信自动通知你,存在LINUX 2。6


5 服务器处理策略模式:
  A 一个进程处理一个连接:传统的CGI方式
     APACHE的prefork模式:由主进程预先创建一些子进程,每个请求由一个子进程来处理,但每个子
进程可以处理多个请求,
  B 一个线程处理一个连接,非阻塞IO
      apache的worker模式,在一个进程中通过多个线程来处理,每个线程处理一个连接。
   C 一个进程处理多个连接,非阻塞IO,比如lighttpd

你可能感兴趣的:(apache,c,linux,lighttpd,咨询)