自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

至尊宝猴哥

IT学习乐园

  • 博客(781)
  • 收藏
  • 关注

转载 Linux系统平均负载3个数字的含义

越来越多人开始接触Linux操作系统,从VPS到无线路由的刷机系统(如OpenWRT、Tomato),同时也必不可少地会在各式各样的探针和系统监测界面上看到”系统平均负载”或者”Load Average”这样的字眼,但是它并不像我们习惯中Windows、Mac操作系统提供百分比显示CPU、内存占用率,而是以几个用空格隔开的浮点数来表示系统平均负载,那么它们到底是什么意思呢?又如何衡量系统负载及系统的

2017-02-24 17:46:45 4144

转载 功能强大的编辑器——Vi

相信Vi是什么就不用我多介绍了,这个工具从Unix诞生以来一直是终端下的标准编辑器。几乎每个Unix或类Unix操作系统都提供了Vi。 Vim是Vi Improved的缩写,功能比起Vi来说有了很大的扩展。在Vi 中移动光标 k 上h l 左 右 j 下^ 移动到该行第一个非空格的字符处w 向前移动一个单词,将符号或标点

2017-02-24 17:46:18 368

转载 UDP协议疑难杂症全景解析

如今,但凡说精通网络的,第二个意思就是“精通TCP”,事实上,很多自称精通TCP的家伙们只是精通socket接口而已,对TCP行为精通的并不多,笔者也不算精通,但绝对是中等以上水平。如果你真的精通TCP行为,那么本文不读也罢,直接发邮件给我,我们切磋一下,如果只是了解socket接口,那么建议读本文,然后一定再看一下《TCP协议疑难杂症全景解析》0.UDP协议和TCP协议UDP是用户数据报协议的

2017-02-24 17:45:52 513

转载 Linux系统内核UDP丢包原因分析

本文讨论的udp丢包是指网卡接收到数据包后,Linux内核的tcp/ip协议栈在udp数据包处理过程中的丢包,主要原因有两个:1)        udp数据包格式错误或校验和检查失败2)        应用程序来不及处理udp数据包对于原因1),udp数据包本身的错误很少见,应用程序也不可控,本文不讨论。 首先介绍通用的udp丢包检测方法,使用netstat命令,加-su参数。# netstat

2017-02-24 17:45:15 1183

转载 SOCKET通信中TCP、UDP数据包大小的确定

UDP和TCP协议利用端口号实现多项应用同时发送和接收数据。数据通过源端口发送出去,通过目标端口接收。有的网络应用只能使用预留或注册的静态端口;而另外一些网络应用则可以使用未被注册的动态端口。因为UDP和TCP报头使用两个字节存放端口号,所以端口号的有效范围是从0到65535。动态端口的范围是从1024到65535。  MTU(maximun transfer unit)        最大传输

2017-02-24 17:44:38 3296

转载 UDP主要丢包原因及具体问题分析

一、主要丢包原因  1、接收端处理时间过长导致丢包:调用recv方法接收端收到数据后,处理数据花了一些时间,处理完后再次调用recv方法,在这二次调用间隔里,发过来的包可能丢失。对于这种情况可以修改接收端,将包接收后存入一个缓冲区,然后迅速返回继续recv.  2、发送的包巨大丢包:虽然send方法会帮你做大包切割成小包发送的事情,但包太大也不行。例如超过50K的一个udp包,不切割直接通过send

2017-02-24 17:27:15 1862

转载 Linux 与 BSD 有什么不同?

Linux 和 BSD 都是免费的,开源的,类Unix系统。他们甚至使用很多相同的软件。他们看上去简直就像是一个操作系统,那么,它们有什么不同吗?其实,两者之间的不同,远远超出了我们下面提到的这些,尤其是在构建完整操作系统和许可授权的哲学思想上,更是相差甚远。通过这篇短文将可以简单的了解它们之间的不同。基础许多人所称的“Linux”实际上不是 Linux。Linux 从技术上说只是 Linux 内核

2017-02-24 17:26:46 360

