Hi,

FreeBSD 7 should offer much better performance for MySQL. The FreeBSD kernel developers have found ways to relieve some of the kernel bottlenecks which permit multithreaded applications to operate much better.

Regards,
Antony.

On 3 Jun 2008, at 03:43, VeeJay wrote:

Hi Guys

I need some performance tuning suggestions/help from you.

At my job, I am going to build a Web Server with

1. FreeBSD 7.0-RELEASE amd64
2. Apache 2.2.8
3. PHP 4.4.8 (or may be PHP5, what do you suggest?)

Server's hardware configuration is as follow:

2  x  Quad Core Xeon E5450 3.0GHz,2x6MB,1333FSB
16GB (8x2GB Dual Rank DIMMs) 667MHz FBD
6  x  450GB SAS 15k 3.5" HD Hot Plug
PERC 6/i, Integrated Controller Card x6 backplane
PE2950 III C5 MSS R10 Add-in PERC 5/i / 6/i 1 S
TCP/IP Offload Engine 2P
Broadcom TCP/IP Offload Engine functionality (TOE) Not Enabled

For FreeBSD 7.0-RELEASE amd64 Which MySQL 5.0 would be used ?
1. FreeBSD 7.x (x86_64)
 or
2. FreeBSD 6.x (x86)

I have done some googling and made these configuration files for Apache and
MySQL?

Apache:
httpd.conf----------------------------------------------------- start------------
# =================================================
# Basic settings
# =================================================
ServerType standalone
ServerRoot "/usr/local/apache"
PidFile /usr/local/apache/logs/httpd.pid
ScoreBoardFile /usr/local/apache/logs/httpd.scoreboard
ResourceConfig /dev/null
AccessConfig /dev/null
# =================================================
# Performance settings
# =================================================
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
MinSpareServers 5
MaxSpareServers 10
StartServers 5
MaxClients 256
MaxRequestsPerChild 0
# =================================================
# Apache modules
# =================================================
ClearModuleList
AddModule mod_log_config.c
AddModule mod_mime.c
AddModule mod_dir.c
AddModule mod_access.c
AddModule mod_auth.c
AddModule mod_php4.c
AddModule mod_rewrite.c
AddModule mod_security.c
AddModule mod_setenvif.c
# =================================================
# General settings
# =================================================
Port 80
User apache
Group apache
ServerAdmin [EMAIL PROTECTED]
UseCanonicalName Off
ServerSignature Off
HostnameLookups Off
ServerTokens Prod
<IfModule mod_dir.c>
   DirectoryIndex index.html
</IfModule>
DocumentRoot "/home/apache/www"
# =================================================
# Access control
# =================================================
<Directory />
   Options None
   AllowOverride None
   Order deny,allow
   Deny from all
</Directory>
<Directory "/home/apache/www">
   Order allow,deny
   Allow from all
</Directory>
<Directory "/home/apache/www/vhosts/mydomain.com/public_html">
   Order allow,deny
   Allow from all
</Directory>
# =================================================
# MIME encoding
# =================================================
<IfModule mod_mime.c>
   TypesConfig /usr/local/apache/conf/mime.types
</IfModule>
DefaultType text/plain
<IfModule mod_mime.c>
   AddEncoding x-compress Z
   AddEncoding x-gzip gz tgz
   AddType application/x-tar .tgz
   AddType application/x-httpd-php .html
</IfModule>
# =================================================
# Logs
# =================================================
LogLevel warn
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i \""
combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
ErrorLog /var/apache/logs/error_log
CustomLog /var/apache/logs/access_log combined
# =================================================
# Virtual hosts
# =================================================
NameVirtualHost *
<VirtualHost *>
       DocumentRoot "/home/apache/www/vhosts/mydomain.com/public_html"
       ServerName "www.mydomain.com"
       ServerAlias "mydomain.com"
       ErrorLog /var/apache/logs/vhosts/mydomain.com/error_log
CustomLog /var/apache/logs/vhosts/mydomain.com/access_log combined
       <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteRule ^/([a-z]{2})/index.html$ /index.html?topicid=$1
       </IfModule>
       ErrorDocument 400 /page_error.html
       ErrorDocument 401 /page_error.html
       ErrorDocument 403 /page_error.html
       ErrorDocument 404 /page_error.html
       ErrorDocument 500 /page_error.html
</VirtualHost>
# ================================================
# Logging GET/POST requests, defending against
# Cross-Site-Scripting (XSS) and SQL Injection attacks
# ================================================
<IfModule mod_security.c>
       AddHandler application/x-httpd-php .html

       #Turn the filtering engine On or Off
        SecAuditEngine On
       # Only log suspicious requests
        SecAuditEngine RelevantOnly
        SecAuditLog /var/apache/logs/audit_log
        SecFilterScanPOST On
        SecFilterEngine On

        SecFilterDefaultAction "deny,log,status:500"
        SecFilter "\""

       #generic bogus path sigs
        SecFilterSelective THE_REQUEST "\.\.\./"
