<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="/blog/templates/default/atom.css" type="text/css" ?>

<feed 
   xmlns="http://www.w3.org/2005/Atom"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/">
    <link href="http://www.globalways.net/blog/feeds/atom.xml" rel="self" title="Globalways Blog" type="application/atom+xml" />
    <link href="http://www.globalways.net/blog/"                        rel="alternate"    title="Globalways Blog" type="text/html" />
    <link href="http://www.globalways.net/blog/rss.php?version=2.0"     rel="alternate"    title="Globalways Blog" type="application/rss+xml" />
    <title type="html">Globalways Blog</title>
    <subtitle type="html"></subtitle>
    <icon>http://www.globalways.net/blog/templates/default/img/s9y_banner_small.png</icon>
    <id>http://www.globalways.net/blog/</id>
    <updated>2010-08-25T07:48:01Z</updated>
    <generator uri="http://www.s9y.org/" version="1.1.3">Serendipity 1.1.3 - http://www.s9y.org/</generator>
    <dc:language>de</dc:language>

    <entry>
        <link href="http://www.globalways.net/blog/archives/52-Strace-with-multiple-processes.html" rel="alternate" title="Strace with multiple processes" />
        <author>
            <name>Uli Stärk</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2010-08-25T07:48:01Z</published>
        <updated>2010-08-25T07:48:01Z</updated>
        <wfw:comment>http://www.globalways.net/blog/wfwcomment.php?cid=52</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://www.globalways.net/blog/rss.php?version=atom1.0&amp;type=comments&amp;cid=52</wfw:commentRss>
    
            <category scheme="http://www.globalways.net/blog/categories/6-Scripting-BashPerl" label="Scripting (Bash/Perl)" term="Scripting (Bash/Perl)" />
    
        <id>http://www.globalways.net/blog/archives/52-guid.html</id>
        <title type="html">Strace with multiple processes</title>
        <content type="xhtml" xml:base="http://www.globalways.net/blog/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Usually, you trace a single process that does not give a helpful error message. But if you have to trace e.g. a webserver with multiple processes you have to type a lot. Here is a one-liner that makes it a little bit easier:
<pre>
strace -f -p $(ps -ea f| grep <span style="color: red">httpsd</span> | cut -f 1 -d " " | xargs | sed -e 's/ / -p /g') 1>/tmp/strace.log 2>&1
</pre> 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://www.globalways.net/blog/archives/51-Dumping-json-data-in-shell.html" rel="alternate" title="Dumping json-data in shell" />
        <author>
            <name>Uli Stärk</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2010-06-17T13:58:09Z</published>
        <updated>2010-06-17T14:10:36Z</updated>
        <wfw:comment>http://www.globalways.net/blog/wfwcomment.php?cid=51</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://www.globalways.net/blog/rss.php?version=atom1.0&amp;type=comments&amp;cid=51</wfw:commentRss>
    
            <category scheme="http://www.globalways.net/blog/categories/6-Scripting-BashPerl" label="Scripting (Bash/Perl)" term="Scripting (Bash/Perl)" />
    
        <id>http://www.globalways.net/blog/archives/51-guid.html</id>
        <title type="html">Dumping json-data in shell</title>
        <content type="xhtml" xml:base="http://www.globalways.net/blog/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>When using web services, its sometimes hard to read the serialized json data. I wrote a small helper script to dump the contents</p>

<p>File: /usr/local/bin/json_decode</p>
<pre>
#!/usr/bin/php
&lt;?php
error_reporting(E_ALL);
ini_set('display_errors',true);
if(!empty($argv[1])) {
        $json = file_get_contents($argv[1]);
}
else {
        $json = '';
        while(!feof(STDIN)) {
                $json .= fgets(STDIN, 1024);
        }
}

$data = json_decode($json);

if($data === null) {
        fwrite(STDERR, "Invalid json data\n");
        exit(1);
}

print_r($data);
</pre>

