http://xlogin.blog.51cto.com/3473583/1031311
Submitted by admin on 2013, March 19, 5:26 PM
http://xlogin.blog.51cto.com/3473583/1031311
Submitted by admin on 2013, March 16, 6:20 PM
http://blog.51yip.com/server/1503.html
Submitted by admin on 2013, March 14, 9:16 AM
Google 开发的 gperftools 包含四个工具,分别是:TCMalloc、heap-checker、heap-profiler 和 cpu-profiler,TCMalloc是 gperftools 的其中一个工具,用于优化C++写的多线程应用,与标准的glibc库的malloc相比,TCMalloc在内存的分配效率和速度要高,可以在高并发的情况下很好的控制内存的使用,提高服务器的性能,降低负载。
使用 TCMalloc 优化 Nginx 和 MySQL 的内存管理,性能将会有一定程度的提升,特别是对MYSQL服务器高并发下情况下的性能。
安装 libunwind 库
如果系统是64位的需要先安装libunwind库,32位系统则不需要安装。
libunwind 库为基于64位CPU和操作系统的程序提供了基本的堆栈辗转开解功能,其中包括用于输出堆栈跟踪的API、用于以编程方式辗转开解堆栈的API以及支持C++异常处理机制的API。
wget http://download.savannah.gnu.org/releases/libunwind/libunwind-1.0.1.tar.gz
tar -zxvf libunwind-1.0.1.tar.gz
cd libunwind-1.0.1/
CFLAGS=-fPIC ./configure
make CFLAGS=-fPIC
make CFLAGS=-fPIC install
cd ../
gperftools 的安装
gperftools 项目网站 http://code.google.com/p/gperftools/
wget http://gperftools.googlecode.com/files/gperftools-2.0.tar.gz
tar -zxvf gperftools-2.0.tar.gz
cd gperftools-2.0
./configure --prefix=/usr/local --enable-frame-pointers
make
make install
cd ../
如果是32位系统,可以不添加 –enable-frame-pointers,如果是64位系统,并且之前没有安装libunwind,那么一定要添加 –enable-frame-pointers 参数。
echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf
/sbin/ldconfig
为 gperftools 添加线程目录:
mkdir /tmp/tcmalloc
chmod 0777 /tmp/tcmalloc
使用gperftools优化Nginx:
为了使 Nginx 支持 gperftools,增加参数 –with-google_perftools_module 重新编译Nginx。
修改/usr/local/nginx/conf/nginx.conf
在pid这行的下面添加
google_perftools_profiles /tmp/tcmalloc;
重新启动nginx
使用gperftools优化MYSQL:
查找文件 /usr/local/mysql/bin/mysqld_safe
在# executing mysqld_safe 下面加上
export LD_PRELOAD=/usr/local/lib/libtcmalloc.so
重新启动MYSQL
验证 tcmalloc 是否运行:
lsof -n | grep tcmalloc
----------------
http://www.ibm.com/developerworks/cn/linux/l-cn-googleperf/index.html
Submitted by admin on 2013, February 4, 3:41 PM
Submitted by admin on 2013, January 8, 9:10 PM
checking for re2c... no
configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
http://sourceforge.net/projects/re2c/files/re2c/0.13.5/re2c-0.13.5.tar.gz/download
Submitted by admin on 2013, January 8, 4:26 PM
有时候远程下载tar包的时候,由于包太大,失去连接时,需要重新下载非常郁闷。
这时候使用split分割分解拆分大包文件,然后单个下载下文件就OK。
在Linux下使用 tar 命令来将文件打包并压缩是很通常的用法了。可是Linux的文件系统对文件大小有限制,也就是说一个文件最大不能超过2G,如果压缩包的的内容很大,最后 的结果就会超过2G,那么该怎么办呢?又或者压缩包希望通过光盘来进行备份,而每张光盘的容量只有700M,那么该如何存储呢?解决的办法就是将最后的压 缩包按照指定大小进行分割,这就需要用到split命令了。
举例说明:
要将目录logs打包压缩并分割成多个1M的文件,可以用下面的命令:
tar cjf - logs/ |split -b 1m - logs.tar.bz2.
完成后会产生下列文件:
logs.tar.bz2.aa, logs.tar.bz2.ab, logs.tar.bz2.ac
要解压的时候只要执行下面的命令就可以了:
cat logs.tar.bz2.a* | tar xj
再举例:
要将文件test.pdf分包压缩成500 bytes的文件:
tar czf - test.pdf | split -b 500 - test.tar.gz
最后要提醒但是那两个"-"不要漏了,那是tar的ouput和split的input的参数。
这里对命令做一些讲解。
压缩和分割命令行中红色部分的为命令对应的I/O文件名参数,其中-表示标准输入或输出。那么结合上面的例子,tar命令表示的意思就是将logs目录压缩,生成的结果直接输送到标准输出上;而split命令表示从标准输入获得文件内容进行分割,结果文件前缀为logs.tar.bz2.。二者再通过管道将各自的标准输入输出对接起来。
这里再解释一下split命令的参数含义:
-b SIZE 指定每个文件的大小,其单位可以为b(512字节)、k(1K)、m(1M)
-d 使用数字而不是字母作为后缀名
-a X 指定后缀名的长度,默认为2位
这样上面的命令就可以变化为:
tar cjf - logs/ |split -b 1m -d -a 1- logs.tar.bz2.
Submitted by admin on 2013, January 8, 4:11 PM
增量备份
1.首先创建完全备份:tar -czvf -g zeng aa.tar.gz /var
待/var中的数据变化后
2.再做增量备份: tar -czvf -g zeng aa.tar.gz.1 /var
差异备份
1. find /var -mtime -1 -print> filelist
产生要备份的档案的列表-1表示是一天的时间
2.tar -czv -T filelist -f /backup.tar.gz
依据文件列表进行备份. -T选项可以指定包含要备份的档案的列表
二、还原
tar -zxvf 备份文件.tar.gz -C /
参数x是告诉tar程序解压缩备份文件。 -C 参数是指定tar程序解压缩到的目录。
Submitted by admin on 2013, January 7, 4:53 PM