- 博客(194)
- 收藏
- 关注
转载 深入理解inode
一、inode是什么?理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即
2014-08-21 14:03:42 439
转载 static const char sep[256] = { [' ']=1, ['.']=1, ['-']=1, ['_']=1 };
static const char sep[256] = { [' ']=1, ['.']=1, ['-']=1, ['_']=1 };//gcc能编译通过,vs不支持此格式意思是定义1个数组,并进行初始化赋值,被赋值元素的下标为字符所对应的ASCII码。
2014-07-03 20:52:16 428
转载 Hive和Hbase作用于
Hive和Hbase有各自的不同特性:hive是高延迟,结构化和面向分析的,hbase是低延迟,非结构化和面向编程的。hive数据仓库在hadoop上时高延迟的,hive集成hbase就是为了使用hbase的一些特性,hive集成hbase可以有效利用habse数据库的存储特性,如行更新和列索引等,在集成的过程中注意维持hbase jar包的一致性。hive集成hbase需要在hi
2014-01-24 14:54:10 1099
转载 mrsync
mrsync a tool to transfer files from a master to many remote machines in LAN using Unix socket's multicast. It dynamically adjusts its speed of transfering to ease on the network and to leave no one
2013-09-28 10:18:35 401
转载 Fanotify
引子Fanotify (fscking all notifiction and file access system) 是一个 notifier,即一种对文件系统变化产生通知的机制。我第一次看到 Fanotify 是在 2009 年,Eric Paris 在 lkml 上努力地向大家说明 fanotify 的特性。但在当时有影响力的内核开发人员都认为这只是一个拿了报酬的程序员为 A
2013-09-28 10:07:05 632
转载 sersync
公司最近业务需求,要实时同步windows与linux,linux与linux之间的数据。我们使用是sersync这个开源的软件,是由金山才子所写。项目详情请访问:http://code.google.com/p/sersync/ qq群:37499077 欢迎讨论 一..linux之间的文件实时同步sersync的设计用以替代inotify-tool工具,同样是调用
2013-09-28 10:05:58 349
转载 rsync实现大致流程描述
一、文件同步不同主机之间的文件同步是服务器开发过程中一个重要的基础操作,它是cp及scp的一个扩充版本,能够实现不同主机之间的文件复制,能够提供增量复制,能够提供安全性验证。rsync的代码实现数量并不多,核心的文件更少,和很多理论作者的操作一样,该文件使用C语言编写,代码的编写、变量的命令、文档的编写都不是很全面。rsync的原理我在之前的一篇文章中大致有描述,也就是说原理并没有复杂到大家需
2013-08-31 17:01:04 581
转载 Rsync 实现原理
Rsync 实现原理前言关于rsync的原始文档 Rsync technical report 以及Andrew Tridgell的论文 Phd thesis (pdf) 都是关于rsync算法原理的极好的文档。但是,这些文档注重的是rsync算法本身,而对算 法的实现方法则描述较少。本文试图对Linux/Unix下的rsync工具的实现进行分析,并将描述下列问题:
2013-08-31 08:16:46 821
转载 nginx 健康检查和负载均衡机制分析
nginx 健康检查和负载均衡机制分析nginx 是优秀的反向代理服务器,这里主要讲它的健康检查和负载均衡机制,以及这种机制带来的问题。所谓健康检查,就是当后端出现问题(具体什么叫出现问题,依赖于具体实现,各个实现定义不一样),不再往这个后端分发请求,并且做后续的检查,直到这个后端恢复正常。所谓负载均衡,就是选择后端的方式,如何(根据后端的能力)将请求均衡的分发到后端。
2013-08-18 22:03:43 407
转载 nginx rewrite 中brake last 区别
在使用nginx重写(即rewrite)机制时,大家一般会用到last和break,关于这两个指令的作用,网友问的挺多,网上的讨论也挺多,这里做个总结:网友的给力解释:last: 重新将rewrite后的地址在server标签中执行break: 将rewrite后的地址在当前location标签中执行nginx官方解释:last: stops proc
2013-08-18 17:20:07 1694
转载 Nginx 关于 location 的匹配规则详解
Nginx 关于 location 的匹配规则详解http://iteye.com/eyesmore/有些童鞋的误区1、 location 的匹配顺序是“先匹配正则,再匹配普通”。矫正: location 的匹配顺序其实是“先匹配普通,再匹配正则”。我这么说,大家一定会反驳我,因为按“先匹配普通,再匹配正则”解释不了大家平时习惯的按“先匹配正则,再匹配普通”的实践经
2013-07-30 16:28:06 3029
转载 nginx 健康检查和负载均衡机制分析
nginx 是优秀的反向代理服务器,这里主要讲它的健康检查和负载均衡机制,以及这种机制带来的问题。所谓健康检查,就是当后端出现问题(具体什么叫出现问题,依赖于具体实现,各个实现定义不一样),不再往这个后端分发请求,并且做后续的检查,直到这个后端恢复正常。所谓负载均衡,就是选择后端的方式,如何(根据后端的能力)将请求均衡的分发到后端。此外,当请求某个后端失败时,要将该请求分发到其它后端(redisp
2013-07-27 09:19:30 383
rsync核心算法
rsync是unix/linux下同步文件的一个高效算法,它能同步更新两处计算机的文件与目录,并适当利用查找文件中的不同块以减少数据传输。rsync中一项与其他大部分类似程序或协定中所未见的重要特性是镜像是只对有变更的部分进行传送。rsync可拷贝/显示目录属性,以及拷贝文件,并可选择性的压缩以及递归拷贝。rsync利用由澳洲电脑程式师Andrew Tridgell发明的算法。这里不介绍其使用方法
2013-07-21 08:20:22 118
mysql 语句优化
mysql的性能优化包罗甚广:索引优化,查询优化,查询缓存,服务器设置优化,操作系统和硬件优化,应用层面优化(web服务器,缓存)等等。这里的记录的优化技巧更适用于开发人员,都是从网络上收集和自己整理的,主要是查询语句上面的优化,其它层面的优化技巧在此不做记录。查询的开销指标:执行时间检查的行数返回的行数建立索引的几个准则: 1、合理的建立索引能够加速数据读取效率,不合理的建立索引反而会拖慢数据库
2013-07-06 09:21:27 115
转载 HTTP协议详解
转自:http://www.cnblogs.com/TankXiao/archive/2012/02/13/2342672.html HTTP协议详解当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等。 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了Web应用程序的内部工作. 本文将对H
2013-06-10 09:15:28 344
转载 使用nginx后如何在web应用中获取用户ip及原理解释
问题背景:在实际应用中,我们可能需要获取用户的ip地址,比如做异地登陆的判断,或者统计ip访问次数等,通常情况下我们使用request.getRemoteAddr()就可以获取到客户端ip,但是当我们使用了nginx作为反向代理后,使用request.getRemoteAddr()获取到的就一直是nginx服务器的ip的地址,那这时应该怎么办? part1:解决方案我在查阅资料时,
2013-05-20 22:21:00 454
转载 MYSQL互为主备配置
实战环境介绍: 服务器名IP系统MySQLodd.example.com192.168.1.116rhel-5.85.5.16even.example.com192.168.1.115rhel-5.85.5.16 假设要同步的库是 db_rocky
2013-05-04 09:11:07 481
转载 解析url地址字串,获得请求参数
解析url地址字串,获得请求参数在项目中出现了要解析url地址字符串并获得请求的参数,故,写了这段小代码 后注: 现在发现这个工具类还挺好用的,尤其在一些测试里,可以简单的模仿HttpServletRequest了 解析类 Java代码 /** * CopyRight (C) 2008-2009 yeyong */ package
2013-05-04 09:05:25 587
转载 UNIX/Linux:向进程发信号的3种方式
UNIX/Linux:向进程发信号的3种方式问:怎么向另一个进程发信号?你能跟我解释下在UNIX/Linux环境向一个进程发信号的所有可用的选项吗?答:你可以用本文所说的任一种方法向进程发各种信号。1.用Kill向进程发信号使用kill命令向进程发信号。例如,你想向进程“a.out”发送USR1信号,如下所示。$ ps -C a.outPID
2013-05-01 21:32:16 445
转载 linux top命令查看内存及多核CPU的使用讲述
查看多核CPU命令mpstat -P ALL 和 sar -P ALL 说明:sar -P ALL > aaa.txt 重定向输出内容到文件 aaa.txttop命令经常用来监控linux的系统状况,比如cpu、内存的使用,程序员基本都知道这个命令,但比较奇怪的是能用好它的人却很少,例如top监控视图中内存数值的含义就有不少的曲解。本文通过一个运行中的WEB服务器的top监控截图,
2013-05-01 21:16:03 359
转载 fuser 概述
fuser 概述fuser命令是用来显示所有正在使用着指定的file, file system 或者 sockets的进程信息。例一:#fuser –m –u /mnt/usb1 /mnt/usb1: 1347c(root) 1348c(guido) 1349c(guido)在例子一中,使用了-m和-u选项,用来查找所有正在使用/mnt/usb1的所有进程的PID已
2013-05-01 21:10:58 270
转载 LINUX同步软件rsync原理
Sync Algorithm: RSync vs. RDC 数据同步(Sync)是很多网络应用需要的解决的问题,比如文件镜像。这里就以文件同步为例,问题模型:网络中两个主机Host-A和Host-B,都有同一文件File-Old的拷贝,现在这个文件在Host-A上做了一些改变成为了File-New,需要通过同步让Host-B也获得F-New。 让我们想想怎么处理这个问题,最简单的方法,把所
2013-05-01 16:11:36 363
转载 Linux 共享库编程
1、介绍 动态库是程序设计常用的技术,采用动态库可以有效的减少程序大小,节省空间,提高效率,增加程序的可扩展性,便于模块化管理。在Windows和Linux操作系统中都有动态库的概念。Windows将其称为动态链接库(Dynamic Link Library,DLL),其文件扩展名为.dll,Linux称其为共享库技术(Shared Library),相应的共享库文件扩展名为.so
2013-04-29 10:27:53 262
转载 静态调用和动态调用动态库区别
为什么要设计出来两种调用方式?静态不是很好吗?直接就调用了。动态还要dlopen dlclose一系列额外的动作。---------------------------------------------------------------------------------------------------------随便举个例子,我将不同语言的资源封装在dll中,有
2013-04-29 10:11:27 494
转载 nginx location配置详细解释
语法规则: location [=|~|~*|^~] /uri/ { … }= 开头表示精确匹配^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。~ 开头表示区分大小写的正则匹配~* 开头表示不
2013-04-13 09:08:55 294
转载 How do I resolve a HTTP 414 “Request URI too long” error?
Under Apache, the limit is a configurable value, LimitRequestLine. Change this value to something larger than its default of 8190 if you want to support a longer request URI.However, note that if
2013-03-02 14:04:01 1226
转载 解决Linux下Tomcat日志目录下的catalina.log日志文件过大的问题
由于Tomcat在默认情况下会将没有经过配置的web应用所产生的日志输出已经其本身的日志内容都输出到这个文件中,那么随着时间的推移,这个文件的尺寸将会越来越大,当需要检查日志内容时间会导致文件难以打开,而且同时tomcat依旧在不断的向文件中输入内容,这也会降低tomcat的性能。下面利用一个工具来将tomcat产生的catalina.out文件根据日期来分割,将每天产生的日志存放在一个独立的文件
2013-02-24 08:54:08 424
转载 Gearman 分布式任务调度
Gearman是一个分发任务的程序框架,可以用在各种场合,与Hadoop相比,Gearman更偏向于任务分发功能。它的 任务分布非常 简单,简单得可以只需要用脚本即可完成。Gearman最初用于LiveJournal的图片resize功能,由于图片resize需要消耗大量计算资 源,因此需要调度到后端多台服务器执行,完成任务之后返回前端再呈现到界面。Gearman 分布式任务实现原理上只用
2013-01-15 22:26:44 1572
转载 grep 行号
1 查询字符串所在的行号grep -n "xxx" str.txt # -n 打印字符 “xxx” 在文件 “str.txt” 所在的行数前缀示例:str.txt xxxyyyzzzxxx输入查找命令: grep -n "xxx" str.txt 结果如下: 1:xxx4:xxx行号
2013-01-13 10:35:58 1462
转载 extern、头文件、源文件与编译和链接
extern、头文件、源文件与编译和链接关键字:extern 、头文件、源文件编译、全局变量的定义谈到extern(这里只谈论同一语言编译情况下的extern,不考虑C++与C混合编译情况下的extern,因为extern在这两种情况下的功能是不同的)与头文件,不得不谈编译与链接。extern的作用与头文件基本等同,都是为编译器服务的。但头文件使用更方便一些。尤其是在做一个
2012-12-26 23:09:19 432
转载 shell脚本效率
摘 要: 低效的shell脚本设计会进一步影响原本解释器模式下并不见长的程序运行效率,使其在面对大数据量文本分析时的资源与时间消耗变成难以接受的。本文分析了shell语言及其应用需求的特点,从分层设计的角度提出了“自底向上进行shell脚本编程”的理论,同时提出了从“外部系统环境”到“内部执行模式”全面的掌握工具软件的方法。实例充分证明,自底向上的shell脚本编程思想及方法能够有效提高脚本
2012-12-23 21:27:43 1281
转载 nginx根据cookie分流
nginx根据cookie分流众所周知,nginx可以根据url path进行分流,殊不知对于cookie分流也很强大,同时这也是我上篇提到的小流量实验的基础。二话不说,先看需求,两台服务器分别定义为apache001:192.168.1.1:8080apache002:192.168.1.2:8080默认服务器为:default:192.168.1.0:8080
2012-12-09 20:50:52 4055
转载 nginx 学习
今天有个需求,要求是在访问某地址,比如http://www.test.com/jump?a=x&location=http:www.baidu.com,这个时候要用nginx去匹配规则并跳转,要求设置cookie "a"的值为"x",并且301跳转到location指定的地址,nginx虽然也常用,但是也就是最基本的配置,所以还花了好几个小时,才算弄出来了。大体配置如下:server {
2012-12-06 23:09:26 1198
转载 监控nginx
#/bin/bashhost=`hostname`ip=`ifconfig eth0 | grep ‘inet addr’|sed ‘s/.*addr://g’|sed ‘s/B.*//g’`#监控nginx的连接数http_req=`netstat -nat|grep -i “80″|wc -l `time_stamp=`date “+%Y/%m/%d %T”`if
2012-12-02 20:57:46 291
转载 inotify -- Linux 2.6 内核中的文件系统变化通知机制
一、 引言众所周知,Linux 桌面系统与 MAC 或 Windows 相比有许多不如人意的地方,为了改善这种状况,开源社区提出用户态需要内核提供一些机制,以便用户态能够及时地得知内核或底层硬件设备发生了什么,从而能够更好地管理设备,给用户提供更好的服务,如 hotplug、udev 和 inotify 就是这种需求催生的。Hotplug 是一种内核向用户态应用通报关于热插拔设备一些事件发
2012-11-30 19:50:11 260
转载 inotify用法
inotify是linux系统2.6.13以后内核支持的一种特性,功能是监视文件系统的变化,在监听到文件系统变化后会向相应的应用程序发送事件。典型应用场景比如文件管理器,理想情况下应该在用户使用其他手段修改了文件夹的内容后马上反映出最新的内容,而不应该在用户手动刷新后才显示最新内容。如果没有类似inotify的机制,一般会采用轮询的方式实现这种功能,不能在第一时间反映文件系统变化而且浪费CPU时间
2012-11-29 21:36:31 581
转载 前置声明的使用
前置声明的使用有一定C++开发经验的朋友可能会遇到这样的场景:两个类A与B是强耦合关系,类A要引用B的对象,类B也要引用类A的对象。好的,不难,我的第一直觉让我写出这样的代码:[cpp] view plaincopy// A.h #include "B.h" class A { B b; public: A(void); virtual ~A
2012-11-25 13:52:30 360
转载 readlink:读符号链接
readlink:读符号链接readlink系统调用用于获得符号链接的目标。它有三个参数:符号链接的路径,接收链接对象的缓冲以及这个缓冲的长度。不同寻常的是,readlink 不会在填充的目标路径最后添加 NUL 字符。不过,它会返回对象路径的字符数量,这使得为字符串添加 NUL 结尾变得很简单。如果 readlink 第一个参数指向一个文件而不是符号链接时,readlink 设 置err
2012-11-18 16:18:12 4676
转载 popen()函数执行脚本并返回结果
#include FILE * popen(const char *command , const char *type );int pclose(FILE *stream);函数说明 popen()函数通过创建一个管道,调用fork()产生一个子进程,执行一个shell以运行命令来开启一个进程。这个管道必须由pclose()函数关闭,而不是fclose()函数。pclose(
2012-11-18 10:55:22 1508
转载 execve函数
execve函数将执行一个程序¨程序的名字地址作为第一个参数¨一个内容为该程序的argv[i](argv[n-1]=0)的指针数组作为第二个参数¨(char*) 0作为第三个参数#include void main() { char *name[2]; name[0] = "/bin/sh"; name[1
2012-11-17 22:38:48 490
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人