<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet href="http://www.booservers.com/styles/rss.css" type="text/css"?>
<rdf:RDF 
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
  xmlns="http://my.netscape.com/rdf/simple/0.9/"
>

 <channel>
  <title>Booservers - All about dedicated servers</title>
  <link>http://www.booservers.com</link>
  <description></description>
 </channel>
    <item>
   <title>4 Primary Areas For Tuning Your Server</title>
   <description>I just thought I would add my two cents in for everyone. I posted an old howto with some sysctl.conf, but I think that was when I was running on my previous server using and older version of redhat. So here&#039;s a fresh howto that is a little more complete. &lt;br /&gt;&lt;br /&gt;These configs are based on my server specs, which is a Dual 2.0GHz Xeon with 2GB of RAM running RedHat Enterprise. Depending on your server&#039;s RAM you might have to reduce some of the settings, which I&#039;ll try make notes with each section.&lt;br/&gt;&lt;center&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-7209259988091090&quot;;
google_ad_width = 300;
google_ad_height = 250;
google_ad_format = &quot;300x250_as&quot;;
google_ad_type = &quot;text_image&quot;;
google_ad_channel =&quot;3498328464&quot;;
google_color_border = &quot;FFFFFF&quot;;
google_color_bg = &quot;FFFFFF&quot;;
google_color_link = &quot;006633&quot;;
google_color_url = &quot;000000&quot;;
google_color_text = &quot;0033CC&quot;;
//--&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/center&gt;&lt;br&gt;&lt;strong&gt;First&lt;/strong&gt;, is the /etc/sysctl.conf file. Most people overlook tweaking these settings, always thinking it is a mysql or apache problem. You can get a tremendous boost in throughput by adjusting these settings. These are the settings I use on my server, and have come about by constantly adjusting and monitoring performance, and this is what works best &lt;i&gt;for me&lt;/i&gt;, your mileage may vary based on server specs and traffic. I suggest finding some guides and reading up about what each seting does before you make changes. (Note: most out there are pretty dated unfortunatly). Also, some people out there like to have tcp_window_scaling, sack, fack, etc, turned off, but I leave them on. I guess it is just a personal preference thing. So don&#039;t complain, but feel free to leave your comments, testing, and results. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;/etc/sysctl.conf&lt;/b&gt; &lt;br /&gt;&lt;div class=&quot;codetop&quot;&gt;CODE&lt;/div&gt;&lt;div class=&quot;codemain&quot;&gt;# Kernel sysctl configuration file for Red Hat Enterprise Linux&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Controls IP packet forwarding&lt;br /&gt;&lt;br /&gt;net.ipv4.ip_forward = 0&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Controls source route verification&lt;br /&gt;&lt;br /&gt;net.ipv4.conf.default.rp_filter = 1&lt;br /&gt;&lt;br /&gt;net.ipv4.conf.all.rp_filter = 1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Disables IP source routing&lt;br /&gt;&lt;br /&gt;net.ipv4.conf.default.accept_source_route = 0&lt;br /&gt;&lt;br /&gt;net.ipv4.conf.all.accept_source_route = 0&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Controls the System Request debugging functionality of the kernel&lt;br /&gt;&lt;br /&gt;kernel.sysrq = 0&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Controls whether core dumps will append the PID to the core filename.&lt;br /&gt;&lt;br /&gt;# Useful for debugging multi-threaded applications.&lt;br /&gt;&lt;br /&gt;kernel.core_uses_pid = 1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Increase maximum amount of memory allocated to shm&lt;br /&gt;&lt;br /&gt;# Only uncomment if needed!&lt;br /&gt;&lt;br /&gt;# kernel.shmmax = 67108864&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Disable ICMP Redirect Acceptance&lt;br /&gt;&lt;br /&gt;net.ipv4.conf.default.accept_redirects = 0&lt;br /&gt;&lt;br /&gt;net.ipv4.conf.all.accept_redirects = 0&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Enable Log Spoofed Packets, Source Routed Packets, Redirect Packets&lt;br /&gt;&lt;br /&gt;net.ipv4.conf.default.log_martians = 1&lt;br /&gt;&lt;br /&gt;net.ipv4.conf.all.log_martians = 1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Decrease the time default value for tcp_fin_timeout connection&lt;br /&gt;&lt;br /&gt;net.ipv4.tcp_fin_timeout = 25&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Decrease the time default value for tcp_keepalive_time connection&lt;br /&gt;&lt;br /&gt;net.ipv4.tcp_keepalive_time = 1200&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Turn on the tcp_window_scaling&lt;br /&gt;&lt;br /&gt;net.ipv4.tcp_window_scaling = 1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Turn on the tcp_sack&lt;br /&gt;&lt;br /&gt;net.ipv4.tcp_sack = 1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# tcp_fack should be on because of sack&lt;br /&gt;&lt;br /&gt;net.ipv4.tcp_fack = 1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Turn on the tcp_timestamps&lt;br /&gt;&lt;br /&gt;net.ipv4.tcp_timestamps = 1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Enable TCP SYN Cookie Protection&lt;br /&gt;&lt;br /&gt;net.ipv4.tcp_syncookies = 1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Enable ignoring broadcasts request&lt;br /&gt;&lt;br /&gt;net.ipv4.icmp_echo_ignore_broadcasts = 1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Enable bad error message Protection&lt;br /&gt;&lt;br /&gt;net.ipv4.icmp_ignore_bogus_error_responses = 1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Make more local ports available&lt;br /&gt;&lt;br /&gt;# net.ipv4.ip_local_port_range = 1024 65000&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Set TCP Re-Ordering value in kernel to &#039;5&#039;&lt;br /&gt;&lt;br /&gt;net.ipv4.tcp_reordering = 5&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Lower syn retry rates&lt;br /&gt;&lt;br /&gt;net.ipv4.tcp_synack_retries = 2&lt;br /&gt;&lt;br /&gt;net.ipv4.tcp_syn_retries = 3&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Set Max SYN Backlog to &#039;2048&#039;&lt;br /&gt;&lt;br /&gt;net.ipv4.tcp_max_syn_backlog = 2048&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Various Settings&lt;br /&gt;&lt;br /&gt;net.core.netdev_max_backlog = 1024&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Increase the maximum number of skb-heads to be cached&lt;br /&gt;&lt;br /&gt;net.core.hot_list_length = 256&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Increase the tcp-time-wait buckets pool size&lt;br /&gt;&lt;br /&gt;net.ipv4.tcp_max_tw_buckets = 360000&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# This will increase the amount of memory available for socket input/output queues&lt;br /&gt;&lt;br /&gt;net.core.rmem_default = 65535&lt;br /&gt;&lt;br /&gt;net.core.rmem_max = 8388608&lt;br /&gt;&lt;br /&gt;net.ipv4.tcp_rmem = 4096 87380 8388608&lt;br /&gt;&lt;br /&gt;net.core.wmem_default = 65535&lt;br /&gt;&lt;br /&gt;net.core.wmem_max = 8388608&lt;br /&gt;&lt;br /&gt;net.ipv4.tcp_wmem = 4096 65535 8388608&lt;br /&gt;&lt;br /&gt;net.ipv4.tcp_mem = 8388608 8388608 8388608&lt;br /&gt;&lt;br /&gt;net.core.optmem_max = 40960&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;After you make the changes to the file, you can make them effective immediately by typing in &lt;b&gt;/sbin/sysctl -p&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;Also, you will need to issue &lt;b&gt;/sbin/sysctl -w net.ipv4.route.flush=1&lt;/b&gt; to flush the routing table to make some of these changes happen instantly. &lt;br /&gt;&lt;br /&gt;Here&#039;s some URLs with useful info, benchmarks, etc... (I believe one was posted from someone below) &lt;br /&gt;&lt;a href=&quot;http://www.aarnet.edu.au/engineering/networkdesign/mtu/local.html&quot; target=&quot;_blank&quot;&gt;http://www.aarnet.edu.au/engineering/netwo.../mtu/local.html&lt;/a&gt; &lt;br /&gt;&lt;a href=&quot;http://sverre.home.cern.ch/sverre/TenGBE_whitepaper_04232003.pdf&quot; target=&quot;_blank&quot;&gt;http://sverre.home.cern.ch/sverre/TenGBE_w...er_04232003.pdf&lt;/a&gt; &lt;br /&gt;&lt;a href=&quot;http://www.hep.ucl.ac.uk/~ytl/tcpip/linux/txqueuelen/datatag-tcp/&quot; target=&quot;_blank&quot;&gt;http://www.hep.ucl.ac.uk/~ytl/tcpip/linux/...en/datatag-tcp/&lt;/a&gt; &lt;br /&gt;&lt;a href=&quot;http://www-didc.lbl.gov/TCP-tuning/TCP-tuning.html&quot; target=&quot;_blank&quot;&gt;http://www-didc.lbl.gov/TCP-tuning/TCP-tuning.html&lt;/a&gt; &lt;br /&gt;&lt;a href=&quot;http://ipsysctl-tutorial.frozentux.net/chunkyhtml/index.html&quot; target=&quot;_blank&quot;&gt;http://ipsysctl-tutorial.frozentux.net/chu...html/index.html&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;------------------------------------------- &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Second&lt;/b&gt; is the MySQL /etc/my.cnf settings file. A lot of people just leave this file with its default settings until they notice problems with their server performance. Please note that I&#039;m not including the &lt;i&gt;datadir&lt;/i&gt; or &lt;i&gt;socket&lt;/i&gt; settings since those can vary based on your server setup. Also I&#039;m only including the base &lt;i&gt;[mysqld]&lt;/i&gt; section and not any of the &lt;i&gt;[safe_mysqld], [mysqldump], or [myisamchk]&lt;/i&gt; sections. &lt;br /&gt;&lt;br /&gt;Also, update your MySQL to the latest version, if you are still running 3.x you should be dragged out into the street and beaten with a stick, seriously. Just download the MySQL RPMs from the MySQL website, it takes 30 seconds to upgrade. They usually release a new version every month. Be aware of the difference between 4.0.x and 4.1.x (or higher). &lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;codetop&quot;&gt;CODE&lt;/div&gt;&lt;div class=&quot;codemain&quot;&gt;[mysqld]&lt;br /&gt;&lt;br /&gt;connect_timeout=15&lt;br /&gt;&lt;br /&gt;interactive_timeout=100&lt;br /&gt;&lt;br /&gt;join_buffer_size=1M&lt;br /&gt;&lt;br /&gt;key_buffer=256M&lt;br /&gt;&lt;br /&gt;max_allowed_packet=16M&lt;br /&gt;&lt;br /&gt;max_connections=500&lt;br /&gt;&lt;br /&gt;max_connect_errors=10&lt;br /&gt;&lt;br /&gt;myisam_sort_buffer_size=64M&lt;br /&gt;&lt;br /&gt;read_buffer_size=2M&lt;br /&gt;&lt;br /&gt;read_rnd_buffer_size=2M&lt;br /&gt;&lt;br /&gt;sort_buffer_size=2M&lt;br /&gt;&lt;br /&gt;table_cache=1024&lt;br /&gt;&lt;br /&gt;thread_cache_size=100&lt;br /&gt;&lt;br /&gt;thread_concurrency=4&lt;br /&gt;&lt;br /&gt;wait_timeout=300&lt;br /&gt;&lt;br /&gt;query_cache_size=128M&lt;br /&gt;&lt;br /&gt;query_cache_limit=1M&lt;br /&gt;&lt;br /&gt;query_cache_type=1&lt;br /&gt;&lt;br /&gt;skip-innodb&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;For people with a single CPU be sure to set &lt;i&gt;thread_concurrency&lt;/i&gt; to 2 (4 is for Dual CPUs). People with 1GB of RAM, you might want to consider lowering the &lt;i&gt;key_buffer&lt;/i&gt; to 64M and the &lt;i&gt;myisam_sort_buffer_size&lt;/i&gt; to 32M. This really just depends on how much free memory your system has during peak traffic hours. If you increase these too much and your system runs out of physical RAM and starts swapping to disk, your system is going to eat it hard. &lt;br /&gt;&lt;br /&gt;For more information about Mysqld variables, please read the following articles as they explain all the settings in-depth and how to fine-tune them: &lt;a href=&quot;http://www.databasejournal.com/features/mysql/article.php/1402311&quot; target=&quot;_blank&quot;&gt;Article 1&lt;/a&gt; and &lt;a href=&quot;http://www.databasejournal.com/features/mysql/article.php/3367871&quot; target=&quot;_blank&quot;&gt;Article 2&lt;/a&gt; and &lt;a href=&quot;http://www.databasejournal.com/features/mysql/article.php/3110171&quot; target=&quot;_blank&quot;&gt;Article 3&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;------------------------------------------- &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Third&lt;/b&gt; is Apache. Some people run 1.x, and some run 2.x, me personally I run 2.x because of the better performance. But some people are tied to the older version because of other software packages. &lt;br /&gt;&lt;br /&gt;The first thing to do if you are running 1.x is to get mod_gzip and use it. If you are running 2.x then use mod_deflate (it is included). This compresses all your HTML/TXT/XML data before it is sent, saving you bandwidth, and faster load times for your users. &lt;br /&gt;&lt;br /&gt;If you are serving up pages + images then you *probably* want to set your keepalive to on, and have your settings something like this: &lt;br /&gt;&lt;br /&gt;Timeout 60 &lt;br /&gt;KeepAlive On &lt;br /&gt;MaxKeepAliveRequests 1000 &lt;br /&gt;KeepAliveTimeout 10 &lt;br /&gt;&lt;br /&gt;By setting the KeepAliveTimeout low you won&#039;t have all those lingering connections. You can probably set it even lower if you like. &lt;br /&gt;&lt;br /&gt;If you are only serving up html (or php or whatever) pages, and using another web server for your images (like tux). Then you probably want to set your KeepAlive to Off since the user will only be requesting 1 file at a time. &lt;br /&gt;&lt;br /&gt;Most people have the bad habit of instantly increasing their &lt;i&gt;MaxClients&lt;/i&gt; to 256. This can be &lt;b&gt;BAD&lt;/b&gt; if you don&#039;t take into account memory availability. You need to determine how much memory you have free, how much each apache process consumes, then do the math to figure out what you can safely set the &lt;i&gt;MaxClients&lt;/i&gt; to. If you exceed your physical memory then once again the server will swap to the HD and the server will take a dive in performance. &lt;br /&gt;&lt;br /&gt;Comment out / remove and Dynamic Shared Object (DSO) modules that you do not use! There are a ton loaded by default, most which you will never use. I commented out 20+ personally! Read the apache documentation on what each one does, the apache docs are very detailed. &lt;br /&gt;&lt;br /&gt;If possible, set the &lt;i&gt;AllowOverride&lt;/i&gt; option to &lt;i&gt;None&lt;/i&gt;. This prevents apache from checking for the .htaccess file in every directory whenever a request is made. However if you use .htaccess files then you have to leave the setting there, but if you can limit it down to certain directories, then do it. &lt;br /&gt;&lt;br /&gt;Mask your Apache version by using the following settings: &lt;br /&gt;&lt;i&gt;ServerSignature Off &lt;br /&gt;ServerTokens ProductOnly&lt;/i&gt; &lt;br /&gt;&lt;br /&gt;That&#039;s just good practice, you can also hide your PHP info by setting &lt;i&gt;expose_php = Off&lt;/i&gt; in your /etc/php.ini file.&lt;/p&gt;&lt;div class=&quot;postcolor&quot;&gt;&lt;b&gt;Fourth&lt;/b&gt; is PHP. One thing to do is use a program like eAccelerator which caches pre-compiled versions of your php files to help reduce overhead and increase performance. It is a free download from sourceforge, but it will require a little know-ho on your part to install. There are plenty of other guides on how to install this. It is very simple and quick. &lt;br /&gt;&lt;br /&gt;A lot of people use the redhat PHP RPMs, which can be quite bloated. My libphp4.so module is only 2.07MB in size. (I don&#039;t remember what the default redhat one is, but I&#039;m willing to bet it is larger). Also Redhat never seems to keep up to date with the latest PHP (or MySQL) version, I always recommend updating as soon as a new release is published. &lt;br /&gt;&lt;br /&gt;Here&#039;s my configure line. There&#039;s a lot of settings you may not use, and they could be ones that you use that I don&#039;t. You can view your current configure line via the phpinfo() function. These include all the big things such as GD, XML, SHM, etc.. Some people maybe want to enable a certain memory-limit to prevent PHP from eating too much memory per process. &lt;br /&gt;&lt;br /&gt;Also, I don&#039;t use mm simply because I found it would crash apache on an almost daily basis. I had problems with session storage, and also it would not restart after rotating logs... &lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;codetop&quot;&gt;CODE&lt;/div&gt;&lt;div class=&quot;codemain&quot;&gt;./configure &lt;br /&gt;&lt;br /&gt;--prefix=/usr &lt;br /&gt;&lt;br /&gt;--exec-prefix=/usr &lt;br /&gt;&lt;br /&gt;--bindir=/usr/bin &lt;br /&gt;&lt;br /&gt;--sbindir=/usr/sbin &lt;br /&gt;&lt;br /&gt;--sysconfdir=/etc &lt;br /&gt;&lt;br /&gt;--datadir=/usr/share &lt;br /&gt;&lt;br /&gt;--includedir=/usr/include &lt;br /&gt;&lt;br /&gt;--libdir=/usr/lib &lt;br /&gt;&lt;br /&gt;--libexecdir=/usr/libexec &lt;br /&gt;&lt;br /&gt;--localstatedir=/var &lt;br /&gt;&lt;br /&gt;--sharedstatedir=/usr/com &lt;br /&gt;&lt;br /&gt;--mandir=/usr/share/man &lt;br /&gt;&lt;br /&gt;--infodir=/usr/share/info &lt;br /&gt;&lt;br /&gt;--disable-cgi &lt;br /&gt;&lt;br /&gt;--disable-debug &lt;br /&gt;&lt;br /&gt;--disable-rpath &lt;br /&gt;&lt;br /&gt;--disable-memory-limit &lt;br /&gt;&lt;br /&gt;--disable-ipv6 &lt;br /&gt;&lt;br /&gt;--disable-safe-mode &lt;br /&gt;&lt;br /&gt;--enable-pic &lt;br /&gt;&lt;br /&gt;--enable-discard-path &lt;br /&gt;&lt;br /&gt;--enable-inline-optimization &lt;br /&gt;&lt;br /&gt;--enable-gd-native-ttf &lt;br /&gt;&lt;br /&gt;--enable-gd-imgstrttf &lt;br /&gt;&lt;br /&gt;--enable-magic-quotes &lt;br /&gt;&lt;br /&gt;--enable-sysvsem &lt;br /&gt;&lt;br /&gt;--enable-sysvshm &lt;br /&gt;&lt;br /&gt;--enable-sysvmsg &lt;br /&gt;&lt;br /&gt;--enable-shmop &lt;br /&gt;&lt;br /&gt;--enable-track-vars &lt;br /&gt;&lt;br /&gt;--enable-exif &lt;br /&gt;&lt;br /&gt;--enable-wddx &lt;br /&gt;&lt;br /&gt;--enable-bcmath &lt;br /&gt;&lt;br /&gt;--enable-calendar &lt;br /&gt;&lt;br /&gt;--enable-ftp &lt;br /&gt;&lt;br /&gt;--enable-inline-optimization &lt;br /&gt;&lt;br /&gt;--with-apxs2=/usr/sbin/apxs &lt;br /&gt;&lt;br /&gt;--with-mysql=/usr &lt;br /&gt;&lt;br /&gt;--with-pear &lt;br /&gt;&lt;br /&gt;--with-config-file-path=/etc &lt;br /&gt;&lt;br /&gt;--with-exec-dir=/usr/bin &lt;br /&gt;&lt;br /&gt;--with-gd &lt;br /&gt;&lt;br /&gt;--with-png-dir=/usr &lt;br /&gt;&lt;br /&gt;--with-jpeg-dir=/usr &lt;br /&gt;&lt;br /&gt;--with-freetype-dir=/usr &lt;br /&gt;&lt;br /&gt;--with-gettext &lt;br /&gt;&lt;br /&gt;--with-openssl &lt;br /&gt;&lt;br /&gt;--with-regex &lt;br /&gt;&lt;br /&gt;--with-ttf=/usr &lt;br /&gt;&lt;br /&gt;--with-expat-dir=/usr &lt;br /&gt;&lt;br /&gt;--with-dom=/usr &lt;br /&gt;&lt;br /&gt;--with-dom-xslt=/usr &lt;br /&gt;&lt;br /&gt;--with-dom-exslt=/usr &lt;br /&gt;&lt;br /&gt;--with-iconv &lt;br /&gt;&lt;br /&gt;--with-db4=/usr &lt;br /&gt;&lt;br /&gt;--with-gdbm=/usr &lt;br /&gt;&lt;br /&gt;--with-zlib=/usr &lt;br /&gt;&lt;br /&gt;--with-zlib-dir=/usr &lt;br /&gt;&lt;br /&gt;--with-xmlrpc &lt;br /&gt;&lt;br /&gt;--with-xml &lt;br /&gt;&lt;br /&gt;--with-bz2=/usr &lt;br /&gt;&lt;br /&gt;--with-cdb &lt;br /&gt;&lt;br /&gt;--enable-mbstring&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;postcolor&quot;&gt;&lt;br /&gt;&lt;br /&gt;------------------------------------------- &lt;br /&gt;&lt;br /&gt;When compiling programs (like PHP, eaccelerator, etc..), you can fine-tune some of your compile-options to enhance performance for your CPU&#039;s capabilities (and remove excess stuff like debug info) &lt;br /&gt;&lt;br /&gt;As mentioned before, I run dual xeon&#039;s (P4&#039;s for all practical purposes). If you are using a different CPU then you might have to go look up the proper flags at the GCC website. &lt;br /&gt;&lt;br /&gt;Before compiling a program, you can set the following flags: &lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;codetop&quot;&gt;CODE&lt;/div&gt;&lt;div class=&quot;codemain&quot;&gt;&lt;br /&gt;&lt;br /&gt;export CFLAGS=&amp;quot;-O3 -pipe -mcpu=pentium4 -march=pentium4 -fomit-frame-pointer&amp;quot;&lt;br /&gt;&lt;br /&gt;export CXXFLAGS=&amp;quot;${CFLAGS}&amp;quot;&lt;br /&gt;&lt;br /&gt;export CHOST=&amp;quot;i686-pc-linux-gnu&amp;quot;&lt;br /&gt;&lt;br /&gt;export MAKEOPTS=&amp;quot;-j2&amp;quot;&lt;br /&gt;&lt;br /&gt;export LDFLAGS=&amp;quot;-Wl,-O1&amp;quot;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;postcolor&quot;&gt;&lt;br /&gt;&lt;br /&gt;These flags are considered &amp;quot;stable&amp;quot; and should enhance performance a little for software that you compile with these options. There are tons of other flags, however some reduce precision for certain math (which can cause problems in certain software) and others may reduce stabililty. &lt;br /&gt;&lt;br /&gt;------------------------------------------- &lt;br /&gt;&lt;br /&gt;I guess that&#039;s about it... Use the information at your own risk. Hopefully it will help some people out, or at least point them in the right direction. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Please don&#039;t post questions that are like: &amp;quot;here&#039;s my config, can you optimize it for X server?&amp;quot;. I don&#039;t check these forums that often, so I probably won&#039;t reply to your question.&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;Server tuning is more of an art than just entering X setting to Y number. Before making changes, keep your old configs. Also get a monitoring program so you can graph out your server load and other vitals. That way you can see before &amp;amp; after results. Also, if you run a forum, let your users know that you are going to make changes, and get their feedback on response time and such from them. &lt;br /&gt;&lt;br /&gt;Enjoy. &lt;/div&gt;&lt;div class=&quot;postcolor&quot;&gt;&lt;/div&gt;&lt;div class=&quot;postcolor&quot;&gt;Source: &lt;a href=&quot;http://forums.theplanet.com/index.php?showtopic=48880&quot;&gt;http://forums.theplanet.com/index.php?showtopic=48880&lt;/a&gt;&lt;/div&gt;</description>
   <link>http://www.booservers.com/archivo/52_4_primary_areas_for_tuning_your_server.html</link>
      <pubDate>Thu, 04 Sep 2008 14:57:07 +0000</pubDate>   
  </item>
    <item>
   <title>Redhat ROD/Remote Console How To</title>
   <description>Redhat with Grub: &lt;br /&gt;&lt;br /&gt;1. Edit grub.conf with your favorite editor so you can manipulate grub and the boot process via remote console: &lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;codetop&quot;&gt;CODE&lt;/div&gt;&lt;div class=&quot;codemain&quot;&gt;serial --unit=0 --speed=9600&lt;br /&gt;&lt;br /&gt;terminal --timeout=10 serial console &lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br/&gt;&lt;center&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-7209259988091090&quot;;
