文章分类 - 工具文章
摘要:2007-08-03 20:059143人阅读评论(7)收藏举报终端linux编程工作服务器unix守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进 程。 Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任务。 比如,作业规划进程crond,打印进程lpd等。守护进程的编程本身并不复杂,复杂的是各种版本的Unix的实现机制不尽相同,造成不同 Unix环境下守护进程的编程规则并不一致。需要注意,照搬某些书上的规则(
阅读全文
摘要:回页首Valgrind 概述体系结构Valgrind是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合。Valgrind由内核(core)以及基于内核的其他调试工具组成。内核类似于一个框架(framework),它模拟了一个CPU环境,并提供服务给其他工具;而其他工具则类似于插件 (plug-in),利用内核提供的服务完成各种特定的内存调试任务。Valgrind的体系结构如下图所示:图 1 Valgrind 体系结构Valgrind包括如下一些工具:Memcheck。这是valgrind应用最广泛的工具,一个重量级的内存检查器,能够发现开发中绝大多数内存错误使用情况,比如:使用
阅读全文
摘要:一个支持上传的简单 HTTP Server2010-05-16ToyPosted inApps,ServerRSS{ 撰文/bones7456}现在,很多人都知道,Python 里有个 SimpleHTTPServer,可以拿来方便地共享文件。比如,你要发送某个文件给局域网里的同学,你只要 cd 到所在路径,然后执行这么一行:python -m SimpleHTTPServer人家就可以通过 http://你的IP:8000 来访问你要共享的文件了。像我早已把这个命令做了 alias。但是,某一天,你需要从同学哪里复制一个文件到本机,然后你就会跟你同学说,XX,共享下某目录。当你以为可以用 H
阅读全文
摘要:这里对在网络程序中遇到的一些问题进行了总结, 这里主要针对的是我们常用的TCP socket相关的总结, 可能会存在错误, 有任何问题欢迎大家提出.对于网络编程的更多详细说明建议参考下面的书籍《UNIX网络编程》《TCP/IP 详解》《Unix环境高级编程》网络编程常见问题总结相关说明非阻塞IO和阻塞IO基本概念设置区别:读:写:超时控制:长连接和短连接的各种可能的问题及相应的处理短连接:长连接:主要线程模型优缺点和注意事项最简单的线程模型生产者消费者模型异步模型对一些常见错误号的分析FAQ为什么网络程序会没有任何预兆的就退出了write出去的数据, read的时候知道长度吗?如何查看和观察句
阅读全文
摘要:分类:数据库2011-10-28 20:44618人阅读评论(1)收藏举报mysql数据库databasesqldeletebashMysql跨库主从热备失效问题在InnoDB引擎下发现,Mysql的主从热备存在数据不一致的问题,一些数据没有成功同步到备机。在use databases后,更新的表必须是当前选择的database才同步。譬如连上Mysql服务后操作:USE test2;UPDATE client SET name='test' WHERE uid=1;数据未能同步到备机,而使用use test后,才可以成功同步,如下方式:USE test;UPDATE clie
阅读全文
摘要:论创新工场、职业发展、offer如何比较选择、移动互联网[复制链接]laofo版主金钱9642版本号160威望12852积分22666精华172帖子6746串个门加好友打招呼发消息电梯直达1#发表于3天前|只看该作者|倒序浏览@魏小康xiaokanghttp://weibo.com/xiaokangwei首先声明:忙,保证持续更新不保证结束时间,估计一周左右写完,忙的话两周。涉及到对创新工场、李开复人品、移动互联网等的看法代表我魏小康的个人看法,版权所有,转载请务必注明。大纲:一、缘由、概述二、创新工场的模式三、职业发展道路的影响因素四、职业选择的几个小问题五、李开复的移动互联网和我眼中的移动
阅读全文
摘要:数据库的备份是极其重要的事情。如果没有备份,遇到下列情况就会抓狂:UPDATE or DELETE whitout where…table was DROPPed accidentally…INNODB was corrupt…entire datacenter loses power…从数据安全的角度来说,服务器磁盘都会做raid,MySQL本身也有主从、drbd等容灾机制,但它们都无法完全取代备份。容灾和高可用能帮我们有效的应对物理的、硬件的、机械的故障,而对我们犯下的逻辑错误却无能为力。每一种逻辑错误发生的概率都极低,但是当多种可能性叠加的时候,小概率事件就放大成很大的安全隐患,这时候备
阅读全文
摘要:Category :工作学习/ Tags :mysql,同步/ Date :2011.05.28/ 7,804 views / 一、MySQL复制概述 MySQL支持单向、异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。MySQL复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新、删除等等)。因此,要进行复制,必须在主服务器上启用二进制日志。每个从服务器从主服务器接收主服务器上已经记录到其二进制日志的保存的更新。当一个从服务器连接主服务器时,它通知主服务器定位到从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,并在本机..
阅读全文
摘要:Category :工作学习/ Tags :cgi,fastcgi,php/ Date :2010.11.22/ 18,090 views / 什么是CGI CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。 CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php,perl,tcl等 什么是FastCGI FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去fork一次(这是CG...
阅读全文
摘要:转自timyang:http://timyang.net/data/redis-misunderstanding/前几天微博发生了一起大的系统故障,很多技术的朋友都比较关心,其中的原因不会超出James Hamilton在On Designing and Deploying Internet-Scale Service(1)概括的那几个范围,James第一条经验“Design for failure”是所有互联网架构成功的一个关键。互联网系统的工程理论其实非常简单,James paper中内容几乎称不上理论,而是多条实践经验分享,每个公司对这些经验的理解及执行力决定了架构成败。题外话说完,最近
阅读全文
摘要:标签:redis,memlink,key-value,key-list,nosql“互联网数据目前基本使用两种方式来存储,关系数据库或者key value。但是这些互联网业务本身并不属于这两种数据类型,比如用户在社会化平台中的关系,它是一个list,如果要用关系数据库存储就需要转换成一种多行记录的形式,这种形式存在很多冗余数据,每一行需要存储一些重复信息。如果用key value存储则修改和删除比较麻烦,需要将全部数据读出再写入”—sina @timyangkey-value实现list功能如果用key-value中的value存储list,只能实现最简单的列表功能(按照id或时间先后排序,例
阅读全文
摘要:本文介绍下redis支持的各种数据类型包括string,list ,set ,sorted set 和hash1.keysredis本质上一个key-value db,所以我们首先来看看他的key.首先key也是字符串类型,但是key中不能包括边界字符由于key不是binary safe的字符串,所以像"my key"和"mykey\n"这样包含空格和换行的key是不允许的顺便说一下在redis内部并不限制使用binary字符,这是redis协议限制的。"\r\n"在协议格式中会作为特殊字符。redis 1.2以后的协议中部分命令已经
阅读全文
摘要:性能分析知识整理2012年11月17日admin发表评论阅读评论性能通过blktrace, debugfs分析磁盘IOThinking Clearly about PerformanceMethod R及相关阅读http_load手册web 性能测试中的几个关键指标:并发用户数,QPS,用户平均请求等待时间并发用户数和QPS两个概念没有直接关系,但是如果要说QPS时,一定需要指明是多少并发用户数下的QPS,否则豪无意义,因为单用户数的40QPS和20并发用户数下的40QPS是两个不同的概念。前者说明该应用可以在一秒内串行执行40个请求,而后者说明在并发20个请求的情况下,一秒内该应用能处理40
阅读全文
摘要:参数说明:-c 统计每一系统调用的所执行的时间,次数和出错的次数等.-d 输出strace关于标准错误的调试信息.-f 跟踪由fork调用所产生的子进程.-o filename,则所有进程的跟踪结果输出到相应的filename-F 尝试跟踪vfork调用.在-f时,vfork不被跟踪.-h 输出简要的帮助信息.-i 输出系统调用的入口指针.-q 禁止输出关于脱离的消息.-r 打印出相对时间关于,,每一个系统调用.-t 在输出中的每一行前加上时间信息.-tt 在输出中的每一行前加上时间信息,微秒级.-ttt 微秒级输出,以秒了表示时间.-T 显示每一调用所耗的时间.-v 输出所有的系统调用.一些
阅读全文
摘要:sed 工具简介 在了解了一些正规表示法的基础应用之后,再来呢?呵呵~两个东西可以玩一玩的,那就是 sed 跟 awk 了! 这两个家伙可是相当的有用的啊!举例来说,鸟哥写的 logfile.sh 分析登录文件的小程序, 绝大部分分析关键词的取用、统计等等,就是用这两个宝贝蛋来帮我完成的! 那么你说,要不要玩一玩啊?! ^_^ 我们先来谈一谈 sed 好了,基本上, sed 可以分析 Standard Input (STDIN) 的数据, 然后将数据经过处理后,再将他输出到 standrad out (STDOUT) 的一个工具。 至于处理呢?可以进行取代、删除、新增、撷取特定行等等的功能呢!
阅读全文
摘要:[转载] google ProtoBuf开发者指南google ProtoBuf开发者指南ProtoBuf开发者指南译者:gashero目录1 概览 1.1 什么是protocol buffer 1.2 他们如何工作 1.3 为什么不用XML? 1.4 听起来像是为我的解决方案,如何开始? 1.5 一点历史 2 语言指导 2.1 定义一个消息类型 2.2 值类型 2.3 可选字段与缺省值 2.4 枚举 2.5 使用其他消息类型 2.6 嵌套类型 2.7 更新一个数据类型 2.8 扩展 2.9 包 2.10 定义服务 2.11 选项 2.12 生成你的类 3 代码风格指导 3.1 消息与字段名
阅读全文
摘要:用grep查找文件内容 -a, --text equivalent to --binary-files=text -I equivalent to --binary-files=without-match使用grep搜索文件内容——快捷、方便(1) 在当前目录下的所有文件的文件内容中查找哪个文件的内容中有findcontents(大小写不敏感,列出findcontents所在文件的所在行)——适合于当前目录下的文件及目录数目比较少,如果查找后列出内容过多,将会失去查找意义。grep -rin findcontents * (2) 如果查找后列出内容过多,就需要用如下命令(只列出findc...
阅读全文
摘要:Feed架构的两种设计模式Push(推)和Pull(拉),其中Push优点是实现简单,缺点在于分发量,而Pull优点是节约存储,缺点是计算量大和峰值挑战。1.推模式,feeds的存储可以根据用户uid进行数据的sharding,并不是存储在一张表。事实上,推模式的查询只需要SELECT id from feeds_X wheres uid=myuid ORDER BY id DESC LIMIT n 而上面拉模式的sql语句比这个要消耗更多的资源。2. 正是我说的时间分区拉模式。 目前更多的网站都倾向于推模式,人人网的新鲜事完全是推模式,新浪微博据说是推拉模式,不过感觉也是推为主的。 ...
阅读全文
摘要:Boost.Circular_buffer维护了一块连续内存块作为缓存区,当缓存区内的数据存满时,继续存入数据就覆盖掉旧的数据。 它是一个与STL兼容的容器,类似于 std::list或std::deque,并且支持随机存取。circular_buffer 被特别设计为提供固定容量的存储大小。当其容量被用完时,新插入的元素会覆盖缓冲区头部或尾部(取决于使用何种插入操作)的元素。逻辑存储结构如图boost::circular_buffer is on the way…很多时候我们会用到缓冲区或者类似缓冲区的数据结构,如果能 事先估计出数据量多大,并尽可能的节约内存,可以使用环形(逻辑上)结构的缓
阅读全文
摘要:Pool分配是一种分配内存方法,用于快速分配同样大小的内存块, 尤其是反复分配/释放同样大小的内存块的情况。1. pool 快速分配小块内存,如果pool无法提供小块内存给用户,返回0。 Example:voidfunc(){boost::pool<>p(sizeof(int));^^^^^^^^^^^指定每次分配的块的大小for(inti=0;i<10000;++i){int*constt=p.malloc();pool分配指定大小的内存块;需要的时候,pool会向系统申请大块内存。...//Dosomethingwitht;don'ttakethetimetofr
阅读全文

浙公网安备 33010602011771号