转载 防止MTU设置不合理导致的链路不通问题

一,MTU是IP数据包每次能传输的最大数据单元,即maxium transfer unit,超过此大小将会进行分包,而若设置不能进行分包,则会导致丢包。        如设置:Dont Fragment: Set,则设置不能进行分包。二,MSS就是IP数据包每次能传输的最大数据分段,这个值是MTU值减去IP数据包头大小20Byte和TCP数据段的包头20Byte。即Mss+40=MTU。举例:如c

2017-02-24 17:26:24 3019

转载 Linux服务器时间相关结构体和函数整理

一、时间类型Linux下常用的时间类型有4个:time_t,struct timeb, struct timeval,struct timespec,clock_t, struct tm.(1) time_t是一个长整型,一般用来表示用1970年以来的秒数该类型定义在中,一般通过 time_t time = time(NULL); 获取.(2) struct timeb结构: 主要有两个成员,

2017-02-24 17:26:00 295

转载 Linux内核的原子操作

1、基本概念原子操作可以保证指令以原子的方式执行,执行过程不被打断。它通过把读取和修改变量的行为包含在一个单步中执行,从而防止了竞争的发生,保证操作结果总是一致的。例如:int i=9;线程1:i++i=9 OR i=8线程2i–;i=9 OR i=8两个线程并发的执行,导致结果不确定性。原子操作的作用和信号量机制是一样,都是为了防止同时访问临界资源,保证结果的一致性。大多数硬件体系结构要么本来

2017-02-24 17:25:26 415

转载 Nginx 战斗准备 —— 优化指南

大多数的Nginx安装指南告诉你如下基础知识——通过apt-get安装,修改这里或那里的几行配置,好了,你已经有了一个Web服务器了!而且,在大多数情况下,一个常规安装的nginx对你的网站来说已经能很好地工作了。然而,如果你真的想挤压出nginx的性能,你必须更深入一些。在本指南中,我将解释Nginx的那些设置可以微调,以优化处理大量客户端时的性能。需要注意一点,这不是一个全面的微调指南。这是一个

2017-02-24 17:25:00 237

转载 Nginx反向代理缓存配置