google_ad_width = 300;
google_ad_height = 250;
google_ad_format = &quot;300x250_as&quot;;
google_ad_type = &quot;text_image&quot;;
google_ad_channel =&quot;3498328464&quot;;
google_color_border = &quot;FFFFFF&quot;;
google_color_bg = &quot;FFFFFF&quot;;
google_color_link = &quot;006633&quot;;
google_color_url = &quot;000000&quot;;
google_color_text = &quot;0033CC&quot;;
//--&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/center&gt;&lt;br&gt;Example: &lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;codetop&quot;&gt;CODE&lt;/div&gt;&lt;div class=&quot;codemain&quot;&gt;# grub.conf generated by anaconda&lt;br /&gt;&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;# Note that you do not have to rerun grub after making changes to this file&lt;br /&gt;&lt;br /&gt;# NOTICE:  You have a /boot partition.  This means that&lt;br /&gt;&lt;br /&gt;#          all kernel and initrd paths are relative to /boot/, eg.&lt;br /&gt;&lt;br /&gt;#          root (hd0,0)&lt;br /&gt;&lt;br /&gt;#          kernel /vmlinuz-version ro root=/dev/hda3&lt;br /&gt;&lt;br /&gt;#          initrd /initrd-version.img&lt;br /&gt;&lt;br /&gt;#boot=/dev/hda&lt;br /&gt;&lt;br /&gt;serial --unit=0 --speed=9600&lt;br /&gt;&lt;br /&gt;terminal --timeout=10 serial console &lt;br /&gt;&lt;br /&gt;default=0&lt;br /&gt;&lt;br /&gt;timeout=3&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;You will also need to add options to the kernel line if you want to see the kernel booting and if you need to do file system maintenance via the remote console (IE it is stuck at fsck errors): &lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;codetop&quot;&gt;CODE&lt;/div&gt;&lt;div class=&quot;codemain&quot;&gt;console=tty0 console=ttyS0,9600 &lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Example: &lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;codetop&quot;&gt;CODE&lt;/div&gt;&lt;div class=&quot;codemain&quot;&gt;title Red Hat Enterprise Linux ES (2.4.21-27.EL)&lt;br /&gt;&lt;br /&gt;       root (hd0,0)&lt;br /&gt;&lt;br /&gt;       kernel (hd0,0)/vmlinuz-2.4.21-27.EL root=/dev/hda3 console=tty0 console=ttyS0,9600 &lt;br /&gt;&lt;br /&gt;       initrd (hd0,0)/initrd-2.4.21-27.EL.img&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;NOTE&lt;/u&gt;&lt;/i&gt; Your kernel line may differ such as Kernel version and root= device. DO NOT CHANGE THESE, simply append the line with console options.&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;2. If you want shell console access after the boot process you will need to do the following: &lt;br /&gt;&lt;br /&gt;Add the following to the bottom of /etc/inittab: &lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;codetop&quot;&gt;CODE&lt;/div&gt;&lt;div class=&quot;codemain&quot;&gt;co:12345:respawn:/sbin/agetty -L 9600 ttyS0 vt100&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Add the following to the bottom of /etc/securetty: &lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;codetop&quot;&gt;CODE&lt;/div&gt;&lt;div class=&quot;codemain&quot;&gt;ttyS0&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Restart getty to get immediate access to Remote Console: &lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;codetop&quot;&gt;CODE&lt;/div&gt;&lt;div class=&quot;codemain&quot;&gt;telinit q&lt;/div&gt;&lt;div class=&quot;codemain&quot;&gt;&lt;/div&gt;&lt;div class=&quot;codemain&quot;&gt;Source: &lt;a href=&quot;http://forums.theplanet.com/index.php?showtopic=77085&quot;&gt;http://forums.theplanet.com/index.php?showtopic=77085&lt;/a&gt;&lt;/div&gt;</description>
   <link>http://www.booservers.com/archivo/51_redhat_rodremote_console_how_to.html</link>
      <pubDate>Thu, 04 Sep 2008 14:56:25 +0000</pubDate>   
  </item>
    <item>
   <title>Set up Tripwire on RedHat</title>
   <description>&lt;p&gt;Install tripwire&lt;/p&gt;&lt;p&gt;It&#039;s installed by default, but if it isn&#039;t, grab your RedHat disks, and install it:&lt;/p&gt;&lt;p&gt;---------------------&lt;/p&gt;&lt;p&gt;# rpm -ihv /mnt/cdrom/RedHat/RPMS/tripwire-2.3.1-5.i386.rpm&lt;br /&gt;# /etc/tripwire/twinstall.sh&lt;/p&gt;&lt;p&gt;---------------------&lt;/p&gt;&lt;p&gt;Clean the policy file&lt;br /&gt;Go over to /etc/tripwire, and clean out the policy file with this handy script:&lt;/p&gt;&lt;p&gt;---------------------&lt;/p&gt;&lt;p&gt;# cat &amp;gt; ./cleantw.pl&lt;br /&gt;#!/usr/bin/perl&lt;/p&gt;&lt;p&gt;while (&amp;lt;&amp;gt;){&lt;br /&gt;#look at the line, and check for a line that can be&lt;br /&gt;    # Construed as a file name&lt;br /&gt;  CASE:{&lt;br /&gt;      ( m|(^s*)(/[/w._-]+)(s+-&amp;gt;.*)| ) and do {&lt;br /&gt;          print $1;&lt;br /&gt;          print &amp;quot;#&amp;quot; unless (-e $2);&lt;br /&gt;          print &amp;quot;$2$3n&amp;quot;;&lt;br /&gt;          last;&lt;br /&gt;      };&lt;/p&gt;&lt;p&gt;      print $_;&lt;br /&gt;  }&lt;br /&gt;};&lt;br /&gt;^D&lt;br /&gt;#&lt;/p&gt;&lt;p&gt;---------------------&lt;/p&gt;&lt;p /&gt;&lt;br/&gt;&lt;center&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-7209259988091090&quot;;
