<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[codinghonor的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/codinghonor</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; codinghonor]]></copyright><item><title><![CDATA[性能评估 之 disk IO]]></title><link>https://blog.youkuaiyun.com/codinghonor/article/details/45689167</link><guid>https://blog.youkuaiyun.com/codinghonor/article/details/45689167</guid><author>codinghonor</author><pubDate>Wed, 13 May 2015 09:45:56 +0800</pubDate><description><![CDATA[一、磁盘性能指标
1、IOPS
随机IO效率的主要影响因子


2、KB per IO
顺序IO效率的主要影响因子



二、IO评估指标


1、vmstat Block in /out
设置的bi+bo参考值为1000，如果超过1000，而且vmstat cpu wa值较大应该考虑均衡磁盘负载，可以结合iostat输出来分析。


2、IOwait time]]></description><category></category></item><item><title><![CDATA[性能评估 之 Mem]]></title><link>https://blog.youkuaiyun.com/codinghonor/article/details/45689151</link><guid>https://blog.youkuaiyun.com/codinghonor/article/details/45689151</guid><author>codinghonor</author><pubDate>Wed, 13 May 2015 09:45:25 +0800</pubDate><description><![CDATA[一、Mem 原理
 kswapd daemon 用来检查 pages_high 和 pages_low，如果可用内存少于 pages_low，kswapd 就开始扫描并试图释放 32个页面，
并且重复扫描释放的过程直到可用内存大于 pages_high 为止。扫描的时候检查3件事：1）如果页面没有修改，把页放到可用内存列表里；
2）如果页面被文件系统修改，把页面内容写到磁盘上；3）如果页面被]]></description><category></category></item><item><title><![CDATA[性能评估 之 CPU]]></title><link>https://blog.youkuaiyun.com/codinghonor/article/details/45689141</link><guid>https://blog.youkuaiyun.com/codinghonor/article/details/45689141</guid><author>codinghonor</author><pubDate>Wed, 13 May 2015 09:44:39 +0800</pubDate><description><![CDATA[一、CPU评估指标
1、cpu使用率
（1）us+sy < 75% 时，比较正常，否则，需要进行优化或者增加cpu；
（2）如果us的值比较高时，说明用户进程消耗的cpu时间多，但是如果长期大于50%，需要考虑优化用户的程序；
（3）如果sy过高，则a.需要优化应用层，换systemcall、b.优化内核
 （4）如果us一直保持在 80％ 以上，而且上下文切换较低（cs），说明某个进程可能一直霸占着 CPU；]]></description><category></category></item><item><title><![CDATA[性能评估之 network IO]]></title><link>https://blog.youkuaiyun.com/codinghonor/article/details/45689179</link><guid>https://blog.youkuaiyun.com/codinghonor/article/details/45689179</guid><author>codinghonor</author><pubDate>Wed, 13 May 2015 09:44:35 +0800</pubDate><description><![CDATA[一、网络性能指标
1、speed: 延时 lantency
ping的时间/2 就是一个网络延时
2、bandwidth 带宽




二、网络
1、丢包率]]></description><category></category></item><item><title><![CDATA[性能评估]]></title><link>https://blog.youkuaiyun.com/codinghonor/article/details/45272683</link><guid>https://blog.youkuaiyun.com/codinghonor/article/details/45272683</guid><author>codinghonor</author><pubDate>Sat, 25 Apr 2015 18:34:23 +0800</pubDate><description><![CDATA[一、网速
1、lantency
latency is the amount time required to travel the path from one location to another. 