<p>Usage:</p>
<pre>
wget --quiet -O - "http://domain.tld/file.json" | json_decode
</pre> 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://www.globalways.net/blog/archives/50-Ignore-table-on-import.html" rel="alternate" title="Ignore table on import" />
        <author>
            <name>Uli Stärk</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2010-05-26T12:21:01Z</published>
        <updated>2010-05-26T12:21:01Z</updated>
        <wfw:comment>http://www.globalways.net/blog/wfwcomment.php?cid=50</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://www.globalways.net/blog/rss.php?version=atom1.0&amp;type=comments&amp;cid=50</wfw:commentRss>
    
            <category scheme="http://www.globalways.net/blog/categories/8-MySQL" label="MySQL" term="MySQL" />
    
        <id>http://www.globalways.net/blog/archives/50-guid.html</id>
        <title type="html">Ignore table on import</title>
        <content type="xhtml" xml:base="http://www.globalways.net/blog/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>Usually you ignore tables when dumping your database. But when importing you can not ignore certain tables by the mysql command line tool.</p>

<p>I just had the challenge to find an easy way to do this or wait houres until the import completes and found an easy workaround. Just before you import the sql file, you can create a dummy table, which does not match the original schema. When you start the import an error will occur when processing the insert statements. If you supply a --force to your command line, mysql will ignore the error and continue with the import.</p>

<pre>grep -v "DROP TABLE IF EXISTS" mysql-backup.sql | mysql --force</pre> 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://www.globalways.net/blog/archives/49-Find-symbolic-links.html" rel="alternate" title="Find symbolic links" />
        <author>
            <name>Uli Stärk</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2009-11-12T15:59:22Z</published>
        <updated>2009-11-12T15:59:22Z</updated>
        <wfw:comment>http://www.globalways.net/blog/wfwcomment.php?cid=49</wfw:comment>
    
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://www.globalways.net/blog/rss.php?version=atom1.0&amp;type=comments&amp;cid=49</wfw:commentRss>
    
            <category scheme="http://www.globalways.net/blog/categories/2-Linux" label="Linux" term="Linux" />
    
        <id>http://www.globalways.net/blog/archives/49-guid.html</id>
        <title type="html">Find symbolic links</title>
        <content type="xhtml" xml:base="http://www.globalways.net/blog/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <pre>
find -lname "*" | xargs ls -l
</pre> 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://www.globalways.net/blog/archives/48-Alternative-unbindModelAll.html" rel="alternate" title="Alternative unbindModelAll" />
        <author>
            <name>Uli Stärk</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2009-08-28T10:09:23Z</published>
        <updated>2009-08-28T12:14:24Z</updated>
        <wfw:comment>http://www.globalways.net/blog/wfwcomment.php?cid=48</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://www.globalways.net/blog/rss.php?version=atom1.0&amp;type=comments&amp;cid=48</wfw:commentRss>
    
            <category scheme="http://www.globalways.net/blog/categories/1-PHP" label="PHP" term="PHP" />
    
        <id>http://www.globalways.net/blog/archives/48-guid.html</id>
        <title type="html">Alternative unbindModelAll</title>
        <content type="xhtml" xml:base="http://www.globalways.net/blog/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Less lines of code as in the <a href="http://bakery.cakephp.org/articles/view/unbindall" target="_blank">unbindModelAll</a> example:

<pre>
class AppModel extends Model {
        function unbindModelAll() {
                foreach(array(
                        'hasOne' => array_keys($this->hasOne),
                        'hasMany' => array_keys($this->hasMany),
                        'belongsTo' => array_keys($this->belongsTo),
                        'hasAndBelongsToMany' => array_keys($this->hasAndBelongsToMany)
                ) as $relation => $model) {
                        $this->unbindModel(array($relation => $model));
                }
        }
}
</pre> 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://www.globalways.net/blog/archives/47-CakePHP-SessionID-regeneration.html" rel="alternate" title="CakePHP SessionID regeneration" />
        <author>
            <name>Uli Stärk</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2009-08-08T11:34:18Z</published>
        <updated>2009-08-08T12:38:36Z</updated>
        <wfw:comment>http://www.globalways.net/blog/wfwcomment.php?cid=47</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://www.globalways.net/blog/rss.php?version=atom1.0&amp;type=comments&amp;cid=47</wfw:commentRss>
    
            <category scheme="http://www.globalways.net/blog/categories/1-PHP" label="PHP" term="PHP" />
    
        <id>http://www.globalways.net/blog/archives/47-guid.html</id>
        <title type="html">CakePHP SessionID regeneration</title>
        <content type="xhtml" xml:base="http://www.globalways.net/blog/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>If you set the security level in a cake application to high, an algorithmus regenerates the SessionID.</p>