google_ad_width = 300;
google_ad_height = 250;
google_ad_format = &quot;300x250_as&quot;;
google_ad_type = &quot;text_image&quot;;
google_ad_channel =&quot;3498328464&quot;;
google_color_border = &quot;FFFFFF&quot;;
google_color_bg = &quot;FFFFFF&quot;;
google_color_link = &quot;006633&quot;;
google_color_url = &quot;000000&quot;;
google_color_text = &quot;0033CC&quot;;
//--&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/center&gt;&lt;br&gt;&lt;p&gt;Now clean out the crap in the sample policy file they have.&lt;/p&gt;&lt;p&gt;---------------------&lt;/p&gt;&lt;p&gt; # perl cleantw.pl &amp;lt; twpol.txt &amp;gt; cleanedpol.txt&lt;/p&gt;&lt;p&gt;---------------------&lt;/p&gt;&lt;p&gt;Edit the file. You&#039;ll need to change the hostname that is defined somewhere around the 65th line to match what comes out of the &#039;hostname&#039; command. You&#039;ll also need to change some of the parameters for things that are monitored (Log rotating changes inodes for a given filename).&lt;/p&gt;&lt;p&gt;---------------------&lt;/p&gt;&lt;p&gt; /var/run -&amp;gt; $(SEC_INVARIANT)&lt;br /&gt; /var/log -&amp;gt; $(SEC_INVARIANT)&lt;br /&gt; /var/tty[1-8] -&amp;gt; $(SEC_INVARIANT)&lt;/p&gt;&lt;p&gt;---------------------&lt;/p&gt;&lt;p&gt;Finishing up&lt;/p&gt;&lt;p&gt;---------------------&lt;/p&gt;&lt;p&gt;# /usr/sbin/twadmin -m P cleanedpol.txt&lt;br /&gt;# /usr/sbin/tripwire --init&lt;/p&gt;&lt;p&gt;---------------------&lt;/p&gt;&lt;p&gt;Credits: &lt;a href=&quot;http://www.afonsoconsulting.com/&quot;&gt;http://www.afonsoconsulting.com/&lt;/a&gt;&lt;/p&gt;</description>
   <link>http://www.booservers.com/archivo/39_set_up_tripwire_on_redhat.html</link>
      <pubDate>Thu, 15 Dec 2005 21:45:38 +0000</pubDate>   
  </item>
    <item>
   <title>Easy CURL 7.10.4 w/SSL </title>
   <description>&lt;p&gt;We&#039;ve put together these RPM&#039;s for libcurl 7.10.2 with SSL support. They upgrade over the stock RH ones. Installation is via rpm -Uvh&lt;/p&gt;&lt;p&gt;Applicability (RH 7.2 / 7.3 required) :&lt;/p&gt;&lt;p&gt;Webppliance 3.1&lt;br /&gt;Webppliance Pro 3.5&lt;br /&gt;cPanel 6&lt;br /&gt;Plesk 5.0 &lt;/p&gt;&lt;p&gt;These are also Modernbill compatible on all above panel types.&lt;/p&gt;&lt;br/&gt;&lt;center&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-7209259988091090&quot;;
