先展示一下简单的go程序,然后分析GO的API和Linux API的关系。像简单的socket概念等就不在这里介绍了,不懂的去百度一下。 server.go package main import "net" import "fmt" import "bufio" import "strings" ...
我们之前采用的多进程方式实现的服务器端,一次创建多个工作子进程来给客户端提供服务。其实这种方式是存在问题的。 可以打个比方:如果我们先前创建的几个进程承载不了目前快速发展的业务的话,是不是还得增加进程数?我们都知道系统创建进程是需要消耗大量资源的,所以这样就会导致系统资源不足的情况。 那么有没有一种 ...
分类:
其他好文 时间:
2019-12-06 17:34:52
阅读次数:
89
什么是Netty?Netty是基于JavaNIO再次封装的一个处理异步的,事件驱动的网络应用程序的框架和工具.Netty来源?异步和事件驱动都是由操作系统发展过来. NIO代表多路复用IO. 最开始操作系统使用的系统调用是Select,性能低下.之后发展为Linux的epoll,和 Unix中的kq ...
分类:
Web程序 时间:
2019-12-05 01:31:55
阅读次数:
127
一、背景 前面介绍了I/O多路复用模型,那有了I/O复用,有了epoll已经可以使服务器并发几十万连接的同时,还能维持比较高的TPS,难道还不够吗?比如现在在使用epoll的时候一般都是起个任务,不断的去巡检事件,然后通知处理,而比较理想的方式是最好能以一种回调的机制,提供一个编程框架,让程序更有结 ...
分类:
其他好文 时间:
2019-11-30 11:23:32
阅读次数:
79
https://juejin.im/post/5ddf2502e51d453301190001 epoll原理 网卡操作内存DMA技术https://zhuanlan.zhihu.com/p/26482371 ...
分类:
其他好文 时间:
2019-11-29 00:48:49
阅读次数:
71
nginx优化大概内容:nginx运行工作进程个数,一般设置cpu的核心或者核心数,最大是8事件处理模型epoll事件模型连接超时时间Fastcgi调优开启gzip压缩开启缓存防盗链upsteam打开文件数默认是1024,可以大一点(ulimit-a可以查看当前系统的所有限制值)分布解析:Nginx运行CPU亲和力比如4核配置worker_processes4;worker_cpu_affinit
分类:
其他好文 时间:
2019-11-27 10:35:31
阅读次数:
59
Java原生阻塞IO Java原生NIO nio:选择并处理状态的变化 只有NIO和Epoll支持零拷贝 针对于Linux,自Linux内核版本 2.5.44后,引入epoll——一个高度可扩展的I/O事件通知特性,提供了比旧的POSIX select和poll系统调用更好的性能,Linux JDK ...
分类:
编程语言 时间:
2019-11-27 10:34:26
阅读次数:
124
Nginx为什么可以支持高并发 nginx 采用的是多进程+epoll,能实现高并发,其可以支持的并发上限大概是同时支持5W个连接 多进程 nginx 在启动后,会有一个 master 进程和多个相互独立的 worker 进程,master进程接收来自外界的连接,并向各worker进程发送信号,每个 ...
分类:
其他好文 时间:
2019-11-26 20:03:05
阅读次数:
100
#include <stdio.h>#include <unistd.h>#include <stdbool.h>#include <fcntl.h>#include <sys/epoll.h> #include <main.h> struct event_ext{ int fd; bool epo ...
分类:
其他好文 时间:
2019-11-23 12:25:46
阅读次数:
69
https://suchprogramming.com/epoll-in-3-easy-steps/ https://www.quora.com/What-are-the-key-differences-between-edge-triggered-and-level-triggered-inter ...
分类:
Web程序 时间:
2019-11-20 21:55:23
阅读次数:
102