<p>Usually, this is not a bad idea. But as sometimes several requests are started simoultaniously, I discovered that random requests didn't get a proper user-id in the session and further found out that during AJAX-Requests requests the sessioncookie got deleted and in the same request a new one was set. As a result, a few AJAX-Requests failed due to an invalid session id.</p>

<p>After reducing the security to medium, the errors were gone.</p>

<p>It seems that this is a known issue to the developers (https://trac.cakephp.org/changeset/5982) and should have been fixed for over two years. As far as I can tell from the current source, SessionIDs are regenerated each tenth request - even if a XML-HTTP-Request was made. Due to race conditions this will make many developers headaches and is a bug that should be fixed.</p> 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://www.globalways.net/blog/archives/46-Random-sql-errors-on-slave-due-to-memory-errors.html" rel="alternate" title="Random sql errors on slave due to memory errors" />
        <author>
            <name>Uli Stärk</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2009-08-04T11:30:18Z</published>
        <updated>2009-08-05T12:10:50Z</updated>
        <wfw:comment>http://www.globalways.net/blog/wfwcomment.php?cid=46</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://www.globalways.net/blog/rss.php?version=atom1.0&amp;type=comments&amp;cid=46</wfw:commentRss>
    
            <category scheme="http://www.globalways.net/blog/categories/8-MySQL" label="MySQL" term="MySQL" />
    
        <id>http://www.globalways.net/blog/archives/46-guid.html</id>
        <title type="html">Random sql errors on slave due to memory errors</title>
        <content type="xhtml" xml:base="http://www.globalways.net/blog/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>A slave recently began to report syntax errors in replicated queries. This happend about once a day and was completly random. As the master ran fine and the connection between the two hosts has no errors, the error must be somewhere located on the slave. I began testing the server including the discs without result. Later I accidently did something that made a service on the slave crash. In the error message I could see that the kernel discovered some kind of memory corruption in the process and terminated it.</p>

<p>After running memtest for a couple of houres on the system some memory errors were found. The server was tested before deployment and was running without errors for about two years so memory was the last thing I thought about. But now I can imagine why enterprise servers use ECC memory.</p> 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://www.globalways.net/blog/archives/43-Different-behaviour-when-using-sockets-or-TCPIP.html" rel="alternate" title="Different behaviour when using sockets or TCP/IP" />
        <author>
            <name>Uli Stärk</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2009-07-21T11:56:22Z</published>
        <updated>2009-07-21T12:16:48Z</updated>
        <wfw:comment>http://www.globalways.net/blog/wfwcomment.php?cid=43</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://www.globalways.net/blog/rss.php?version=atom1.0&amp;type=comments&amp;cid=43</wfw:commentRss>
    
            <category scheme="http://www.globalways.net/blog/categories/8-MySQL" label="MySQL" term="MySQL" />
    
        <id>http://www.globalways.net/blog/archives/43-guid.html</id>
        <title type="html">Different behaviour when using sockets or TCP/IP</title>
        <content type="xhtml" xml:base="http://www.globalways.net/blog/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>When connection to a mysql you can either connect by a TCP/IP connection or through a socket.</p>

<p>If you are connection though a socket the host value for the connecting user will always be 'localhost'. When using TCP/IP the host will always be '127.0.0.1'.</p>

<p>This is very important when specifiying privileges. If you allow a user to connect from 127.0.0.1 ('user'@'127.0.0.1') this user will not be able to connection through sockets:</p>

<pre># mysqladmin --user=zabbix_agent --password=xxx ping
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'zabbix_agent'@'localhost' (using password: YES)'

mysql> show grants for 'zabbix_agent'@'127.0.0.1';
+----------------------------------------------------------------------------------------------------------------------------------+
| Grants for zabbix_agent@127.0.0.1                                                                                                |
+----------------------------------------------------------------------------------------------------------------------------------+
| GRANT REPLICATION CLIENT ON *.* TO 'zabbix_agent'@'127.0.0.1' IDENTIFIED BY PASSWORD '*xxx' |
+----------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)</pre>