google_ad_width = 300;
google_ad_height = 250;
google_ad_format = &quot;300x250_as&quot;;
google_ad_type = &quot;text_image&quot;;
google_ad_channel =&quot;3498328464&quot;;
google_color_border = &quot;FFFFFF&quot;;
google_color_bg = &quot;FFFFFF&quot;;
google_color_link = &quot;006633&quot;;
google_color_url = &quot;000000&quot;;
google_color_text = &quot;0033CC&quot;;
//--&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/center&gt;&lt;br&gt;&lt;p&gt;Downloadables:&lt;/p&gt;&lt;p&gt;curl-7.10.4-1.i386.rpm&lt;br /&gt;curl-devel-7.10.4-1.i386.rpm&lt;/p&gt;&lt;p&gt;MD5 Checksums&lt;/p&gt;&lt;p&gt;37a04f7db8c34fddbb309d067d16a453 curl-7.10.4-1.i386.rpm&lt;br /&gt;e09253b7c227573f4e5b10d3987f433b curl-devel-7.10.4-1.i386.rpm&lt;/p&gt;&lt;p&gt;Credits: &lt;a href=&quot;http://www.cheetaweb.com/&quot;&gt;http://www.cheetaweb.com/&lt;/a&gt;&lt;/p&gt;</description>
   <link>http://www.booservers.com/archivo/35_easy_curl_7104_wssl_.html</link>
      <pubDate>Thu, 15 Dec 2005 21:35:04 +0000</pubDate>   
  </item>
    <item>
   <title>Check server hardware</title>
   <description>There are a lot of things that may cause a server to crash, this guide is going to primarily look at the hardware side of crashing. There are many things that might be causing the server to crash from a software standpoint such a process that runs out of control or uses too many resources. There are a fwe things that might be going wrong with a server. Normally the component that goes wrong is the hard drive, simply because it is use so much and is a moving part. The RAM on a server will occasionally go but this is more common when the server is moved around or the RAM moved because it has a chance of being statically shocked. On the less common side of things you could have the CPU, powersupply, ethernet card, or motherboard going out.&lt;br/&gt;&lt;center&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-7209259988091090&quot;;
