Thứ Năm, 16 tháng 9, 2010

Tối ưu hóa apache, php và mysql trên CentOS

Việc tối ưu hóa một webserver rất quan trọng, vì nếu chúng ta config tốt thì website của chúng ta có thể chạy nhanh hơn, mạnh hơn khi lượng truy cập lớn, và ít xảy ra các lỗi trong quá trình chạy.
Tối ưu apache:
Mở file /etc/httpd/conf/httpd.conf và thay đổi các giá trị sau:

01 Timeout 200
02 KeepAlive On
03 maxKeepAliveRequests 100
04 KeepAliveTimeout 3
05 MinSpareServers 10
06 MaxSpareServers 20
07 StartServers 15
08 MaxClients 250
09 MaxRequestsPerChild 0
10 HostnameLookups Off

Tối ưu hóa php:
Để tối ưu hóa php thì ta có thể cài eAccelerator để tăng tốc độ xử lý cho php.
Đầu tiên vào trang chủ của eAccelerator để download phiên bản mới nhất về. Giải nén và di chuyển đến thư mục đó.
Và sau đó gõ các lệnh sau:

1 phpize
2 ./configure
3 make

và tiến hành cài đặt eAccelerator :

1 make install

Tiếp theo chúng ta sẽ mỡ file php.ini ( thường ở /etc/php.ini ) và chèn đoạn mã sau vào cuối dòng:

01 extension="eaccelerator.so"
02 eaccelerator.shm_size="16"
03 eaccelerator.cache_dir="/tmp/eaccelerator"
04 eaccelerator.enable="1"
05 eaccelerator.optimizer="1"
06 eaccelerator.check_mtime="1"
07 eaccelerator.debug="0"
08 eaccelerator.filter=""
09 eaccelerator.shm_max="0"
10 eaccelerator.shm_ttl="0"
11 eaccelerator.shm_prune_period="0"
12 eaccelerator.shm_only="0"
13 eaccelerator.compress="1"
14 eaccelerator.compress_level="9"

Bước cuối cùng là tạo thư mục cache cho eAccelerator:

1 mkdir /tmp/eaccelerator
2 chmod 0777 /tmp/eaccelerator

Kiểm tra xem eAccelerator đã hoạt động chưa. Ta gõ php -v, nếu thấy xuất hiện:

1 PHP 5.2.6 (cli) (built: May 5 2008 10:32:59)
2 Copyright (c) 1997-2008 The PHP Group
3 Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
4 with eAccelerator v0.9.5.3, Copyright (c) 2004-2006 eAccelerator, by eAccelerator

nghĩa là eAccelerator đang hoạt động

Tối ưu hóa mysql:
Mở file my.cnf và chèn vào đoạn code sau:

01 [mysqld]
02 max_connections = 400
03 key_buffer = 16M
04 myisam_sort_buffer_size = 32M
05 join_buffer_size = 1M
06 read_buffer_size = 1M
07 sort_buffer_size = 2M
08 table_cache = 1024
09 thread_cache_size = 286
10 interactive_timeout = 25
11 wait_timeout = 1000
12 connect_timeout = 10
13 max_allowed_packet = 16M
14 max_connect_errors = 10
15 query_cache_limit = 1M
16 query_cache_size = 16M
17 query_cache_type = 1
18 tmp_table_size = 16M
19 skip-innodb
20
21 [mysqld_safe]
22 open_files_limit = 8192
23
24 [mysqldump]
25 quick
26 max_allowed_packet = 16M
27
28 [myisamchk]
29 key_buffer = 32M
30 sort_buffer = 32M
31 read_buffer = 16M
32 write_buffer = 16M

Không có nhận xét nào:

Đăng nhận xét