<p>Note that the mysql client will automatically use a socket if you use -h localhost (default). So if you pass -h 127.0.0.1 things will work:</p>

<pre>
# mysqladmin -h 127.0.0.1 --user=zabbix_agent --password=x ping
mysqld is alive
</pre>

 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://www.globalways.net/blog/archives/42-SUPER-privilege-for-trigger-execution.html" rel="alternate" title="SUPER privilege for trigger execution" />
        <author>
            <name>Uli Stärk</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2009-07-20T08:51:26Z</published>
        <updated>2009-07-20T08:51:26Z</updated>
        <wfw:comment>http://www.globalways.net/blog/wfwcomment.php?cid=42</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://www.globalways.net/blog/rss.php?version=atom1.0&amp;type=comments&amp;cid=42</wfw:commentRss>
    
            <category scheme="http://www.globalways.net/blog/categories/8-MySQL" label="MySQL" term="MySQL" />
    
        <id>http://www.globalways.net/blog/archives/42-guid.html</id>
        <title type="html">SUPER privilege for trigger execution</title>
        <content type="xhtml" xml:base="http://www.globalways.net/blog/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>If you get the error</p>
<pre>MySQL said: Access denied; you need the SUPER privilege for this operation</pre><br />

<p>when inserting data into an table with a trigger, you should check definier of the trigger. Mine was empty and caused this error. Re-Creating the trigger solved the problem and a proper definier was set.</p>

<p>To dump all you triggers you can use the following query</p>
<pre>SELECT CONCAT_WS( " ", "CREATE TRIGGER",  TRIGGER_NAME,  ACTION_TIMING,  EVENT_MANIPULATION,  "ON",  EVENT_OBJECT_TABLE,  "FOR EACH ROW",  ACTION_STATEMENT) 'create_trigger' 
FROM information_schema.triggers</pre><br /> 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://www.globalways.net/blog/archives/41-CakePHP-with-PHP-5.3.x.html" rel="alternate" title="CakePHP with PHP 5.3.x" />
        <author>
            <name>Uli Stärk</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2009-07-17T11:38:00Z</published>
        <updated>2009-07-17T11:38:00Z</updated>
        <wfw:comment>http://www.globalways.net/blog/wfwcomment.php?cid=41</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://www.globalways.net/blog/rss.php?version=atom1.0&amp;type=comments&amp;cid=41</wfw:commentRss>
    
            <category scheme="http://www.globalways.net/blog/categories/1-PHP" label="PHP" term="PHP" />
    
        <id>http://www.globalways.net/blog/archives/41-guid.html</id>
        <title type="html">CakePHP with PHP 5.3.x</title>
        <content type="xhtml" xml:base="http://www.globalways.net/blog/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                When using CakePHP with PHP 5.3.0 you will get tons of depricated errors like
<pre>
Deprecated: Assigning the return value of new by reference is deprecated in /data/workspace/us/htdocs/tixi/cake/libs/debugger.php on line 99

</pre>

You can fix this by changing the default error_reporting value of the debug mode. Open the file
<pre>
cake/libs/configure.php