指的是从A点到B点，需要多长时间，当传输介质没有发生变化的情况下，这个指是无法进行优化的。
lantency 取决于A点到B的长度，以及传输介质；
测试：
上海到深圳    pin]]></description><category></category></item><item><title><![CDATA[buffered, unbuffered, direct IO的区别]]></title><link>https://blog.youkuaiyun.com/codinghonor/article/details/45272127</link><guid>https://blog.youkuaiyun.com/codinghonor/article/details/45272127</guid><author>codinghonor</author><pubDate>Sat, 25 Apr 2015 18:18:58 +0800</pubDate><description><![CDATA[1、buffered IO
buffered IO指的是在内核和用户程序之间设置了一层缓冲区，用来提高IO读写的效率；
当用户读取数据时，用户缓冲区已经将buffer读满，下次读时，可以直接从buffer中读，无需再经过内核和硬盘；
当用户写数据时，写入用户buffer区，定时将这段buffer的数据flush到硬盘上，减少向内核发送write命令的次数；
- 读取：硬盘--->内核缓冲区]]></description><category></category></item><item><title><![CDATA[判断进程是否存在的几种方法]]></title><link>https://blog.youkuaiyun.com/codinghonor/article/details/43836345</link><guid>https://blog.youkuaiyun.com/codinghonor/article/details/43836345</guid><author>codinghonor</author><pubDate>Sun, 15 Feb 2015 17:13:57 +0800</pubDate><description><![CDATA[﻿﻿

一共有四种方法，见粗体。
注意受pid回收的影响，可能不准确；
Checking for the Existence of a Process Verifying the existence of a particular process ID doesn’t guarantee that a par-ticular program is still running. Becaus]]></description><category></category></item><item><title><![CDATA[前台进程，会话，控制终端，用户的关系]]></title><link>https://blog.youkuaiyun.com/codinghonor/article/details/43836211</link><guid>https://blog.youkuaiyun.com/codinghonor/article/details/43836211</guid><author>codinghonor</author><pubDate>Sun, 15 Feb 2015 16:57:24 +0800</pubDate><description><![CDATA[1、 一个会话和一个控制终端一一对应

2、 一个控制终端对应一个前台进程组

3、一个会话拥有一个前台进程组和若干后台进程组

4、 会话中的所有进程都对应同一个控制终端

5、 只有前台进程可以read write控制终端

6、 控制终端收到一些特殊的信号字符，会发送相应的信号给前台进程组的进程

7、 控制终端退出或者控制进程的退出，会发送sighup信]]></description><category></category></item><item><title><![CDATA[解读条件变量]]></title><link>https://blog.youkuaiyun.com/codinghonor/article/details/43835749</link><guid>https://blog.youkuaiyun.com/codinghonor/article/details/43835749</guid><author>codinghonor</author><pubDate>Sun, 15 Feb 2015 16:01:38 +0800</pubDate><description><![CDATA[经常会遇到 “测试某个变量是否满足条件，才执行某个action” 这样的业务逻辑，一般而言，有两种方式来实现：
1、主动不断轮询，探测
while（！test_cond）
｛
    ... ... ; 
    sleep(XX）；
｝


2、被动通知
被动通知的一种实现：条件变量
调用pthread_cond_wait后，会探测是否满足条件，如果不满足，则把]]></description><category></category></item><item><title><![CDATA[文件描述符总结]]></title><link>https://blog.youkuaiyun.com/codinghonor/article/details/43835477</link><guid>https://blog.youkuaiyun.com/codinghonor/article/details/43835477</guid><author>codinghonor</author><pubDate>Sun, 15 Feb 2015 15:51:02 +0800</pubDate><description><![CDATA[总结几种常见情况下，打开文件后的数据结构：
1、一个进程打开两个不同的文件





2、同一个进程2次打开同一个文件
共享V节点，每个fd各自对应一个文件表项


3、dup后
共享文件表和v节点

4、fork后
子进程完全复制父进程的文件描述符列表，父子进程对应的fd共享文件表和v节点；





5、记录锁
多进程写同一个文件，需要加建议性/强制]]></description><category></category></item><item><title><![CDATA[pthread_atfork解读]]></title><link>https://blog.youkuaiyun.com/codinghonor/article/details/43737869</link><guid>https://blog.youkuaiyun.com/codinghonor/article/details/43737869</guid><author>codinghonor</author><pubDate>Wed, 11 Feb 2015 20:09:10 +0800</pubDate><description><![CDATA[apue中的对pthread_atfork的使用说明：
pthread_atfork(void (*prepare)(void），void (*parent)(void）, void(*child)(void))
prepare在父进程fork创建子进程之前调用，这里可以获取父进程定义的所有锁；
child fork返回之前在子进程环境中调用，在这里unlock prepare获得的锁；]]></description><category></category></item></channel></rss>