Submitted by admin on 2013, March 17, 12:04 PM
- 配置1:4 CPU (4 Core) + 4 worker_processes (每个worker_processes 使用1个CPU)
- [reistlin@reistlin.com ~]$ cat /proc/cpuinfo | grep processor
- processor : 0
- processor : 1
- processor : 2
- processor : 3
- worker_processes 4;
- worker_cpu_affinity 0001 0010 0100 1000;
- 配置2:8 CPU (8 Core) + 8 worker_processes (每个worker_processes 使用1个CPU)
- [reistlin@reistlin.com ~]$ cat /proc/cpuinfo | grep processor
- processor : 0
- processor : 1
- processor : 2
- processor : 3
- processor : 4
- processor : 5
- processor : 6
- processor : 7
- worker_processes 8;
- worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
- 配置3:16 CPU (16 Core) + 16 worker_processes (每个worker_processes 使用1个CPU)
- [reistlin@reistlin.com ~]$ cat /proc/cpuinfo | grep processor
- processor : 0
- processor : 1
- processor : 2
- processor : 3
- processor : 4
- processor : 5
- processor : 6
- processor : 7
- processor : 8
- processor : 9
- processor : 10
- processor : 11
- processor : 12
- processor : 13
- processor : 14
- processor : 15
- worker_processes 16;
- worker_cpu_affinity 0000000000000001 0000000000000010 0000000000000100 0000000000001000 0000000000010000 0000000000100000 0000000001000000 0000000010000000 0000000100000000 0000001000000000 0000010000000000 0000100000000000 0001000000000000 0010000000000000 0100000000000000 1000000000000000;
nginx | 评论:0
| Trackbacks:0
| 阅读:846
Submitted by admin on 2013, March 16, 6:20 PM
http://blog.51yip.com/server/1503.html
linux | 评论:0
| Trackbacks:0
| 阅读:736
Submitted by admin on 2013, March 16, 6:16 PM
今天查询mysql的时候,报这样的错误,Incorrect key file for table './tg/dxad.MYI'; try to repair it. mysql表损坏的情况是很少见的,下面的方法适用于myisam,其他存储引擎,不知道能不能这样修复。
1,myisamchk修改表
查看复制打印?
[root@localhost tg]# myisamchk -of ./dxad.MYI //修复第一步
- recovering (with keycache) MyISAM-table './dxad.MYI'
Data records: 12597637
Found block that points outside data file at 1630252996
Data records: 12597456
[root@localhost tg]# myisamchk -r ./dxad.MYI //修复第二步
- recovering (with sort) MyISAM-table './dxad.MYI'
Data records: 12597456
- Fixing index 1
[root@localhost tg]# myisamchk ./dxad.MYI //修复第三步
Checking MyISAM file: ./dxad.MYI
Data records: 12597456 Deleted blocks: 0
- check file-size
- check record delete-chain
- check key delete-chain
- check index reference
- check data record references index: 1
- check record links
myisamchk带的参数,可以用man看一下。操作后重新启动一下数据库。
[root@localhost tg]# /etc/init.d/mysqld restart
这样操作后,还是有问题,会报 #145 - Table "XXXXX" is marked as crashed and should be repaired。如下图:
myisamchk 修复表后报的错误
2,命令行下repair修复表
查看复制打印?
mysql> repair table dxad; //dxad是表名
如下图
命令行下repair修复表成功
到这儿,myisam表损坏就修复好了。
mysql/db | 评论:0
| Trackbacks:0
| 阅读:767
Submitted by admin on 2013, March 16, 5:45 PM
1.备份数据库: mysqldump -u[user] -p[password] [databasename] > [dbfile.sql] # 备份数据库。
2. /usr/local/mysql/bin/mysqladmin -u root -p shutdown # 停止数据库 或者 service mysql stop。
3. InnoDB 表不支持全文搜索(fulltext search),那么,记得要将备份出来的数据库sql,删掉有关 Fulltext 的索引。
4. cd /usr/local/mysql/support-files/ 找寻适合主机内存的设定文件,必将设定文件拷贝到 /etc/my.cnf。
5. vi /etc/my.cnf ,将以下几项批注取消掉。以 my-large.cnf 为例。
innodb_data_file_path = ibdata1:10M:autoextend
innodb_buffer_pool_size = 256M
innodb_additional_mem_pool_size = 20M
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
加上 default-storage-engine=innodb
加上这段之后,以后新增的数据表型态都即是 InnoDB,不然每次新增一次数据表,SQL 后面得加上 ENGINE=InnoDB;
6 .将刚刚备份出来的sql,将ENGINE=MyISAM改成ENGINE=InnoDB。
7. /usr/local/mysql/bin/safe_mysqld --user=mysql & ,或service mysql start 启动数据库
8. 建立一个新的数据库(数据库名称跟备份出来的数据库名称一样)。
9. mysql -u[user] -p[password] [database_name] < [dbfile] # 将改好的数据汇入数据库中!
说明:
* 设定文件的选择是参照内存大小来选择。
my-huge.cnf - 1G~2G 、my-large.cnf - 512M 、 my-medium.cnf - 32M - 64M 、my-small.cnf <= 64M 。
InnoDB:my-innodb-heavy-4G.cnf
* 假如不会将备份出来的数据库改型态,那么您可以用下面这个指令,直接改变数据表的型态。
ALTER TABLE [tablename] ENGINE=InnoDB 如有存放全文索引功能的话,转换会失败的。
* 如你有一批数据表要改,可以用下面的指令:
mysql_convert_table_format [opt] -- ENGINE=InnoDB dbname [tablename]
但千万注意不要改变 mysql 数据库的数据型态,因为 mysql数据库存放的是 MySQL 内部的管理信息,所以必须保持 MyISAM 的格式。
* 加大 tablespace 空间:
innodb_data_file_path = ibdata1:1G;ibdata2:1G:autoextend:max2G
上面的意思是,tablespace 包含 ibdata1 & ibdata2 两个文件,若文件不存在,则建立容量各为1G的文件。一旦未来 InnoDB 需要,更多的空间,则 ibdata2 将每次自动增加 8MB,直到2G为止。
* MySQL 3.23.n,innodb_data_home & innodb_data_file_path设定是必须要有的,MySQL 4.0.0 之后的版本则是非必须的。
mysql/db | 评论:0
| Trackbacks:0
| 阅读:739
Submitted by admin on 2013, March 16, 5:44 PM
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/db | 评论:0
| Trackbacks:0
| 阅读:797
Submitted by admin on 2013, March 16, 2:03 PM
# 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*的文件删除,再启动就正常了
mysql/db | 评论:0
| Trackbacks:0
| 阅读:818
Submitted by admin on 2013, March 15, 7:59 PM
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
apache/web | 评论:0
| Trackbacks:0
| 阅读:901
Submitted by admin on 2013, March 15, 4:45 PM
[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/web | 评论:0
| Trackbacks:0
| 阅读:817