google_ad_width = 300;
google_ad_height = 250;
google_ad_format = &quot;300x250_as&quot;;
google_ad_type = &quot;text_image&quot;;
google_ad_channel =&quot;3498328464&quot;;
google_color_border = &quot;FFFFFF&quot;;
google_color_bg = &quot;FFFFFF&quot;;
google_color_link = &quot;006633&quot;;
google_color_url = &quot;000000&quot;;
google_color_text = &quot;0033CC&quot;;
//--&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/center&gt;&lt;br&gt;&lt;p&gt;A few important things first:&lt;/p&gt;&lt;p&gt;Does the server crash on a regular basis at the same time? If so look at the cronjobs on the server. If you are running RHEL and cPanel you should disable the auditd because it may be causing the crashes. &lt;/p&gt;&lt;p&gt;Check your /var/log/messages file for the time before the crash and when the server boots up because you will sometimes be able to see an error. If something like the ethernet card goes down you should also see it because the log files will still be writing, you just will not be able to access the server physically. &lt;/p&gt;&lt;p&gt;Make sure your kernel and other software is at the latest version. There have been a few kernel versions with bad drivers that can cause stability problems.&lt;/p&gt;&lt;p /&gt;&lt;p&gt;The easiest thing to look at it smartctl which is a command line tool that reads the status information from the drive directly. Almost modern drive will have the SMART capability which can be probed. &lt;/p&gt;&lt;p&gt;# smartctl -H /dev/sda&lt;/p&gt;&lt;p&gt;If that shows nothing bad take a look at &lt;/p&gt;&lt;p&gt;# smartctl -a /dev/sda&lt;/p&gt;&lt;p&gt;which will show any errors that the disk has encountered. A few errors are ok and normal but if you have more then just a few then it is definatly something to check out. Now since smartctl is a computer program there is a chance that the diagnostics are not correct. Because of this the next best thing to do is to run a disk check. Badblocks is a common tool used to check the disk for errors. To run it go ahead and run badblocks:&lt;/p&gt;&lt;p&gt;#badblocks -v -v /dev/sda&lt;/p&gt;&lt;p&gt;This disk check is going to take a few minutes and will also be constantly using your drive during this time. If your server is very busy you may have trouble with other services running in the background that need to access the disks. If you still think that the disk is bad i would suggest running badblocks 3-5 times. It is possible that the disk drive is just starting to go bad and it might not detect any problems on the first run. If smartctl and badblocks both show nothing chances are the disk driver is just fine.&lt;/p&gt;&lt;p /&gt;&lt;p&gt;The next thing to check out on the server is the RAM. To do this we will use memtester which is a very simple program that simply uses the RAM continously and runs it though a series of tests in order to detect any problems with it. First download and install memtester:&lt;/p&gt;&lt;p&gt;cd /usr/local/src &lt;br /&gt;wget &lt;a href=&quot;http://pyropus.ca/software/memteste...er-4.0.5.tar.gz&quot;&gt;http://pyropus.ca/software/memteste...er-4.0.5.tar.gz&lt;/a&gt;&lt;br /&gt;tar -zxf memtester-4.0.5.tar.gz&lt;br /&gt;cd memtester-4.0.5&lt;br /&gt;make&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Now that it has been compiled we are going to have to run it. NOTE when you run memtester it is going to use all of the RAM and your server load will probably jump pretty high. First make sure of how much RAM you have in the system via&lt;/p&gt;&lt;p&gt;free -m&lt;/p&gt;&lt;p&gt;If for some reason this amount is not what you expect the RAM may in fact be bad. It would be in your best interest to have it checked out to make sure why the correct amount is not present, it might simply be because of an error at the datacenter. Below is what you would run if you have 1024 or 1Gb of ram and have it run 5 seperate times to hopefully catch and problems. &lt;/p&gt;&lt;p&gt;./memtester 1024 5&lt;/p&gt;&lt;p&gt;Since the server is using some of the RAM you are going to get an error like the below:&lt;br /&gt;got 460MB (483188736 bytes), trying mlock ...too many pages, reducing...&lt;/p&gt;&lt;p&gt;Though it is best to close as much as possible before the test it is usually not required. Chances are if the server is using the RAM then it is probably good, of course if nothing else can be found it might be worth closing everything and going back and running memtester again. If all 5 tests come back with no problems chances are that the RAM is ok.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Ok that covers most of the stuff that normally goes wrong. The next thing we can try is simply to try to overload the server and see what happens. The program that we will use is simply called stress. It attempt to overload the cpu and hard drive all at once. First go ahead and download and compile the program to run the tests:&lt;/p&gt;&lt;p&gt;cd /usr/local/src&lt;br /&gt;wget &lt;a href=&quot;http://weather.ou.edu/~apw/projects...s-0.18.4.tar.gz&quot;&gt;http://weather.ou.edu/~apw/projects...s-0.18.4.tar.gz&lt;/a&gt;&lt;br /&gt;tar -zxf stress-0.18.4.tar.gz&lt;br /&gt;cd stress-0.18.4&lt;br /&gt;./configure &lt;br /&gt;make; make install&lt;/p&gt;&lt;p&gt;Now we are going to actually run it. Try using the following command to see what happens. This is more or less going to be a last ditch effort to try and get the server to crash by simulating it being very busy. Since this test is relatively short you may try running it a few times to see if you can get it to crash. If the server does crash it does not necessarily mean that there is a hardware problem but it says something is wrong. It is probably best to switch out the hardware if possible if it crashes running the test assuming as I put above you are running the latest drivers and kernels. Here is the command:&lt;/p&gt;&lt;p&gt;stress --cpu 8 --io 4 --vm 2 --vm-bytes 256M --timeout 60s&lt;/p&gt;&lt;p&gt;Credits: &lt;a href=&quot;http://www.eth0.us/&quot; target=&quot;_blank&quot;&gt;John W&lt;/a&gt;&lt;/p&gt;</description>
   <link>http://www.booservers.com/archivo/18_check_server_hardware.html</link>
      <pubDate>Thu, 15 Dec 2005 20:41:09 +0000</pubDate>   
  </item>
    <item>
   <title>setup remote serial console to display grub menu and boot process</title>
   <description>&lt;p&gt;this HOWTO will show you how to setup your redhat linux server (and probably a few others) to do the following:&lt;/p&gt;&lt;p&gt;* send the grub menu to the remote serial console (so you can select the kernel to boot from)&lt;/p&gt;&lt;p&gt;* send boot process info to the remote serial console (like what you see on your monitor when you boot up at home... you use linux at home, right?)&lt;/p&gt;&lt;p&gt;why does this matter? for me, this all equates to less stress during kernel upgrades (being able to see any problems, choose different kernels, change kernel boot parameters from the grub menu), and less stress when things go awry somewhere on a box and i have to use the master reboot switch and sit around twiddling my thumbs wondering if the system really is rebooting.&lt;/p&gt;&lt;p&gt;WARNING: if you aren&#039;t 100% sure of what you&#039;re doing, DO NOT do any of the following on a live/production server. in other words, if you are new to this stuff, only try this on your brand new box you just ordered just in case you mess it up so bad you have to get it re-imaged.&lt;/p&gt;&lt;p&gt;if you aren&#039;t sure what the remote console is or how to use it, please see this HOWTO: &lt;a href=&quot;http://forum.ev1servers.net/showthread.php?t=52961&quot;&gt;http://forum.ev1servers.net/showthread.php?t=52961&lt;/a&gt;&lt;/p&gt;&lt;p&gt;a thread discussing some uses for the remote console (and the people there probably could have made use of this tutorial) can be found here: &lt;a href=&quot;http://forum.ev1servers.net/showthread.php?t=51199&quot;&gt;http://forum.ev1servers.net/showthread.php?t=51199&lt;/a&gt;&lt;/p&gt;&lt;p&gt;using this tutorial requires grub to be installed as your server&#039;s bootloader (some basic instructions below). it&#039;s probably very possible to get the boot process info sent to the serial console even if you&#039;re using lilo, but i don&#039;t know how to do it with lilo and have no desire to google that info as i don&#039;t like or use lilo (maybe someone else will post info on how to do this with lilo).&lt;/p&gt;&lt;p&gt;this tutorial also makes a few extra assumptions, like that the serial port to use is ttyS0, but i doubt that won&#039;t be the case for anyone.&lt;/p&gt;&lt;p&gt;enjoy and let me know if you have any comments/additions/complaints.&lt;/p&gt;&lt;br/&gt;&lt;center&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-7209259988091090&quot;;