</pre>
And replace the line 295:
<pre>
$ diff configure.php configure.php.new
295c295
<                               error_reporting(E_ALL);
---
>                               error_reporting(E_ALL &amp; ~E_DEPRICATED);
</pre> 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://www.globalways.net/blog/archives/40-Flushing-swap-space.html" rel="alternate" title="Flushing swap space" />
        <author>
            <name>Uli Stärk</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2009-07-16T11:31:12Z</published>
        <updated>2009-07-16T11:31:12Z</updated>
        <wfw:comment>http://www.globalways.net/blog/wfwcomment.php?cid=40</wfw:comment>
    
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://www.globalways.net/blog/rss.php?version=atom1.0&amp;type=comments&amp;cid=40</wfw:commentRss>
    
            <category scheme="http://www.globalways.net/blog/categories/2-Linux" label="Linux" term="Linux" />
    
        <id>http://www.globalways.net/blog/archives/40-guid.html</id>
        <title type="html">Flushing swap space</title>
        <content type="xhtml" xml:base="http://www.globalways.net/blog/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>From time to time machines use some swap space due to heavy load. But Linux doesn't free the swap space itself if enough memory is available.</p>

<p>An easy method to flush all disk swap to memory is to disable and re-enable the swap. Eg:</p>

<pre>
# free -tm
             total       used       free     shared    buffers     cached
Mem:          4096       3269        826          0         31         76
-/+ buffers/cache:       3161        934
Swap:          509        114        395
Total:        4605       3384       1221

# swapoff /dev/xvdb1
# swapon /dev/xvdb1

# free -tm
             total       used       free     shared    buffers     cached
Mem:          4096       3375        720          0         31         78
-/+ buffers/cache:       3265        830
Swap:          509          0        509
Total:        4605       3375       1230

</pre> 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://www.globalways.net/blog/archives/39-XFS-prevents-boot-on-xen.html" rel="alternate" title="XFS prevents boot on xen" />
        <author>
            <name>Uli Stärk</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2009-07-08T14:08:39Z</published>
        <updated>2009-07-08T14:08:39Z</updated>
        <wfw:comment>http://www.globalways.net/blog/wfwcomment.php?cid=39</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://www.globalways.net/blog/rss.php?version=atom1.0&amp;type=comments&amp;cid=39</wfw:commentRss>
    
            <category scheme="http://www.globalways.net/blog/categories/3-Xen" label="Xen" term="Xen" />
    
        <id>http://www.globalways.net/blog/archives/39-guid.html</id>
        <title type="html">XFS prevents boot on xen</title>
        <content type="xhtml" xml:base="http://www.globalways.net/blog/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                After installing a Xen Lenny on a Xen 5.5 host, the boot-process failed with the following error:
<pre>
08.07.2009 15:55:47 Error: Starting VM 'vmname' - The bootloader for this VM returned an error -- did the VM installation succeed?  Error from bootloader: Return code: 1; Log = Traceback (most recent call last):
  File "/usr/bin/pygrub", line 719, in ?
    raise RuntimeError, "Unable to find partition containing kernel"
RuntimeError: Unable to find partition containing kernel
</pre>
<br />

Cause of this error was, that I changed the root filesystem from ext3 to xfs during setup, which is the better choise for databases with large tables. But obiously Xen doesnt like that. 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://www.globalways.net/blog/archives/38-Portmap-problems-with-Xen-debian-template.html" rel="alternate" title="Portmap problems with Xen debian template" />
        <author>
            <name>Uli Stärk</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2009-07-08T09:56:44Z</published>
        <updated>2009-07-08T09:56:44Z</updated>
        <wfw:comment>http://www.globalways.net/blog/wfwcomment.php?cid=38</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://www.globalways.net/blog/rss.php?version=atom1.0&amp;type=comments&amp;cid=38</wfw:commentRss>
    
            <category scheme="http://www.globalways.net/blog/categories/3-Xen" label="Xen" term="Xen" />
    
        <id>http://www.globalways.net/blog/archives/38-guid.html</id>
        <title type="html">Portmap problems with Xen debian template</title>
        <content type="xhtml" xml:base="http://www.globalways.net/blog/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                During a boot of a xen debian template you can see the following output:

<pre>Configuring network interfaces...Starting portmap daemon....
portmap: server localhost not responding, timed out
RPC: failed to contact portmap (errno -5).
</pre><br />

If you press CTRL-D to cancel the portmap startup the loopback interfaces does not come up and several other services will not come up. I've been searching for the error for a long time but finally I found the wrong configuration.

If you take a close look at the network configuration file at /etc/network/interfaces you will see the following startup order:
<pre>
auto eth0 lo
</pre><br />

