- 博客(46)
- 收藏
- 关注
转载 Mysql监控指南(实践的好文章值得收藏)
Mysql作为广泛应用的数据库系统,平时运维工作中对她的监控必不可少,现在把我对Mysql数据库的监控体会写成下文,欢迎拍砖。无论是DBA或是SA,监控的目标都很明确,无外乎1.快速的得到Mysql过去一段时间或者当前运行的状态2.因硬件升级或者系统配置的改变而诊断对Mysql数据库性能影响3.在Mysql数据库系统出现故障要能够及时收到告警4.为日后编写运维报告提供各项数据指
2013-12-09 09:33:17
786
转载 架构师给程序员的一封信
六个月前,当我们开始新项目时,我和我的团队里的每个人都收到了来自我们的架构师的一封邮件: 每次当我开始做一个新项目时我都非常的兴奋。即使是在做了20年的软件开发后,我仍然感觉心里像揣了一个小兔子似的怦怦直跳。这将是我们共同的旅程。我深信我们正在绘制一份充满乐趣、富有挑战、内容丰富的路线图。我想让这趟旅程能够成为你们将来值得回忆的一件事,希望你们都能完全的体验到这次经历。
2013-08-27 18:27:22
989
转载 当你需要向用户解释时,就已经输了一半
昨天晚上我们去给一家已投资的企业做战略规划,围绕企业目前快速成长还缺什么这个问题,讨论了两个小时。最后发现这是很多企业都会遇到的问题:在一个行业里,已经存在几家标杆企业,如何选择战略? 我的产品、服务比他们的更好! 这类企业一般都是觉得这个市场空间很大,目前几家企业做得不够好,自己可以提供更好的产品或服务。所以想通过更好的产品、更优质的服务来获取市场。比如说当年的千团大战,
2013-08-27 18:19:28
1109
原创 使用SVN进行Unity3D项目管理的方法
由于导出的包自动包含了相关元数据信息,弥补了用SVN无法管理这些数据的缺陷,我们就可以将二者配合使用,达到多人在一个项目中协同工作的效果。具体使用步骤如下:首先用SVN建立对整个项目文件夹的管理,包括asset和library目录以及下面的文件;由负责集成的项目组成员管理并提交该项目更新到svn数据库其他协作人员从svn数据库下载最新的项目文件协作人员对自己负责的内容进行工作,然后将成果输
2013-08-14 15:18:53
2904
翻译 Unity3D Platform Tutorial 中文教程翻译-第一章
Unity是一款强大的游戏开发工具,适合大量的游戏类型,从第一视角游戏到复杂的游戏。 Unity的大量的特性,如高度映射地形、网络支持、复杂物理集成和脚本等,可能让新手畏惧,但是掌握这些工具后却能给你带来无穷的回报。 本教程将指导你完成一个第三人称视角的完整3D游戏关卡。包括玩家输入、碰撞检测、一些高级脚本、Blob阴影、基础AI、游戏HUD、场景分屏和音效等。
2013-08-14 00:04:31
2782
原创 Unity中protobuf的使用方法
在移动手机游戏开发中,目前Unity3D已成为比较主流的开发技术。那么对于客户端服务器协议的打解包,我们有3中常用的处理方式:1、自定义结构体:在协议中直接传输代码中自定义的结构体;这种方式的坏处是极大的增加了重复性的工作量,并且不能实现协议前后向兼容,可扩展性差;2、json、xml等文本协议格式: 使用json、xml等文本协议作为协议格式;这种方式的好处是易于开发,方便协议前后向
2013-08-13 16:15:06
27723
原创 小公司的项目开发管理
1、使用禅道进行相关的项目管理和开发中的bug管理;2、使用hdwiki进行日常项目中的知识文档管理; htwiki的安装方法见链接: http://kaiyuan.hudong.com/install.htm
2013-07-24 10:29:33
1181
转载 禅道敏捷项目管理软件的安装和使用
linux一键安装包也是在xampp基础上精简来的,内置了apache, php, mysql这些应用程序,只需要下载解压缩即可运行禅道。一、安装创建/opt/目录然后 下载我们最新的linux一键安装包(7z格式的) ,存储在/opt/目录下面。这个包是一个自解压缩格式的,chmod a+rx *.7z,添加执行权限。执行这个包,会自动解压缩,比如./ZenTaoPMS.3.0.
2013-07-23 11:51:29
1174
转载 git学习篇1——git的安装和基本使用
一、GIT的安装和初始化:1.在centos下,直接执行 yum install git-all;即可完成git的安装;2、新建一个目录: mkdir GitRepository; 进入目录并初始化一个git库:cd GitRepository; git init;3、完成上述操作后,会在GitRepository目录下面生成 .git 目录;4、进入.git目录,编译config
2013-07-12 11:05:13
578
转载 架构师给程序员的一封信
当我们开始新项目时,我和我的团队里的每个人都收到了来自我们的架构师的一封邮件:"每次当我开始做一个新项目时我都非常的兴奋。即使是在做了20年的软件开发后,我仍然感觉心里像揣了一个小兔子似的怦怦直跳。这将是我们共同的旅 程。我深信我们正在绘制一份充满乐趣、富有挑战、内容丰富的路线图。我想让这趟旅程能够成为你们将来值得回忆的一件事,希望你们都能完全的体验到这次经 历。
2013-01-31 09:59:56
400
转载 Chrome浏览器内部协议Chrome://收集
Chromium 采用 Chrome:// 协议开头的形式, 规定了一系列的内部协议, 有的用来显示数据, 有的用来实现一些功能, 但对普通用户进行了屏蔽。在Chrome浏览器地址栏直接访问就好了!chrome://bookmarks收藏管理器chrome://credits展示所有第三方软件许可证(开放源代码软件)chrome://dns展示DNS状态, 一般
2013-01-17 13:33:27
2175
转载 md5到md5破解的一些科普
看到网上一些对于md5的介绍还有对于当初王小云所做的破解有很多的误解,或者说不理解,然后觉得对于这些事情只要说明白还是比较好理解的说。首先md5其实就是一种hash,或者叫散列函数,有的地方叫杂凑函数,都是一个东西啦,其实他就是一种映射,而平常最常见的就是说md5是不可逆的,为什么不可逆呢,有人就说就是像有些函数没有反函数那样了,其实还是有点抽象,考虑md5是多对一的映射,也就是说很多
2012-12-20 19:42:37
743
转载 网站密码存储方案比较
为了对用户负责,用户密码采用不可逆算法的时候,我们就要考虑一下如何对用户密码进行加密。那么仅仅是使用不可逆算法就行了吗?还不是,在硬件飞速发展的今天,尤其是GPU运算能力超CPU 10-20倍甚至更多,使得暴力破解的时间大大缩短。那么为了使得暴力破解变得几乎不可能,我们就要使用一些不支持GPU加速破解的算法。这里所说的算法,实际上也是各种加密的hash方式。目前常见的不可逆加密算法有以下几
2012-12-20 19:41:10
1698
转载 几个实用的linux命令
一些强大的命令再分享一些可能你不知道的shell用法和脚本,简单&强大!在阅读以下部分前,强烈建议读者打开一个shell实验,这些都不是shell教科书里的大路货哦:)!$!$是一个特殊的环境变量,它代表了上一个命令的最后一个字符串。如:你可能会这样:$mkdir mydir$mv mydir yourdir$cd yourdir可以改成:$mk
2012-12-10 13:50:14
1174
转载 二进制patch工具xdelta的使用方法
Xdelta 是一个二进制的diff 工具[同时又兼具了patch 功能],diff 和patch 是Unix 世界里很有用的一对工具:我们通常将它们结合起来实现生成补丁,应用补丁的目的。如果要处理的不是文本文件,是二进制文件,我们可以使用一个专门用来处理二进制文件的工具–xdelta。 Xdelta3 可以说是xdelta 的一个增强版,功能更加强大,但命令和补丁和xdelt
2012-11-16 17:55:30
15141
原创 memcached源码阅读笔记(二)
之前的文章,主要分析过main()函数.那本文从分析主线程的执行流程开始,分析一下memcached的核心函数drive_machine()函数.\ 在main()函数中,会调用server_sockets()函数初始化监听的连接.在server_sockets()函数中,会调用server_socket()函数.server_socket()函数中,对于UDP会调用dispacth_c
2012-11-04 21:14:33
1423
原创 memcached源码阅读笔记(一)
memcached是一款开源的高性能的缓存服务器,目前已经被广泛的用于互联网产品中,缓存各种数据。在web game的开发中,我们也可以使用memcached来缓存热点数据,通过定期落地机制提高数据的读写性能,防止数据访问成为性能瓶颈。 那么本专题将主要分析一下memcached的源代码。 memcached的源码比较少,只有27个源代码文件。 对于网络IO事件的管理
2012-11-03 15:35:29
938
原创 libevent源码阅读笔记(五)
本章是libevent源码分析的最后一篇,主要分析一下libevent对信号处理的支持方式。 1).evsignal_init()函数分析:intevsignal_init(struct event_base *base){ int i; /* * Our signal handler is going to write to one end of the soc
2012-11-03 00:39:42
1006
原创 libevent源码阅读笔记(四)
之前的文章中介绍过libevent事件处理的整体流程,本文主要从事件的注册和删除等方面来分析libevent的源码。 1).event_add()函数分析:intevent_add(struct event *ev, const struct timeval *tv){ struct event_base *base = ev->ev_base; const struct e
2012-11-02 22:51:43
969
原创 libevent源码阅读笔记(三)
前面分析了libevent中对IO事件、定时器和signal的基本处理方法,也分析了libevent中基本的数据结构。从本章开始,将开始从代码结构和执行的角度,详细分析各功能的代码实现方式。 本文将主要讲述事件处理的整体整体流程。 1).event_base_new()函数源码分析:struct event_base *event_base_new(void){ in
2012-11-02 20:21:36
2258
原创 libevent源码阅读笔记(二)
本文主要分析一下event_base相关的数据结构和操作接口。 1、先看一下event_base结构:struct event_base { const struct eventop *evsel; void *evbase; int event_count; /* counts number of total events */ int event_count_act
2012-10-31 23:32:17
881
原创 libevent源码阅读笔记(一)
libevent是一个高性能的异步事件处理编程框架,通过reactor模式注册处理函数的方式,极大的方便了网络编程的异步I/O的处理。libevent主要封装和统一了3种事件的处理:I/O事件、定时器 和 信号。本文主要分析一下libevent的源码,如何实现异步I/O的reactor模式,如何将定时器和信号统一到事件处理中去。 1、libevent的基本使用方法: a).
2012-10-31 19:33:05
1346
原创 如何方便的使用shell脚本来解析xml文件
最近在项目中,需要用到shell脚本来解析xml文件。在网上搜了一下,发现有xmlsh等可以用,但是都需要下载安装,使用比较麻烦,后来经过查找在stackoverflow上找到了解决方法,将脚本记录如下。 项目中的主要需求为: 在xml文件中,需要配置连接的服务器的IP和端口号等信息,供游戏逻辑程序作为服务的客户端进行解析使用。但同时,这些IP和端口号也是在进行服务器部署时需要配置的,因
2012-10-10 22:20:15
31526
原创 google gperf-tools使用记录
今天对自己的排名服务器进行压力测试和性能分析,之前一直使用的比较顺手的是gprof,但是gprof对多线程的分析无能为力,如果想要支持的话得专门写一个共享库来支持。所以后来尝试了一下使用google-gperftool来进行性能分析。 google-gperf tools是google用来进行程序性能优化的工具集合,主要包括tcmalloc和profiler。 t
2012-10-10 19:05:13
8257
转载 内存泄漏分析及常用内存泄漏检测工具分享
一.内存泄漏的定义 一般我们常说的内存泄漏是指堆内存的泄漏。堆内存是指程序从堆中分配的,大小任意的(内存块的大小可以在程序运行期决定),使用完后必须显示释放的内存。应用程序一般使用malloc,realloc,new等函数从堆中分配到一块内存,使用完后,程序必须负责相应的调用free或delete释放该内存块,否则,这块内存就不能被再次使用,我们就说这块内存泄漏了。以下这段小程序演示了堆内
2012-09-23 12:11:21
8527
转载 程序性能调优攻略
本文转载自coolshell: http://coolshell.cn/articles/7490.html关于性能优化这是一个比较大的话题,在《由12306.cn谈谈网站性能技术》中我从业务和设计上说过一些可用的技术以及那些技术的优缺点,今天,想从一些技术细节上谈谈性能优化,主要是一些代码级别的技术和方法。本文的东西是我的一些经验和知识,并不一定全对,希望大家指正和补充。在开
2012-09-22 11:35:28
1623
原创 使用sar分析LINUX的性能
SAR sar是一个优秀的一般性能监视工具,它可以输出Linux所完成的几乎所有工作的数据。sar命令在sysetat rpm中提供。 sar可以显示CPU、运行队列、磁盘I/O、分页(交换区)、内存、CPU中断、网络等性能数据。最重要的sar功能是创建数据文件。每一个Linux系统都应该通过cron工作收集sar数据。该sar数据文件为系统管理员提供历史性能信息。这个功能非常
2012-09-21 17:08:36
9413
转载 如何配置vimdiff作为svn diff的查看代码的工具
LINUX下面的svn diff直接查看的话很吃力,也很不方便。所以网上找到如下解决方案,能方便的使用vimdiff来查看svn diff的代码查看工具,相当方便。配置方法为:1、编写脚本diffwrap.sh:#!/bin/sh#过滤掉svn diff的前五个命令行参数shift 5#使用vimdiff比较文件vimdiff "$@"2、在svn的配置文件
2012-09-20 17:46:24
3841
原创 tcpdump使用基础和技巧
tcpdump是linux下的一款字符界面的网络抓包工具,能为我们的网络程序调试提供极大的遍历。本文主要总结一下tcpdump的使用方法和一些使用技巧。1、tcpdump使用基础:../tcpdump -i eth0 port 80 -nn -X ‘port 53′ -c1 -A参数说明:-i 表示抓包监听的网卡;port 表示监听的端口,如果不加表示抓
2012-09-17 14:34:55
709
转载 Linux下的共享库的开发
Linux共享库技术是一项很激动人心的技术,它充分提供了程序的动态扩展能力,能够方便的进行Linux下程序的插件式开发。而且在运行过程中,如果需求有更改,只需要更新相应的共享库,从而能很方便的实现功能的无缝切换,极大的提供了程序的动态扩展能力。下面将说明动态库的开发方式。 1、支持动态库的主程序的开发: 在使用dl系列接口时,需要包含头文件 #include
2012-09-14 22:27:53
524
原创 常用的linux命令的操作技巧
1、批量修改替换文件中的内容: perl -i -p -e "s/orignial_string/new_string/g" 批量修改file文件中的original_string 为new_string;2、查看当前打开文件句柄最多的进程: lsof -n | awk '{print $2}' | sort | uniq -c | sort -nr | mo
2012-09-06 21:56:39
493
原创 常用svn操作记录
1、解决UFT-8环境下svn log 显示乱码的问题 alias svn="env LC_ALL=zh_CN.utf-8 svn"2、解决UTF-8环境下check out 代码由于文件编码出错的问题 export LC_CTYPE="zh_CN.UTF-8" export LANG="en_U
2012-09-06 21:25:31
880
转载 怎样DEBUG 进程IO消耗大的问题
1、问题描述: 发现CGI程序的磁盘IO突然出现峰值上升;2、判断: 程序突然出现大量的core dump或者某业务异常出发大量的IO写操作;3、分析方法: a).使用top按照CPU排序发现CPU使用率很高的进程,一般IO使用率高的进程CPU的消耗也会大幅增加,通过CPU使用率基本能够定位到问题进程; b).通过iostat查看哪个分区有大量的写磁盘操作;
2012-09-06 21:07:38
893
转载 服务器调优──提高并发量(ZZ)
操作系统的中打开文件的最大句柄数受限所致,常常发生在很多个并发用户访问服务器的时候.因为为了执行每个用户的应用服务器都要加载很多文件(new一个socket就需要一个文件句柄),这就会导致打开文件的句柄的缺乏.解决: 尽量把类打成jar包,因为一个jar包只消耗一个文件句柄,如果不打包,一个类就消耗一个文件句柄. java的垃圾回收不能关闭网络连接打开的文件句柄,如果没有执行close()(例
2011-06-17 19:20:00
1556
转载 让memcached和mysql更好的工作(ZZ)
这次是Fotolog的经验,传说中比Flickr更大的网站,Fotolog在21台服务器上部署了51个memcached实例,总计有254G缓存空间可用,缓存了多达175G的内容,这个数量比很多网站的数据库都要大的多,原文是A Bunch of Great Strategies for Using Memcached and MySQL Better Together,我这里还是选择性的翻译以
2011-06-17 19:18:00
506
原创 expect的基本用法(存下来慢慢看)
<br />一、概述 <br /><br />我们通过Shell可以实现简单的控制流功能,如:循环、判断等。但是对于需要交互的场合则必须通过人工来干预,有时候我们可能会需要实现和交互程序如telnet服务器等进行交互的功能。而Expect就使用来实现这种功能的工具。 <br /><br />Expect是一个免费的编程工具语言,用来实现自动和交互式任务进行通信,而无需人的干预。Expect的作者Don Libes在1990年开始编写Expect时对Expect做有如下定义:Expect是一个用来实现自动交互
2011-05-05 22:34:00
1270
转载 Linux下通用线程池的创建与使用(ZZ)
<br />本文给出了一个通用的线程池框架,该框架将与线程执行相关的任务进行了高层次的抽象,使之与具体的执行任务无关。另外该线程池具有动态伸缩性,它能根据执行任务的轻重自动调整线程池中线程的数量。文章的最后,我们给出一个简单示例程序,通过该示例程序,我们会发现,通过该线程池框架执行多线程任务是多么的简单。<br /> 为什么需要线程池<br />目前的大多数网络服务器,包括Web服务器、Email服务器以及数据库服务器等都具有一个共同点,就是单位时间内必须处理数目巨大的连接请求,但处理时间却相对较短
2011-03-16 18:43:00
430
原创 无阻塞套接字技术 讲解(ZZ)
<br />标准的网络编程模式有一个缺点,就是如果Socker类的I/O方法不能立即处理,I/O方法就会阻塞(Block)。阻塞是指程序停止执行,等待个特殊语句的完成。如当一个程序执行到Receive方法的时候,程序会停止执行,直到在套接字上读到的数据为止。如果远程设备不发送任何数据,程序就不能继续下去。对于单一连接的客户端/服务器程序这种方式也许可以正常工作,但对于必须连续处理其祂事件的程序就会引起问题。有3个可以避免使用阻塞网络调用的C#技朮:无阻塞套接字、多路传套接字和异步套接字。<br />
2011-02-23 21:12:00
526
原创 面试准备(ZZ)
<br />复习基本知识。 《LC C++ 数据结构与算法》、《操作系统原理》、《计算机网络》、《Linux程序设计》(因为我自己做的就是Linux和网络方面的东西); C推荐大家看三本书:《C陷阱与缺陷》、《C专家编程》、《C/C++高质量编程》。对于C,你这样准备就足够了。我的项目主要是C,自己也很喜欢。另外我C++也还可以,就看了钱能的那本。如果一些公司考C++,你最好看一下《C++ Primer》,主要看一下里面的STL。 数据结构也是重中之中,链表、栈、队列,主要是里面的算法、查找
2011-02-23 20:54:00
387
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人