"id:300006,rev:1,severity:2,msg:'Bogus Path denied'"
        SecFilterSelective POST_PAYLOAD "[[:space:]]+\.\.\.+\;"
"id:300007,rev:1,severity:2,msg:'Bogus Path denied'"

       #XCC:Signatures for XSS
        SecFilter "/((\%3D)|(=))[^\n]*((\%3C)|<)[^\n]+((\%3E)|>)"

       #XCC:Regex for simple CSS attack
        SecFilter "/((\%3C)|<)((\%2F)|\/)*[a-z0-9\%]+((\%3E)|>)/ix"

       #XCC:Regex for "<img src" CSS attack
        #SecFilter
"/((\%3C)|<)((\%69)|i|(\%49))((\%6D)|m|(\%4D))((\%67)|g|(\%47))[^\n]+ ((\%3E)|>)/i"

       #XCC:Paranoid regex for CSS attacks
        SecFilter "/((\%3C)|<)[^\n]+((\%3E)|>)/i"

       #SQL:Regex for detection of SQL meta-characters
        SecFilter "/(\%27)|(\')|(\-\-)|(\%23)|(#)/ix"

       #SQL:Modified regex for detection of SQL meta-characters
#SecFilter "/((\%3D)|(=))[^\n]*((\%27)|(\')|(\-\-)|(\%3B)| (;))/i"

       #SQL:Regex for typical SQL Injection attack
SecFilter "/\w*((\%27)|(\'))((\%6F)|o|(\%4F))((\%72)|r|(\ %52))/ix"

       #SQL:Regex for detecting SQL Injection with the
UNION,SELECT,UPDATE,DELETE,DROP,GRANT keyword
        SecFilter "/((\%27)|(\'))union/ix"
        SecFilter "/((\%27)|(\'))select/ix"
        SecFilter "/((\%27)|(\'))insert/ix"
        SecFilter "/((\%27)|(\'))update/ix"
        SecFilter "/((\%27)|(\'))delete/ix"
        SecFilter "/((\%27)|(\'))drop/ix"
        SecFilter "/((\%27)|(\'))grant/ix"

       #PHP defenses
        SecFilterSelective ARG_PHPSESSID "!^[0-9a-z]*$"
        SecFilterSelective ARGS_NAMES "^(globals($|\[)|php:/)"
        SecFilterSelective COOKIE_PHPSESSID "!^[0-9a-z]*$"
        SecFilterSelective COOKIE_sessionid "!^[0-9a-z\.]*$"

#Generic PHP payload command injection and upload vulnerabilities
        SecFilterSelective POST_PAYLOAD "<\?php" chain
        SecFilter
"((fputs|fread)\(.*\,.*\)\;|fsockopen\(gethostbyname|chr\(.*\)\.chr\ (.*\)\.chr\(|(fclose|fgets)\(.*\)\;|(system|exec)\(.*\)\;)"
chain
        SecFilter "\<\?php"

</IfModule>
Apache:
httpd.conf----------------------------------------------------- end--------


MySQL:
my.cnf------------------------------------------------------------ start--------

# The following options will be passed to all MySQL clients
[client]
#password = your_password
port  = 3306
socket  = /tmp/mysql.sock
#ng below 1 line
default-character-set=utf8
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
port  = 3306
socket  = /tmp/mysql.sock
skip-locking
skip-networking
skip-name-resolve
server-id=1
#2008-02-10
max_connections=499
interactive_timeout=100
wait_timeout=100
connect_timeout=10
thread_cache_size=256
connect_timeout=10
myisam_sort_buffer_size=32M
key_buffer=16M
join_buffer=3M
record_buffer=3M
sort_buffer=5M
table_cache=1024
#-
# increase until threads_created doesnt grow anymore
thread_cache=512
query_cache_type=1
query_cache_limit=2M
query_cache_size=64M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency=4
set-variable=local-infile=0
#ng below 5 lines
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_unicode_ci
#NG: new variables for fulltext search:
ft_min_word_len=2
ft_max_word_len=15

# Replication Master Server (default)
# binary logging is required for replication
log-bin=mysql-bin
# required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id = 1
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
#ng below 1 line
default-character-set=utf8
[isamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
[myisamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout

MySQL:
my.cnf-------------------------------------------------------------end


Is there something you can tune?

Regards

--
Thanks!

BR / vj


--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to