google_ad_width = 300;
google_ad_height = 250;
google_ad_format = &quot;300x250_as&quot;;
google_ad_type = &quot;text_image&quot;;
google_ad_channel =&quot;3498328464&quot;;
google_color_border = &quot;FFFFFF&quot;;
google_color_bg = &quot;FFFFFF&quot;;
google_color_link = &quot;006633&quot;;
google_color_url = &quot;000000&quot;;
google_color_text = &quot;0033CC&quot;;
//--&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/center&gt;&lt;br&gt;&lt;p&gt;on to the tutorial:&lt;/p&gt;&lt;p&gt;MAKE SURE GRUB IS YOUR BOOTLOADER&lt;/p&gt;&lt;p&gt;please note that what i have here does not replace outside knowledge of grub/bootloaders. again, if you aren&#039;t sure what you are doing, don&#039;t try any of this on a production server. i am far from a guru. don&#039;t put to much trust in my geek advice (my political views, however, should be taken very seriously =).&lt;/p&gt;&lt;p&gt;if you aren&#039;t sure if grub is your bootloader (default ev1 images at the time of writing have both grub and lilo installed [that is, the programs are present] but lilo is the bootloader installed on the MBR and so is the one in action). if you aren&#039;t sure which is on the MBR and you have grub installed, you can use this command (the # denotes the shell. don&#039;t type the #):&lt;/p&gt;&lt;p&gt;---------------------&lt;/p&gt;&lt;div dir=&quot;ltr&quot; style=&quot;TEXT-ALIGN: left&quot;&gt;# grubby --bootloader-probe&lt;/div&gt;&lt;p&gt;---------------------&lt;/p&gt;&lt;p&gt;that will output either &amp;quot;lilo&amp;quot; or &amp;quot;grub&amp;quot;, telling you which is on the MBR.&lt;/p&gt;&lt;p&gt;so, this isn&#039;t a tutorial for installing grub, but i have found with fresh ev1 RHEL servers you can just run:&lt;/p&gt;&lt;p&gt;---------------------&lt;/p&gt;&lt;p&gt;# grub-install /dev/device_name_of_first_disk&lt;/p&gt;&lt;p&gt;---------------------&lt;/p&gt;&lt;p&gt;where device_name_of_first_disk is likely either hda or sda, depending on the type of drives you have. this will (hopefully) install grub on the MBR (and so lilo won&#039;t be there anymore). if you have just installed grub on the MBR and haven&#039;t rebooted yet, you should do that now just so you know that is working before you proceed with other changes (that is, so if there are problems you know at what point things got messed up).&lt;/p&gt;&lt;p&gt;SETUP GRUB AND THE BOOT PROCESS TO GO TO THE SERIAL CONSOLE&lt;/p&gt;&lt;p&gt;now, assuming you have grub installed, it&#039;s time to proceed with setting up the grub menu and the boot process to be sent to the serial console (i believe it will also still allow someone at the terminal to view the grub menu).&lt;/p&gt;&lt;p&gt;1) edit /etc/sysconfig/kudzu and make sure the value for SAFE is yes (change it if needed):&lt;/p&gt;&lt;p&gt;---------------------&lt;/p&gt;&lt;p&gt;SAFE=yes&lt;/p&gt;&lt;p&gt;---------------------&lt;/p&gt;&lt;p&gt;if you do not do this then the serial connection will be reset by kudzu during the boot process.&lt;/p&gt;&lt;p&gt;2) backup /boot/grub/grub.conf&lt;/p&gt;&lt;p&gt;3) edit /boot/grub/grub.conf and add the following two lines to the general config (not to any specific kernel):&lt;/p&gt;&lt;p&gt;---------------------&lt;/p&gt;&lt;p&gt;serial --unit=0 --speed=9600 --word=8 --parity=no --stop=1&lt;br /&gt;terminal --timeout=5 console serial&lt;/p&gt;&lt;p&gt;---------------------&lt;/p&gt;&lt;p&gt;now append this to any kernel lines who you want to see the output of in the console when you boot with those kernels:&lt;/p&gt;&lt;p&gt;---------------------&lt;/p&gt;&lt;p&gt;console=ttyS0,9600n8 console=tty0&lt;/p&gt;&lt;p&gt;---------------------&lt;/p&gt;&lt;p&gt;your resulting grub.conf might look something like this:&lt;/p&gt;&lt;p&gt;---------------------&lt;/p&gt;&lt;p&gt;# grub.conf generated by anaconda&lt;br /&gt;#&lt;br /&gt;# Note that you do not have to rerun grub after making changes to this file&lt;br /&gt;# NOTICE:  You have a /boot partition.  This means that&lt;br /&gt;#          all kernel and initrd paths are relative to /boot/, eg.&lt;br /&gt;#          root (hd0,0)&lt;br /&gt;#          kernel /vmlinuz-version ro root=/dev/hda3&lt;br /&gt;#          initrd /initrd-version.img&lt;br /&gt;#boot=/dev/hda&lt;br /&gt;default=0&lt;br /&gt;timeout=10&lt;br /&gt;fallback=2&lt;br /&gt;splashimage=(hd0,0)/grub/splash.xpm.gz&lt;br /&gt;serial --unit=0 --speed=9600 --word=8 --parity=no --stop=1&lt;br /&gt;terminal --timeout=5 console serial&lt;/p&gt;&lt;p&gt;title Red Hat Enterprise Linux ES (2.4.21-32.0.1.ELsmp)&lt;br /&gt;        root (hd0,0)&lt;br /&gt;        kernel /vmlinuz-2.4.21-32.0.1.ELsmp ro root=LABEL=/ console=ttyS0,9600n8 console=tty0&lt;br /&gt;        initrd /initrd-2.4.21-32.0.1.ELsmp.img&lt;br /&gt;title Red Hat Enterprise Linux ES (2.4.21-32.0.1.EL)&lt;br /&gt;        root (hd0,0)&lt;br /&gt;        kernel /vmlinuz-2.4.21-32.0.1.EL ro root=LABEL=/&lt;br /&gt;        initrd /initrd-2.4.21-32.0.1.EL.img&lt;br /&gt;title Red Hat Enterprise Linux ES (2.4.21-27.ELsmp)&lt;br /&gt;        root (hd0,0)&lt;br /&gt;        kernel /vmlinuz-2.4.21-27.ELsmp ro root=LABEL=/&lt;br /&gt;        initrd /initrd-2.4.21-27.ELsmp.img&lt;br /&gt;title Red Hat Enterprise Linux ES-up (2.4.21-27.EL)&lt;br /&gt;        root (hd0,0)&lt;br /&gt;        kernel /vmlinuz-2.4.21-27.EL ro root=LABEL=/&lt;br /&gt;        initrd /initrd-2.4.21-27.EL.img&lt;/p&gt;&lt;p&gt;---------------------&lt;/p&gt;&lt;p&gt;if you aren&#039;t sure about editing the grub.conf file, just note that if your system already booted fine from grub and you are just trying to get the serial console to show boot info, then you don&#039;t want to make any changes whatsoever to any of the vmlinuz or initrd filenames that are referenced. the only change you&#039;ll make to any of those kernels lines is to append the string i mentioned above to the end of the kernel line, as you can see in the above example.&lt;/p&gt;&lt;p&gt;note that in my example i&#039;ve only changed one kernel to send boot info to the console. there&#039;s no reason for that other than a) i was lazy, b) i wanted to leave some untouched in case i messed things up adding this bit to the kernel line, and c) i don&#039;t boot from the other kernels. also, as you should be able to see the grub boot menu from the console now, you could likely boot your system fine even if you messed up the individual kernel configurations in grub.conf by using grub&#039;s handy ability to let you declare kernel boot parameters from the grub menu (for info on how to do that, seek out some grub tutorials).&lt;/p&gt;&lt;p&gt;that&#039;s it. now save your grub.conf, open a connection to the serial console (in a new window, if you want) and reboot. if all is goes well, you shouldn&#039;t be disconnected even because of a reboot. when the box starts back up you will see &amp;quot;press any key to continue&amp;quot; a few times. if you press a key right then you will get the grub menu. if you don&#039;t, a few seconds later (possibly after grub has shown the menu to the terminal?) your server will boot from the default kernel and you will start to see the boot info.&lt;/p&gt;&lt;p&gt;CREDITS&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.commondreams.org&quot;&gt;http://www.commondreams.org&lt;/a&gt; &lt;/p&gt;</description>
   <link>http://www.booservers.com/archivo/17_setup_remote_serial_console_to_display_grub_menu_and_boot_process.html</link>
      <pubDate>Thu, 15 Dec 2005 20:32:59 +0000</pubDate>   
  </item>
    <item>
   <title>yum upgrade; redhat 9 -&gt; CentOS 3.1 </title>
   <description>&lt;p&gt;Here are the steps i took to update a Redhat 9 box running on a minimal install ( no X, etc ) as suitable for a server to CentOS 3.1 ( which is a fork of RedHat Enterprise Linux v3 )..&lt;/p&gt;&lt;p&gt;I took a fresh install of redhat 9, slapped it on a test box then updated it with up2date. I then installed yum for redhat 9 which can be found here:&lt;br /&gt;Yum Download&lt;/p&gt;&lt;p&gt;Now, you might want to rebuild the rpm database, just incase, thats up to you:&lt;br /&gt;# rpm -vv --rebuilddb&lt;/p&gt;&lt;p&gt;I then modified /etc/yum.conf to look like this:&lt;/p&gt;&lt;br/&gt;&lt;center&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-7209259988091090&quot;;
