- 博客(16)
- 资源 (1)
- 收藏
- 关注
转载 nginx 优化(突破十万并发)
一般来说nginx 配置文件中对优化比较有作用的为以下几项:worker_processes 8;nginx 进程数,建议按照cpu 数目来指定,一般为它的倍数。worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;为每个进程
2015-12-30 11:30:23 280
转载 FreeBSD与Linux十个本质上的区别
Linux的标志是一只十分可爱的小企鹅,而FreeBSD的标志是一个拿着叉子的小恶魔。你是否经常会听到人们把 Linux及 BSD 系统混为一谈?是的,我有时会经常听到一些新手,甚至于媒体都这么说。当然,事实上这两者确实有很多相似之处,比如它们都是基于 Unix演变而来,而且基本上这两类系统都是由非盈利组织及团队开发,另外我更想说的是,这两个系统都有一个共同的目标–那就是创建最有用、最可靠的操作系
2015-12-30 11:07:48 619
转载 Linux下send、sendto、sendmsg函数分析
从网上查到了一些关于这几个函数的使用及注意事项,现终结如下:功能描述:发送消息,send只可用于基于连接的套接字,send 和 write唯一的不同点是标志的存在,当标志为0时,send等同于write。sendto 和 sendmsg既可用于无连接的套接字,也可用于基于连接的套接字。除了套接字设置为非阻塞模式,调用将会阻塞直到数据被发送完。用法:#incl
2015-12-29 10:12:17 6387
转载 recv函数返回值说明
recv函数int recv( SOCKET s, char FAR *buf, int len, int flags);不论是客户还是服务器应用程序都用recv函数从TCP连接的另一端接收数据。该函数的第一个参数指定接收端套接字描述符;第二个参数指明一个缓冲区,该缓冲区用来存放recv函数接收到的数据;第三个参数指明buf的长度;第四个参数一般置0。这里只描述同步So
2015-12-18 16:29:38 751
转载 TCP接收/发送滑动窗口与内核接收/发送缓冲区之间的关系
在有关TCP连接的很多配置中,有很多选项有的配置 net.ipv4.tcp_rmem:这个参数定义了TCP接收缓冲(用于TCP接收滑动窗口)的最小值、默认值、最大值net.ipv4.tcp_wmem:这个参数定义了TCP发送缓冲(用于TCP发送滑动窗口)的最小值、默认值、最大值netdev_max_backlog:当网卡接收数据包的速度大于内核处理的速度时,会有一个队列
2015-12-18 16:05:24 1789
转载 epoll 的accept , read, write(重要)
在一个非阻塞的socket上调用read/write函数, 返回EAGAIN或者EWOULDBLOCK(注: EAGAIN就是EWOULDBLOCK)从字面上看, 意思是:* EAGAIN: 再试一次* EWOULDBLOCK: 如果这是一个阻塞socket, 操作将被block* perror输出: Resource temporarily unav
2015-12-18 15:57:20 704
转载 socket之send和recv原理剖析
谈到网络socket编程, 我们不得不提两个基本也很重要的函数:send和recv. 对socket编程理解不深的童鞋容易产生这样一个错误的认识: send函数是用来发送数据, 而recv函数是用来接收数据的, 其实, 这种观点是稍微有点偏颇的, 掩盖了本质。 下面, 我们看一幅图, 了解一下send和recv函数所处的位置(这幅图是我在网上找的, 不太清晰, 请凑合看一下)
2015-12-18 15:31:26 1264
原创 epoll原理剖析
首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。不管是文件,还是套接字,还是管道,我们都可以把他们看作流。之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据。现在假定一个情形,我们需要从流中读数据, 但是流中还没有数据,(典型的例子为,客户端要从socket读如数据,但是服务器还没有把数据
2015-12-18 15:15:14 469
转载 nginx keepalive连接回收机制
我在nginx 1.0.12代码中发现了名为ngx_reusable_connection的函数(它是在哪个版本里被加上的就不去追究了),很好奇这个函数是做什么的。后来有一次在我的群里讨论nginx的时候,有人发现了一个奇怪的现象,这位同学报告说:并发量大的时候,一些keepalive的连接会被新连接给挤掉。。。 关于这个问题,切入点在ngx_get_connection,并
2015-12-17 14:54:14 695
转载 Nginx变量的源码分析
nginx中的变量在nginx中的使用非常的多,正因为变量的存在,使得nginx在配置上变得非常灵活。我们知道,在nginx的配置文件中,配合变量,我们可以动态的得到我们想要的值。最常见的使用是,我们在写access_log的格式时,需要用到多很多变量。而这些变量是如何工作的呢?我们可以输出哪些变量?我们又怎么才能输出自己想要的内容呢?当然,我们可能还想知道,如何在我们的模块里面去使用
2015-12-17 11:20:32 368
转载 locations 设计和实现
Locations 数据结构及初始化1) 先看看 ngx_http_core_loc_conf_t 这个结构体struct ngx_http_core_loc_conf_s { // location 名称 ngx_str_t name; // 如果是 re location,这里存储 re 信息 #if (NGX_PCRE)
2015-12-17 10:19:33 578
转载 nginx rewrite if指令剖析
0. 前言nginx的if功能确实是弱得可以,严重影响了生产效率。故此,先提出严正抗议!1. if指令配置的实现对于这个功能奇弱的if指令,nginx实现得还特别复杂。下面将对其实现进行剖析。1.1. 指令解析if 指令由ngx_http_rewrite_if函数负责解析。这个函数的主要工作是543: ctx = ngx_pca
2015-12-17 10:11:04 1153
转载 nginx配置location总结及rewrite规则写法
location正则写法一个示例:location = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ] }location / { # 因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求 # 但是正则和最长字符串会优先匹配 [ configuration B ] }location /docum
2015-12-10 14:56:35 288
转载 ubuntu下编译contiki
1.下载源码http://sourceforge.net/projects/contiki/files/Contiki/Contiki%202.7/2.直接在ubuntu的软件中心安装SDCC,为了以后能进行CC2530或者PIC等各种平台的开发3.安装所需的库,sudo apt-get install libncurses5-dev进入/contiki/examples/hello-
2015-12-04 10:36:08 760
原创 ubuntu初次使用遇到的问题总结
1、ubuntu的网络设置(1)点击右上角的网络标志-》编辑连接(2)点击编辑连接,进入网络编辑页面 (3)选择ipv4设置选项卡,设置IPV4的各项参数,注意:多个dns之间用空格隔离2、Ubuntu的输入法 (1)进入http://pinyin.sogou.com/linux/?r=pinyin下载搜狗输入法并安装 (2)进入系统设置->语言支持: 将“键
2015-12-04 09:50:59 607
转载 Contiki简介
一、Contiki简介Contiki是一个开源的、高度可移植的多任务操作系统,适用于联网嵌入式系统和无线传感器网络,由瑞典计算机科学学院(Swedish Institute of Computer Science)的Adam Dunkels和他的团队开发,已经应用在许多项目中。 Contiki支持IPv4/IPv6通信,提供了uIPv6协议栈、IPv4协议栈(uIP)
2015-12-02 09:51:11 1044
690561nsnkzT/IOT_0601—2019电梯物联网系列标准-电梯无纸化维护保养数据格式和交换 2019 68页.pdf
2020-04-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人