自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 资源 (1)
  • 收藏
  • 关注

原创 StarRocks 存算分离成本优化最佳实践

除此之外,对于某些导入模型,例如 Routine Load,我们还可以降低 Job 的并发 Task 数量来降低对象存储的写入频率,我们可以观察 BE 日志中每个 Task 的单次 KafKa 消费数据量,如果发现量较小,那我们就可以降低 并发 Task 数量来降低对象存储写入次数。由于 StarRocks 使用了多版本存储机制,用户通过 show data 命令看到的表的大小与表实际在对象存储可能会有所差距,因此,我们建议用户应当特别关注在对象存储上实际占据的存储容量。

2024-06-25 14:35:53 776

转载 单次遍历,带权随机选取问题(一)

在单次遍历,等概率随机选取问题中已经剧透了今天的内容,那就是带权随机选取(Weighted Random Sample)问题。问题描述:有一组数量未知的数据,每个元素有非负权重。要求只遍历一次,随机选取其中的一个元素,任何一个元素被选到的概率与其权重成正比。设元素总数为n,当然在遍历结束前n是未知的。设第i(1 i(> 0),则权重总和为w=∑ni=1wi ,也是在遍历结束时才

2014-11-23 10:00:50 1083

转载 golang: 详解interface和nil

golang的nil在概念上和其它语言的null、None、nil、NULL一样,都指代零值或空值。nil是预先说明的标识符,也即通常意义上的关键字。在golang中,nil只能赋值给指针、channel、func、interface、map或slice类型的变量。如果未遵循这个规则,则会引发panic。对此官方有明确的说明:http://pkg.golang.org/pkg/builtin/#T

2014-11-20 21:57:02 2270

原创 golang编译过程的一个奇怪问题

在编译golang程序的时候,出现如下错误:cannot create /go.o: No such file or directorymake: *** [build/mds] Error 2错误原因go build的时候会创建临时文件,猜测与临时目录相关的问题,查看了下源代码

2014-11-17 09:17:59 1871

原创 nginx之hash

nginx的hash

2014-10-29 22:02:37 901

原创 nginx虚拟主机实现原理

nginx虚拟主机实现原理

2014-10-26 19:57:24 2974

原创 对ngx_http_conf_ctx_t结构的思考

前言ngx_http_conf_ctx_t结构是

2014-10-21 22:21:00 2323

原创 nginx配置解析原理(三)

在前一篇文章(二)中我们说到:

2014-10-21 05:47:51 996

原创 nginx配置解析原理(二)

前面的nginx配置原理解析(一)我们重点chansh

2014-10-20 06:52:47 1607

原创 nginx配置解析原理(一)

概述这几篇博客文章我们将会重点分析nginx配置项解析的原理

2014-10-19 07:28:48 1776 2

原创 linux下的cc和gcc

在Linux下一会看到cc,另一会又看到gcc,感觉又点混乱的样子。它们是同一个东西么,有啥区别呢?一分为二地看:首先,如果讨论范围在Unix和Linux之间,那么cc和gcc不是同一个东西。cc来自于Unix的c语言编译器,是 c compiler 的缩写。gcc来自Linux世界,是GNU compiler collection 的缩写,注意这是一个编译器集合,不仅仅是c或c+

2014-10-08 21:29:56 677

原创 一次迷失的http请求--- 一次线上问题定位跟踪过程

概述本篇博客阐述一次线上问题

2014-10-01 06:43:37 2733 1

原创 x-forward-for科普

问题背景:在实际应用中,我们可能需要获取用户的ip地址,比如做异地登陆的判断,或者统计ip访问次数等,通常情况下我们使用request.getRemoteAddr()就可以获取到客户端ip,但是当我们使用了nginx作为反向代理后,使用request.getRemoteAddr()获取到的就一直是nginx服务器的ip的地址,那这时应该怎么办? part1:解决方案我在查阅资料

2014-09-26 07:18:12 3679 1

转载 nsq系统架构

go语言nsq源码解读二 nsqlookupd、nsqd与nsqadmin发表回复上一篇go语言nsq源码解读-基本介绍  介绍了最基本的nsq环境搭建及使用。在最后使用时,我们用到了几个命令:nsqlookupd、nsqd、nsqadmin、curl及nsq_to_file,并看到用curl命令写入的几个”hello world”被nsq_to_file命令保存在了硬盘文

2014-06-09 21:31:14 3973

原创 消息队列

关于消息队列,可以参考这篇文章:http://rdc.gleasy.com/gleasy%E7%9A%84%E5%88%86%E5%B8%83%E5%BC%8F%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97cloudmq.html

2014-06-09 05:31:44 773

转载 讲故事,学(Java)设计模式—抽象工厂模式

讲故事,学(Java)设计模式—抽象工厂模式 本文由 ImportNew - 汤米猫 翻译自 programcreek。欢迎加入Java小组。转载请参见文章末尾的要求。抽象工厂模式是在工厂模式的基础上增加的一层抽象概念。如果比较抽象工厂模式和工厂模式,我们不难发现前者只是增加了一层抽象的概念。抽象工厂是一个父类工厂,可以创建其它工厂类。故我们也叫它“工厂的工厂”。1、抽

2014-06-07 09:16:10 816

转载 讲故事,学(Java)设计模式—工厂模式

讲故事,学(Java)设计模式—工厂模式 本文由 ImportNew - ImportNew读者 翻译自 programcreek。欢迎加入Java小组。转载请参见文章末尾的要求。文章由@昵称神马的太讨厌了翻译。如果你也希望参与类似的系列文章翻译,可以加入我们的Java开发 和 技术翻译 小组。1.关于工厂模式工厂模式是根据不同的参数创建对象。例如用工厂创建人。

2014-06-07 09:14:14 702

转载 Unix调试的瑞士军刀:lsof

Unix调试的瑞士军刀:lsof这是“你应该知道的Unix和Linux命令”系列的第三篇,在这篇文章中,我会介绍lsof这个工具,如果说netcat 是进行网络诊断的瑞士军刀,那么lsof就是Unix调试的瑞士军刀。Lsof是遵从Unix哲学的典范,它只做一件事情,并且做的相当完美——它可以列出某个进程打开的所有文件信息。打开的文件可能是普通的文件,目录,NFS文件,块文件,字符文

2014-06-06 21:01:29 521

转载 使用 lsof 查找打开的文件

使用 lsof 查找打开的文件通过查看打开的文件,了解更多关于系统的信息。了解应用程序打开了哪些文件或者哪个应用程序打开了特定的文件,作为系统管理员,这将使得您能够作出更好的决策。例如,您不应该卸载具有打开文件的文件系统。使用 lsof,您可以检查打开的文件,并根据需要在卸载之前中止相应的进程。同样地,如果您发现了一个未知的文件,那么可以找出到底是哪个应用程序打开了这个文件。

2014-06-06 20:59:09 773

转载 Linux系统监控工具之vmstat详解

Linux系统监控工具之vmstat详解vmstat是一个查看虚拟内存(Virtual Memory)使用状况的工具,使用vmstat命令可以得到关于进程、内存、内存分页、堵塞IO、traps及CPU活动的信息。本文介绍了虚拟内存的运行原理,继而介绍了vmstat的用法和使用范例。vmstat是一个十分有用的Linux系统监控工具,使用vmstat命令可

2014-06-06 20:45:04 673

转载 通过IOStat命令监控IO性能

网站的很多性能问题最终都会归结到IO头上,所以说理解iostat命令是非常有必要的。小技巧:你知道iostat是从哪里得到IO相关信息的吗?使用strace命令能跟踪到答案:shell> strace -eopen iostatopen("/proc/diskstats", O_RDONLY)注:Strace教程:5 simple ways to troubl

2014-06-06 20:27:55 1248

转载 iostat来对linux硬盘IO性能进行了解

以前一直不太会用这个参数.现在认真研究了一下iostat,因为刚好有台重要的服务器压力高,所以放上来分析一下.下面这台就是IO有压力过大的服务器 12345678$iostat -x 1Linux 2.6.33-fukai (fukai-laptop)         

2014-06-06 18:00:48 494

转载 go channel实现

go channel实现Go语言经过多年的发展,于最近推出了第一个稳定版本。相对于C/C++来说,Go有很多独特之出,比如提供了相当抽象的工具,如channel和goroutine。本文主要介绍channel的实现方式。简介channel有四个操作:创建:c = make(chan int)发送:c 提取:i 关闭:close(c)根据创建方式的不同,channel

2014-05-19 09:10:17 2118

转载 golang internals

2014年5月>日一二三四五六2728293012345678910111213141516171819202122232425262728

2014-05-17 08:07:43 781

转载 Go Data Structures: Interfaces

Go Data Structures: InterfacesPosted on Tuesday, December 1, 2009. Go's interfaces—static, checked at compile time, dynamic when asked for—are, for me, the most exciting part of Go f

2014-05-16 09:28:17 957

转载 Go 语言的错误处理机制

这段时间在学习 Go 语言,接触到一些比较“另类”的语言特性,其中一个就是它的错误处理机制,跟我以往所知的都不太一样。在我正儿八经地使用过的编程语言(C / Python / Ruby / JavaScript)里面,处理程序错误的方式大致有两种:1. 返回特殊值 2. 抛出异常。C 语言属于第一种。函数调用出错时会返回特殊值,并有可能根据场景设置某个全局的(一般是 thread-loca

2014-05-16 09:07:33 1620

转载 golang: 详解interface和nil

声明:文章zhuanzgolang的nil在概念上和其它语言的null、None、nil、NULL一样,都指代零值或空值。nil是预先说明的标识符,也即通常意义上的关键字。在golang中,nil只能赋值给指针、channel、func、interface、map或slice类型的变量。如果未遵循这个规则,则会引发panic。对此官方有明确的说明:http://pkg.golang.org

2014-05-16 08:18:01 1038

转载 golang: 类型转换和类型断言

本文为转载,原文地址:http://my.oschina.net/goal/blog/194308类型转换在程序设计中都是不可避免的问题。当然有一些语言将这个过程给模糊了,大多数时候开发者并不需要去关注这方面的问题。但是golang中的类型匹配是很严格的,不同的类型之间通常需要手动转换,编译器不会代你去做这个事。我之所以说通常需要手动转换,是因为interface类型作为一个特例,会有不同

2014-05-16 08:07:15 2002

转载 内存映射文件原理探索

分类: Linux2010-09-17 13:49 7268人阅读 评论(22) 收藏 举报null硬件驱动数据结构目录(?)[+]一直都对内存映射文件这个概念很模糊,不知道它和虚拟内存有什么区别,而且映射这个词也很让人迷茫,今天终于搞清楚了。。。下面,我先解释一下我对映射这个词的理解,再区分一下几个容易混淆的概念,之后,什么是内存映射就很明朗了。

2014-05-16 07:41:56 688

原创 Go 语言中的方法,接口和嵌入类型

本文为转载技术翻译,原翻译地址:http://se77en.cc/2014/05/05/methods-interfaces-and-embedded-types-in-golang/原文地址:http://www.goinggo.net/2014/05/methods-interfaces-and-embedded-types.html概述在 Go 语言中,如果一个结构体

2014-05-16 07:38:17 1795

原创 Go 语言方法接受者类型的选择

概述很多人(特别是新手)在写 Go 语言代码时经常会问一个问题,那就是一个方法的接受者类型到底应该是值类型还是指针类型呢,Go 的 wiki 上对这点做了很好的解释,我来翻译一下。何时使用值类型如果接受者是一个 map,func 或者 chan,使用值类型(因为它们本身就是引用类型)。如果接受者是一个 slice,并且方法不执行 reslice 操作,也不重新分配内存给 slice

2014-05-16 07:36:03 964

转载 Golang反射机制的一些规则

http://blog.golang.org/laws-of-reflection

2014-05-15 09:15:23 1406

原创 Linux 下iptables使用以及简单原理

最近由于工作的需要经常会使用iptables,在这里我jian

2014-04-05 21:45:14 908

原创 golang匿名函数和闭包

匿名函数和闭包:闭包和匿名函数经常一起使用,可以使用闭包来访问函数中的局部变量(被访问操作的变量为指针指向关系,操作的是同一个局部变量)如:func closure(x int) (func(), func(int)) { fmt.Printf("初始值x为:%d,内存地址:%p\n", x, &x) f1 := func() { x = x + 5

2014-03-16 22:16:09 6318

原创 ngx_event_pipe_write_to_downstream分析

概述        这篇博客中我们重点阐述nginx http proxy模块如何向客户端发送响应。这也是一个比较复杂的过程,我们在叙述的过程中省略去一些过滤模块的钩子函数,直接进入发送响应数据的处理逻辑,http proxy模块触发发送响应的函数是ngx_event_pipe_write_to_downstream,这篇博客就对这个函数作一些简单分析。实现        总的说来,n

2014-03-16 08:52:12 1266

原创 nginx写临时文件过程分析

综述        Nginx作为反向代理服务器时,从后端服务器接收响应数据缓存在本地并发送给客户端。既然缓存在本地就要使用内存,如果一个请求的响应特别大,且可能nginx到客户端的发送速度比较慢就可能会导致请求全部缓存在内存中,导致内存使用偏高。nginx可以通过指令设置每个请求的响应body使用的缓冲区大小和数量。当出现缓冲区不足时就要将部分缓冲区的数据写入临时文件中,以释放部分缓冲区可再

2014-03-15 21:32:27 2654

原创 SO_RCVTIMEO理解

这个成员用来设置每个socket上的读超时,主要对应了struct sock的sk_rcvtimeo成员,可以通过setsockopt()来设置该该值。我们这里就来深入理解这个值在read的时候如何发挥作用。

2014-03-05 22:40:26 3303

原创 ngx_event_pipe_read_upstream分析

前面一篇博客中我们阐述了nginx有读、写事件到来时是如何触发相应处理函数来执行的,并且执行的大致逻辑是怎样,我们这里就仔细地深入分析nginx是怎样从上游服务器读取响应数据,具体的实现为ngx_event_pipe_read_upstream。    我们仔细思考下这个函数到底需要干些什么,为了能顺利地从上与上游服务器的连接上读出数据,我们必须首先准备好容纳数据的缓冲区,准备缓冲区这本身可能

2014-03-03 23:11:26 1578

原创 nginx http proxy接收响应过程(一)

本篇博客主要阐述nginx如何从上游服务器接收响应的过程,响应包括响应header和响应body,在这里我们比较关注响应body的接收过程。        因为nginx采用了全异步事件驱动模型,从上游服务器接收数据和向下游服务器发送数据也都是等待os通知相关socket fd上有事件发生后方可进行。我们这里不关心os如何通知nginx worker进程,只关心worker进程收到上游服务器的

2014-03-02 21:55:49 2093

原创 nginx http proxy模块缓冲区管理

最近在工作中使用了nginx,我们使用的是openresty,使用的是http proxy模块,即将nginx作为后端服务器的反向代理来使用。这里我们主要分析nginx作为反向代理服务器时的缓存管理。        这里所说的缓存指的是对后端服务器响应体的缓存,而对缓存的管理无非就是指如何高效地管理从后端服务器到客户端的响应头部和body。一般来说,nginx到后端服务器的传输速度大于客户端至

2014-03-01 22:40:33 1086

hack's delight

hacker's delight专门描述了计算机编程之中的各种位运算技巧,看完受益匪浅

2012-10-23

空空如也

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

TA关注的人

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