工作,学习,生活,这里将会有一些记录. 备用域名:http://meisw.wdlinux.cn 注册 | 登陆
浏览模式: 标准 | 列表2013年03月的文章

mysql myisam转innodb的2种方法

mysql myisam转innodb的2种方法

一,用alter table来实现。
mysql> alter table merchant type=innodb;

ALTER TABLE  `block_view` ENGINE = INNODB;

 

二,导出数据,重新建表
1,导出表结构以及数据,删除老表,重新建表
查看复制打印?
//方法1,我们可以把把创建这个表的sql拷贝出来,把ENGINE=MyISAM换成,ENGINE=INNODB 
mysql> show create table merchant\G; 
*************************** 1. row *************************** 
 Table: merchant 
Create Table: CREATE TABLE `merchant` ( 
 `btid` int(5) unsigned zerofill NOT NULL auto_increment, 
 `btname` varchar(100) NOT NULL, 
 `btnote` text, 
 PRIMARY KEY  (`btid`), 
 UNIQUE KEY `btname` (`btname`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 
1 row in set (0.00 sec) 
 
//方法2,直接导出表结构,在文件里面替换一个myisam 
mysqldump -udba -p -d test merchant >/tmp/test/mytest/merchant.sql; 
2,导出数据
mysqldump -udba -p --no-create-info test merchant >/tmp/test/mytest/merchant_data.sql; 
3,删除老表,重新建表,导入数据,这个就不说了,linux 简单的mysql备份和导入,以及文件的备份和导入

mysql innodb启动问题

# Uncomment the following if you are using InnoDB tables
innodb_data_home_dir = /www/wdlinux/mysql-5.5.30/data
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /www/wdlinux/mysql-5.5.30/data
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 1024M
innodb_additional_mem_pool_size = 20M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 64M  //启用这个,就不能启动
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50

 

--------

要把ib_log*的文件删除,再启动就正常了

使用gperftools优化Nginx和MySQL内存管理

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-2.4

[Thu Aug 15 17:32:57.808228 2013] [authz_core:error] [pid 1418:tid 140248106297088] [client 183.31.217.145:15391] AH01630: client denied by server configuration: /www/web/default/index.html

 

<Directory />
    AllowOverride none
    Require all denied
</Directory>
<Directory /www/web>
    AllowOverride none
    Require all granted
    #Require all denied
</Directory>

 

<Directory /www/web/default>
    Options FollowSymLinks
    AllowOverride None
    #Order allow,deny
    #Allow from all
    Require all granted
</Directory>

APACHE安装 mod_rpaf获取用户真实IP地址

wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz

cd mod_rpaf-0.6
/usr/local/apache2/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c

如果出现如下错误:

mod_rpaf-2.0.c: In function 'rpaf_cleanup':
mod_rpaf-2.0.c:150: error: 'conn_rec' has no member named 'remote_ip'
mod_rpaf-2.0.c:151: error: 'conn_rec' has no member named 'remote_addr'
mod_rpaf-2.0.c:151: warning: implicit declaration of function 'inet_addr'
mod_rpaf-2.0.c:151: error: 'conn_rec' has no member named 'remote_ip'
mod_rpaf-2.0.c: In function 'change_remote_ip':
mod_rpaf-2.0.c:164: error: 'conn_rec' has no member named 'remote_ip'
mod_rpaf-2.0.c:183: error: 'conn_rec' has no member named 'remote_ip'
mod_rpaf-2.0.c:186: error: 'conn_rec' has no member named 'remote_ip'
mod_rpaf-2.0.c:187: error: 'conn_rec' has no member named 'remote_addr'
mod_rpaf-2.0.c:187: error: 'conn_rec' has no member named 'remote_ip'
apxs:Error: Command failed with rc=65536

#将mod_rpaf-2.0.c的150、151、164、183、186、187这几行的remote_ip修改成client_ip,remote_addr修改成client_addr。

在httpd.conf加入如下代码:

LoadModule rpaf_module   modules/mod_rpaf-2.0.so

<IfModule mod_rpaf.c>

RPAFenable On

RPAFsethostname On

RPAFproxy_ips 127.0.0.1

RPAFheader X-Forwarded-For

</IfModule>

使用memc-nginx和srcache-nginx模块构建高效透明的缓存机制

使用memc-nginx和srcache-nginx模块构建高效透明的缓存机制

 

http://blog.codinglabs.org/articles/nginx-memc-and-srcache.html

 

http://blog.csdn.net/tianmo2010/article/details/8473996

使用gperftools优化Nginx和MySQL内存管理

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

Squid优化(一)

Hot!几个SQUID重要参数:

maximum_object_size 是 能cache最大的文件大小.对应wmv,rm文件,建议设置为32768 kB
maximum_object_size_in_memory 是在内存中cache的最大文件大小.
cache_mem 是SQUID可用到的最大内存.经实践,4G内存的服务器用2G;超过2G导致SQUID运行不稳

首先要分析SQUID所cache内容:

运行

squidclient -p 80 cache_object://localhost/info

能看到如下内容:

Storage Swap size: 7549104 KB
Storage Mem size: 418804 KB
Mean Object Size: 160.46 KB

Mean Object Size是平均内容大小,一般要把maximum_object_size_in_memory设置成离它最近的128的倍数.在这个例子中maximum_object_size_in_memory 的值应该是256kB.

cache_mem 一般设置成服务器内存的一半或更多,只要运行过程中LINUX没有使用SWAP就可以.

再就是按业务分SQUID.
比如某个论坛,用户能上载图片和视频;当然我们要把上载的图片、视频放在单独的域名上,比如img.example.com, video.example.com;这两个域名只提供静态文件服务.

根据统计,图片的平均大小在100KB,视频的平均大小在4M,差别是很大,应该建两个squid分别作图片和视频的CACHE.图片SQUID的 maximum_object_size_in_memory 设置为256KB,视频的SQUID的maximum_object_size_in_memory设置为8196KB.

Squid优化(2)

Hot!探讨动态内容的CACHE.

BBS,论坛是典型动态内容,要保证内容更新及时的同时,提高访问速度,降低数据库负担不是个简单任务.经实践发现如下办法取得很好效果:

1) 配置SQUID,对动态内容强制CACHE,用到的配置参数是refresh_pattern

refresh_pattern ^/forum/viewthread.php 1440 1000% 1440 ignore-reload

/forum/viewthread.php的内容将强制保持1天

2) 修改论坛程序在用户回复帖子后,向SQUID发送PURGE命令清除相应帖子的页面CACHE,保证失效性
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~实现过这一功能,但是有时候生效,有时候无效,还未进一步查明原因.(Edit by Sean)

3) 有些频繁更新的页面可以不CACHE,用no_cache参数

acl no_forum_cache urlpath_regex ^/forum/forumdisplay.php
no_cache DENY no_forum_cache

Records:281234