This is wrong. Change the order to:
<pre>
auto lo eth0
</pre><br />

Now the system will bring up the interfaces in the proper order. 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://www.globalways.net/blog/archives/37-Fast-enough.html" rel="alternate" title="Fast enough?" />
        <author>
            <name>Uli Stärk</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2009-06-26T21:22:42Z</published>
        <updated>2009-06-26T21:22:42Z</updated>
        <wfw:comment>http://www.globalways.net/blog/wfwcomment.php?cid=37</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://www.globalways.net/blog/rss.php?version=atom1.0&amp;type=comments&amp;cid=37</wfw:commentRss>
    
            <category scheme="http://www.globalways.net/blog/categories/11-Connectivity" label="Connectivity" term="Connectivity" />
    
        <id>http://www.globalways.net/blog/archives/37-guid.html</id>
        <title type="html">Fast enough?</title>
        <content type="xhtml" xml:base="http://www.globalways.net/blog/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <pre># netio -u location-somewhere-in-baden-württemberg


NETIO - Network Throughput Benchmark, Version 1.26

(C) 1997-2005 Kai Uwe Rommel

 

UDP connection established.

Packet size  1k bytes:  114245 KByte/s (0%) Tx,  110876 KByte/s (0%) Rx.
[...]
</pre>
<br /><br />
<a href="http://globalways.net/de/gigabit_internet" target="_blank">Will haben&#8482;</a> 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://www.globalways.net/blog/archives/36-IO-performance.html" rel="alternate" title="IO performance" />
        <author>
            <name>Uli Stärk</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2009-06-22T18:19:30Z</published>
        <updated>2009-07-21T21:18:47Z</updated>
        <wfw:comment>http://www.globalways.net/blog/wfwcomment.php?cid=36</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://www.globalways.net/blog/rss.php?version=atom1.0&amp;type=comments&amp;cid=36</wfw:commentRss>
    
            <category scheme="http://www.globalways.net/blog/categories/9-Virtualization" label="Virtualization" term="Virtualization" />
    
        <id>http://www.globalways.net/blog/archives/36-guid.html</id>
        <title type="html">IO performance</title>
        <content type="xhtml" xml:base="http://www.globalways.net/blog/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                I was curious how fast our SAN is when heavy IO load hits the system by multiple processes. <br />I found a quite handy tool that can run benchmarks quite easily: <a href="http://www.iozone.org/">www.iozone.org</a><br /><br />I ran the test with a 5 simultaneous clients, each writes 1GiB to a file in 512KiB blocks.<br /><br />
<a href="http://www.globalways.net/blog/uploads/IO-Performance.PNG" target="_blank"><img height="150" width="137" style="border: 0px none;" src="http://www.globalways.net/blog/uploads/IO-Performance.serendipityThumb.PNG" alt="results" /><br /><small>Click to enlage</small></a><br /><br />
Command line:
<pre>
./iozone -R -l 5 -u 5 -r 512 -s 1g /mnt/10_tib/tmp1 /mnt/10_tib/tmp2 /mnt/10_tib/tmp3 /mnt/10_tib/tmp4 /mnt/10_tib/tmp5
</pre>
<br />
As I had no dedicated testing FCSAN, the tests were performed on a cluster that had more than a dozen VMs running. So the results don't reflect synthetic results but reallife performance. The RAID6 System usually performs backups, but is completely idle during work-time. The SATA System was a fresh installed mainstream rootserver without RAID.
<br /><br />
You can see that the FCSAN outperforms a single SATA drive by about 4-10 times. So there is absolutely no way to compare these systems.<br /><br />
A bit more interesting is the RAID-6 performance with an ARECA controller. It nearly matches the simple read and write speeds, but can not match the performance in database-specific operations like random write or mixed workload.<br /><br />
I'm looking forward to repeat the tests, once the first SSD drives are considered to be stable for enterprise architectures. <br /><a href="http://www.globalways.net/blog/archives/36-IO-performance.html#extended">"IO performance" vollständig lesen</a>
            </div>
        </content>
        
    </entry>

</feed>