google_ad_width = 300;
google_ad_height = 250;
google_ad_format = &quot;300x250_as&quot;;
google_ad_type = &quot;text_image&quot;;
google_ad_channel =&quot;3498328464&quot;;
google_color_border = &quot;FFFFFF&quot;;
google_color_bg = &quot;FFFFFF&quot;;
google_color_link = &quot;006633&quot;;
google_color_url = &quot;000000&quot;;
google_color_text = &quot;0033CC&quot;;
//--&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/center&gt;&lt;br&gt;&lt;p&gt;Code&lt;/p&gt;&lt;p&gt;---------------------------------&lt;/p&gt;&lt;p&gt;[main]&lt;br /&gt;exclude=httpd* mysql* php* perl*&lt;br /&gt;cachedir=/var/cache/yum&lt;br /&gt;debuglevel=2&lt;br /&gt;logfile=/var/log/yum.log&lt;br /&gt;pkgpolicy=newest&lt;br /&gt;distroverpkg=redhat-release&lt;br /&gt;installonlypkgs=kernel kernel-smp kernel-hugemem kernel-enterprise kernel-debug kernel-unsupported kernel-smp-unsupported kernel-hugemem-unsupported&lt;br /&gt;tolerant=1&lt;br /&gt;exactarch=1&lt;/p&gt;&lt;p&gt;[base]&lt;br /&gt;name=CentOS-$releasever - Base&lt;br /&gt;baseurl=http://mirror.pacific.net.au/linux/cAos/centos-3/3.1/os/i386/&lt;br /&gt;gpgcheck=1&lt;/p&gt;&lt;p&gt;#released updates&lt;br /&gt;[update]&lt;br /&gt;name=CentOS-$releasever - Updates&lt;br /&gt;baseurl=http://mirror.pacific.net.au/linux/cAos/centos-3/3.1/updates/i386/&lt;br /&gt;gpgcheck=1&lt;/p&gt;&lt;p&gt;#packages used/produced in the build but not released&lt;br /&gt;[addons]&lt;br /&gt;name=CentOS-$releasever - Addons&lt;br /&gt;baseurl=http://mirror.pacific.net.au/linux/cAos/centos-3/3.1/addons/i386/&lt;br /&gt;gpgcheck=1&lt;/p&gt;&lt;p&gt;#additional packages that may be useful&lt;br /&gt;[extras]&lt;br /&gt;name=CentOS-$releasever - Extras&lt;br /&gt;baseurl=http://mirror.pacific.net.au/linux/cAos/centos-3/3.1/extras/i386/&lt;br /&gt;gpgcheck=1&lt;/p&gt;&lt;p&gt;---------------------------------&lt;/p&gt;&lt;p&gt;Change &amp;quot;&lt;a href=&quot;http://mirror.pacific.net.au&quot;&gt;http://mirror.pacific.net.au&lt;/a&gt;&amp;quot; to a mirror near you, a list can be found here:&lt;br /&gt;CentOS Mirrors&lt;/p&gt;&lt;p&gt;After that you need to import the GPG key for the centos RPMs. Issue the following command:&lt;br /&gt;# rpm --import &lt;a href=&quot;http://mirror.centos.org/centos/3.1/i386/RPM-GPG-KEY-CentOS-3&quot;&gt;http://mirror.centos.org/centos/3.1/i386/RPM-GPG-KEY-CentOS-3&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Nows the time you want to check you have made appropriate backups, etc ( i hope you all test this out before rolling production servers! ).&lt;/p&gt;&lt;p&gt;Next step is to run the following command:&lt;br /&gt;# yum upgrade&lt;/p&gt;&lt;p&gt;This will download the rpm headers and determine what needs to be done, play carefull attention of course here and in all parts if this process for errors. Yum will then ask you if you are sure you want to go ahead, if no errors are present, press &amp;quot;y&amp;quot; then &amp;quot;enter&amp;quot;.&lt;/p&gt;&lt;p&gt;This process will take a while, depending on your connection and the gear your installing it on of course. Go brew a fresh pot of coffee, order a pizza, grab a movie or GET BACK TO WORK YOU!!!!&lt;/p&gt;&lt;p&gt;After thats done, check for errors, make sure the new kernel is installed by issueing:&lt;br /&gt;# rpm -qa|grep kernel&lt;/p&gt;&lt;p&gt;You should be presented with a kernel versioned like this: 2.4.21-15.EL.c0 as well as your other kernels previously installed. Check your boot loader to make sure the new kernel is default.&lt;/p&gt;&lt;p&gt;Finally run:&lt;br /&gt;# yum update&lt;/p&gt;&lt;p&gt;Just to ensure you have everything you need.&lt;/p&gt;&lt;p&gt;Now your set to reboot ( hopefully ):&lt;br /&gt;shutdown -rf now&lt;/p&gt;</description>
   <link>http://www.booservers.com/archivo/11_yum_upgrade_redhat_9_-_centos_31_.html</link>
      <pubDate>Thu, 15 Dec 2005 20:02:35 +0000</pubDate>   
  </item>
  </rdf:RDF>
