随笔 - 276  文章 - 0  评论 - 32  阅读 - 56万

随笔分类 -  Linux高性能服务器编程

16 17 服务器调制、调试和测试 系统监测工具
摘要:几个常用的命令:tcpdump、nc、strace、lsof、netstat、vmstat、ifstat、mpstat 阅读全文
posted @ 2015-12-11 15:49 已停更 阅读(242) 评论(0) 推荐(0) 编辑
15 进程池和线程池
摘要:进程池是由服务器预先创建的一组子进程,这些子进程书目在3~10个之间。线程池中的线程书目应该和CPU的数量差不多进程池(线程)中的所有子进程都运行着相同的代码,并具有相同的属性(比如优先级、PGID)。因为进程池在服务器启动之初就创建好了,所以每个子进程都相对“干净”。他们没有打开不必要的文件描述符... 阅读全文
posted @ 2015-12-11 15:48 已停更 阅读(349) 评论(0) 推荐(0) 编辑
14 多线程编程
摘要:这里所指的线程是POSIX线程(简称pthread)线程同步方式:POSIX信号量、互斥锁、条件变量根据运行环境和调度者身份,线程可分为内核线程和用户线程创建线程和结束线程 1 #include 2 int pthread_create(pthread_t* thread, const pthre... 阅读全文
posted @ 2015-12-11 15:25 已停更 阅读(279) 评论(0) 推荐(0) 编辑
13 多进程编程
摘要:13.1 fork系统调用1 #include 2 #include 3 pid_t fork( void )该函数每次调用返回两次,父进程返回子进程的PID,子进程返回0子进程的代码和父进程完全相同,同时它还会复制父进程的数据(堆栈数据和静态数据),数据的复制采用写时复制(copy on writ... 阅读全文
posted @ 2015-12-11 15:17 已停更 阅读(351) 评论(0) 推荐(0) 编辑
12 高性能I/O框架库Libevent
摘要:这里不讲Libevent库的具体内容了,从宏观上对I/O库整体做个介绍Linux服务器程序必须处理三类事件:I/O事件,信号和定时事件统一事件源:统一处理这三类事件既能使代码简单易懂,又能避免一些潜在的逻辑错误。统一事件源的一般方法——利用I/O复用系统调用来管理所有事件可移植性:不同操作系统具有不... 阅读全文
posted @ 2015-12-11 15:15 已停更 阅读(1071) 评论(0) 推荐(0) 编辑
11 定时器
摘要:网络程序需要处理的第三类事件是定时事件,两种高效的管理定时器的容器:时间轮和时间堆11.1 socket选项so_rcvtimeo和so_sndtimeoSO_RCVTIMEO和SO_SNDTIMEO选项分别用来设置socket接收数据超时时间和发送数据超时时间。因此这两个选项仅对数据接收和发送相关... 阅读全文
posted @ 2015-12-11 11:19 已停更 阅读(241) 评论(0) 推荐(0) 编辑
10 信号
摘要:信号是由用户、系统、或者进程发送给目标进程的信息,以通知目标进程某个状态的改变或系统异常linux信号可由如下条件产生:前台进程,用户可以通过输入特殊的终端符发送信号(ctrl + c 中断)系统异常系统状态变化运行kill命令或调用kill函数10.1 linux信号概述一个进程给其他进程发送信号... 阅读全文
posted @ 2015-12-11 09:48 已停更 阅读(387) 评论(0) 推荐(0) 编辑
9 I/O复用
摘要:I/O复用使得程序能够同时监听多个文件描述符,适用于以下情况:客户端同时处理多个socket,比如非阻塞connect客户端同时处理用户输入和网络连接,比如聊天室程序TCP服务器同时处理监听socket和连接socket,这是IO复用最多的用法服务器要同时处理TCP请求和UDP请求,比如回射服务器服... 阅读全文
posted @ 2015-12-10 11:38 已停更 阅读(460) 评论(0) 推荐(0) 编辑
8 高性能服务器程序框架
摘要:8.1 服务器模型 c/s模型 p2p模型 实际使用的P2P模型通常带有一个专门的发现服务器,提供查找服务 8.2 服务器编程框架 I/O处理单元是服务器管理客户连接的模块 一个逻辑单元通常是一个进程或线程,服务器通常由多个逻辑单元,实现对多个客户任务的并行处理 8.3 I/O模型 socket在创 阅读全文
posted @ 2015-12-09 16:57 已停更 阅读(997) 评论(0) 推荐(0) 编辑
7 linux服务器程序规范
摘要:1.Linux服务器程序一般以后台进程形式运行。后台进程又称守护进程(daemon),它没有控制终端,因而不会意外接收到用户输入。父进程通常为init(PID为1的进程)2. Linux服务器程序常有一套日志系统,至少能输出日志到文件,有的高级服务器能输出到专门的udp服务器。大部分后台程序都在/v... 阅读全文
posted @ 2015-12-09 13:23 已停更 阅读(300) 评论(0) 推荐(0) 编辑
6 高级IO函数
摘要:6.1 pipe函数pipe函数创建一个管道,用于实现进程间通信1 #include2 int pipe(int fd[2]);参数包含两个文件描述符fd[0]和fd[1],往fd[1]写入的数据可以从fd[0]读出默认情况下这对文件描述符都是阻塞的。如果用read调用读取一个空管道,read将会阻... 阅读全文
posted @ 2015-12-09 13:21 已停更 阅读(275) 评论(0) 推荐(0) 编辑
5 Linux网络编程基础API
摘要:5.1 socket地址API大端字节序(网络序):高位在低址,低位在高址小端字节序(主机序):低位在低址,高位在高址判断,利用联合的特性: 1 #include 2 using namespace std; 3 4 int main() 5 { 6 union 7 { 8 ... 阅读全文
posted @ 2015-12-08 21:22 已停更 阅读(547) 评论(0) 推荐(0) 编辑
1-4 TCP/IP协议族
摘要:网络协议是在内核中实现的,socket是对tcp/ip协议的系统调用,提供以下两点功能:1. 将应用撑血数据从用户缓冲区中复制到TCP/UDP内核发送缓冲区,以交付内核发送来的数据(比如send),或者从内核TCP/UDP接受缓冲区中复制到用户缓冲区,以读取数据2. 应用程序通过它们来修改内核中各层... 阅读全文
posted @ 2015-12-08 10:32 已停更 阅读(434) 评论(0) 推荐(0) 编辑
0 知识点梳理
摘要:作者: 游双 出版社: 机械工业出版社出版年: 2013-5-1ISBN: 9787111425199PDF扫描版下载高性能服务端编程知识点梳理图解http://blog.chinaunix.net/xmlrpc.php?r=blog/index&uid=22906954&cid=192035&pa... 阅读全文
posted @ 2015-12-08 08:35 已停更 阅读(366) 评论(0) 推荐(0) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示