Nginx反向代理的缓存配置这里给出示例详解。http { proxy_cache_path  /data/nginx/cache/one  levels=1:2   keys_zone=one:10m max_size=10g;proxy_cache_key  “hosthostrequest_uri”; server {    server_name www.centos.bz ce

2017-02-24 17:24:28 295

转载 启用Nginx状态监控

1. 编译Nginx添加http_stub_status_module第一步:编译Nginx的时候添加参数:–with-http_stub_status_modulecdnginx-0.8.15/./configure--user=www --group=www --prefix=/usr/local/webserver/nginx--with-http_stub_status_module

2017-02-24 17:23:48 461

转载 HAProxy配置

前言Haproxy是一个负载均衡服务器,能够提供4层,7层代理,并能支持上万级别的连接,你可以直接在WEB服务器前端加上它,而不影响应用的访问,完全透明。安装$ wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.8.tar.gz$ tar -zxvf haproxy-1.4.8.tar.gz$ cd haproxy-1.4.8$

2017-02-24 17:23:00 321

转载 HAProxy日志配置详解

由于数据分析的需要,我们必须打开Haproxy日志,并记录相关的503错误信息进行汇总统计,所以有了下文:在配置前,我们先来了解下日志的level: local0~local7 16~23保留为本地使用emerg 0 系统不可用alert 1 必须马上采取行动的事件crit 2 关键的事件err 3 错误事件warning 4 警告事件notice 5 普通但重要的事件info 6

2017-02-24 09:24:01 660

转载 启用HAProxy状态监控

如果启用HAProxy状态监控,需要修改haproxy.cfg配置文件,启用stats enable[python] view plain copy print?<span style=“color:#2c2c2c;”>listen webservers  bind *:80  </span><span style=”color:#ff0000;”><strong>stats enable</st

2017-02-24 09:23:23 2349

转载 Linux中使用 alias 来简化命令行输入

alias 即“别名”,为便于理解,你可以将其看成是一个命令的快捷方式。使用 alias 的最大好处是,可以简化输入,从而为你节省时间,并提高效率。定义的alias 可以保存到 ~/.bashrc 文件中,以后在命令行中就可以直接使用了。alias 允许使用更加简短的名称来重新定义 Linux 中的 Shell 命令,从而简化命令行的输入。如果经常与 CLI 打交道,那么使用 alias 不仅会

2017-02-24 09:22:59 544

转载 TCP 的那些事儿(下)

这篇文章是下篇,所以如果你对TCP不熟悉的话,还请你先看看上篇《TCP的那些事儿(上)》 上篇中,我们介绍了TCP的协议头、状态机、数据重传中的东西。但是TCP要解决一个很大的事,那就是要在一个网络根据不同的情况来动态调整自己的发包的速度,小则让自己的连接更稳定,大则让整个网络更稳定。在你阅读下篇之前,你需要做好准备,本篇文章有好些算法和策略,可能会引发你的各种思考,让你的大脑分配很多内存和计算资源

2017-02-24 09:22:31 321

转载 Linux下常用的函数调用栈规范

我们都应该知道,高级语言的函数调用过程中,有“栈”这么一个概念,被调用函数的局部变量是存放在栈中的,函数调用的参数也是通过栈传递的。那么,调用函数是怎么把各种数据压入栈中,被调用函数又是怎么对栈进行操作以获取必要的数据呢?函数调用发生完毕之后,谁又负责清理这个栈?这就用到了函数调用栈规范!函数调用栈规范是指编译器的一中“约定”,他规定了调用者如何传递参数,被调用者如何获取参数,调用完成后怎么清理栈,

2017-02-24 09:21:52 424

转载 C语言函数调用栈剖析

理解调用栈最重要的两点是:栈的结构,EIP/EBP/ESP寄存器的作用。1.栈结构首先必须明确一点也是非常重要的一点,栈是向下生长的,所谓向下生长是指从内存高地址->低地址的路径延伸,那么就很明显了,栈有栈底和栈顶,那么栈顶的地址要比栈底低。2.EIP/EBP/ESP寄存器对x86体系的CPU而言,在函数调用过程中,系统会用到下面三种寄存器:1.EIP寄存器里存储的是函数调用完CPU下次要执

2017-02-24 09:21:25 313

转载 Nginx 开发从入门到精通

众所周知,nginx性能高,而nginx的高性能与其架构是分不开的。那么nginx究竟是怎么样的呢?这一节我们先来初识一下nginx框架吧。Nginx进程模型nginx在启动后,在unix系统中会以daemon的方式在后台运行,后台进程包含一个master进程和多个worker进程。我们也可以手动地关掉后台模式,让nginx在前台运行,并且通过配置让nginx取消master进程,从而可以使ng

2017-02-24 09:20:47 214

转载 Linux网络状态工具ss命令使用详解

ss命令用于显示socket状态. 他可以显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix domain sockets等等统计. 它比其他工具展示等多tcp和state信息. 它是一个非常实用、快速、有效的跟踪IP连接和sockets的新工具.SS命令可以提供如下信息:所有的TCP sockets

2017-02-24 09:20:12 425

转载 Linux使用curl访问https站点时报错汇总

每一种客户端在处理https的连接时都会使用不同的证书库。IE浏览器和FireFox浏览器都可以在本浏览器的控制面板中找到证书管理器。在证书管理器中可以自由添加、删除根证书。而Linux的curl使用的证书库在文件“/etc/pki/tls/certs/ca-bundle.crt”中。(CentOS)以下是curl在访问https站点时常见的报错信息1.Peer’s Certificate iss

2017-02-24 09:19:18 761

转载 Linux expect用法

使用expect实现自动登录的脚本,网上有很多,可是都没有一个明白的说明,初学者一般都是照抄、收藏。可是为什么要这么写却不知其然。本文用一个最短的例子说明脚本的原理。脚本代码如下:###############################################!/usr/bin/expectset timeout 30spawn ssh -l username 192.168.1.1

2017-02-24 09:18:55 273

转载 Linux Shell环境变量

Shell的环境变量bash是Bourne Shell的GNU扩展,除了继承了sh的所有特点以外,还增加了很多特性和功能。由login启动的bash是作为一个登录shell启动的,它继承了getty设置的TERM、PATH等环境变量,其中PATH对于普通用户为"/bin:/usr/bin:/usr/local/bin",对于root用户为"/sbin:/bin:/usr/sbin:/usr/b

2017-02-24 09:18:03 348

转载 Linux Shell中引号的用法

shell可以识别4种不同类型的引字符号: 单引号字符' 双引号字符" 反斜杠字符\ 反引号字符`1. 单引号 ( ' ' )howard@0[script]$ grep Susan phonebookSusan Goldberg 403-212-4921Susan Topple 212-234-2343如果我们想查找的是Susan Goldberg,不能直接使用grep Susan G

2017-02-24 09:17:13 415

转载 Linux Shell中特殊参数

Bash shell中的位置参数$#,$*,$@,$0,$1,$2...及特殊参数$?,$-等的含义在Bash shell中经常会见到一些比较特殊的符号,本人现收集与此,以供查阅:位置参数:详见ABS(Advanced Bash Shell)中文翻译版103页第9章第一节内部变量,当然英文版ABS都一样啦$1, $2, $3等等...位置参数,从命令行传递给脚本,或者是传递给函数.或者赋职给一个

2017-02-24 09:16:42 207

转载 使用Bash中Complete自动补全命令

大家在Linux下都用shell的TAB自动补全功能,非常方便,但是有时自己开发程序,可能需要自定义实现TAB自动补全功能,这时可能就会用到complete命令来实现对命令的自定义补全,本文主要介绍complete的用法complete参数详解[cpp] view plain copy print?complete [-abcdefgjksuv] [-o comp-option] [-A actio

2017-02-24 09:16:03 1813

转载 Nginx配置SSL证书部署HTTPS网站

一、什么是 SSL 证书,什么是 HTTPSSSL 证书是一种数字证书,它使用 Secure Socket Layer 协议在浏览器和 Web 服务器之间建立一条安全通道,从而实现:1、数据信息在客户端和服务器之间的加密传输,保证双方传递信息的安全性,不可被第三方窃听;2、用户可以通过服务器证书验证他所访问的网站是否真实可靠。HTTPS 是以安全为目标的 HTTP 通道,即 HTTP 下加入

2017-02-24 09:15:10 512

转载 根据文件头判断图片类型

对于图片的文件头,用工具打开一幅图片就可以看到前面的几个字节。这里整理出常见的图片格式文件头。1.JPEG- 文件头标识 (2 bytes): 0xff, 0xd8 (SOI) (JPEG 文件标识)- 文件结束标识 (2 bytes): 0xff, 0xd9 (EOI)2.TGA- 未压缩的前5字节    00 00 02 00 00- RLE压缩的前5字节   00 00 10 00

2017-02-23 09:48:26 625

转载 Socket的半包,粘包与分包的问题

概述关于半包、粘包和分包的现象产生,是因为TCP当中只有流的概念,没有包的概念. ,而面向流的通信是无消息保护边界的。由于TCP无消息保护边界, 需要在消息接收端处理消息边界问题,因此自然产生了如何分包。半包指接受方没有接受到一个完整的包,只接受了部分,这种情况主要是由于TCP为提高传输效率,将一个包分配的足够大,导致接受方并不能一次接受完。( 在长连接和短连接中都会出现)。 粘包与分包  指发

2017-02-23 09:46:48 541

转载 System Dump和Core Dump的区别

许多没有做过UNIX系统级软件开发的人士,可能只听说过Dump,而并不知道系统Dump和Core Dump的区别,甚至混为一谈。系统Dump(System Dump)所有开放式操作系统,都存在系统DUMP问题。产生原因:由于系统关键/核心进程,产生严重的无法恢复的错误,为了避免系统相关资源受到更大损害,操作系统都会强行停止运行,并将当前内存中的各种结构、核心进程出错位置及其代码状态,保存下来,以便

2017-02-23 09:43:56 628

转载 Linux下的IO监控与分析

近期要在公司内部做个Linux IO方面的培训, 整理下手头的资料给大家分享下                                各种IO监视工具在Linux IO 体系结构中的位置                                 源自 Linux Performance and Tuning Guidelines.pdf1 系统级IO监控iostat  iost

2017-02-23 09:43:31 478

转载 服务器TIME_WAIT和CLOSE_WAIT区别及解决方案

系统上线之后,通过如下语句查看服务器时,发现有不少TIME_WAIT和CLOSE_WAIT。netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'打印显示如下:TIME_WAIT 297ESTABLISHED 53CLOSE_WAIT 5这三种连接状态含义分别如下:TIME_WAIT:表示主动关闭,通过优化系

2017-02-23 09:43:08 297

转载 Nginx 核心模块、HTTP模块、邮件模块解析

安装模块Nginx 模块必须在编译时就进行选择,目前不支持在运行时进行模块选择。在编译时,可以通过命令 ./configure –help 运行所提供的配置脚本来查看所有支持的编译选项列表(包含可选模块)。Nginx 核心模块这些模块是必须的。名称说明Main配置错误日志、进程、权限等。Events配置epoll、kqueue、select、poll等。标准 HTTP 模块这些模块是默认均被编译

2017-02-23 09:42:46 470

转载 Nginx Upstream Keepalive配置

Nginx 1.1.14版本以前与后端upstream服务器建立的都是短链接,即通过HTTP/1.0向后端发起连接,并把请求的”Connection” header设为”close”。这样nginx往upstream后端发请求时,也会消耗很多的时间与带宽,如果让nginx与upstream后端建立起长链接,从nginx发起的请求就可以挑选一个合适的长链接发往upstream后端服务器,这样即可以节省

2017-02-23 09:42:15 2352

转载 HAProxy1.4.6后端Keepalive配置

KeepAlive 就是通常所称的长连接,KeepAlive带来的好处是可以减少tcp连接的开销,这对于短response body的请求效果更加明显。HAProxy后端keepalive指的是在HAProxy服务完一次与后端的交互后,不关闭HAProxy和后端的连接,而是维护这个连接以备后续的请求复用。HAProxy后端Keepalive 配置,启用HAProxy后端长连接需要配置如下[php]

2017-02-23 09:41:23 1341

转载 Linux中TCP和UDP发送和接收缓冲区

1. TCP收发缓冲区默认值 [root@qljt core]# cat /proc/sys/net/ipv4/tcp_rmem 4096 87380 4161536(TCP接收缓冲区min,default,max)cat /proc/sys/net/ipv4/tcp_wmem4096 16384 4161536(TCP发送缓冲区min,default,max)2. UDP收发缓冲区默认值[

2017-02-23 09:41:02 834

转载 Linux中TCP listen()的backlog参数详解

listen函数是网络编程一个基本的函数,而且它的backlog参数却是和TCP协议息息相关的。我们来看一下一个backlog参数到底有多少秘密。一、   为了理解backlog参数,我们必须首先认识listen函数。点击(此处)折叠或打开#include<sys/socket.h>int listen(int sockfd, int backlog);listen函数仅由TCP服务器调用,它做两

2017-02-23 09:40:39 1783

转载 协程 及 Libco 介绍

libco 是腾讯开源的一个协程库,主要应用于微信后台RPC框架,下面我们从为什么使用协程、如何实现协程、libco使用等方面了解协程和libco。 why协程为什么使用协程,我们先从server框架的实现说起,对于client-server的架构,server最简单的实现:while(1) {accept();recv();do();send();}串行地接收连接、读取请求、处理、应答,

2017-02-23 09:40:00 383

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除