Mandalika's scratchpad [ Work blog @Oracle | My Music Compositions ]

Old Posts: 09.04  10.04  11.04  12.04  01.05  02.05  03.05  04.05  05.05  06.05  07.05  08.05  09.05  10.05  11.05  12.05  01.06  02.06  03.06  04.06  05.06  06.06  07.06  08.06  09.06  10.06  11.06  12.06  01.07  02.07  03.07  04.07  05.07  06.07  08.07  09.07  10.07  11.07  12.07  01.08  02.08  03.08  04.08  05.08  06.08  07.08  08.08  09.08  10.08  11.08  12.08  01.09  02.09  03.09  04.09  05.09  06.09  07.09  08.09  09.09  10.09  11.09  12.09  01.10  02.10  03.10  04.10  05.10  06.10  07.10  08.10  09.10  10.10  11.10  12.10  01.11  02.11  03.11  04.11  05.11  07.11  08.11  09.11  10.11  11.11  12.11  01.12  02.12  03.12  04.12  05.12  06.12  07.12  08.12  09.12  10.12  11.12  12.12  01.13  02.13  03.13  04.13  05.13  06.13  07.13  08.13  09.13  10.13  11.13  12.13  01.14  02.14  03.14  04.14  05.14  06.14  07.14  09.14  10.14  11.14  12.14  01.15  02.15  03.15  04.15  06.15  09.15  12.15  01.16  03.16  04.16  05.16  06.16  07.16  08.16  09.16  12.16  01.17  02.17  03.17  04.17  06.17  07.17  08.17  09.17  10.17  12.17  01.18  02.18  03.18  04.18  05.18  06.18  07.18  08.18  09.18  11.18  12.18  01.19  02.19  05.19  06.19  08.19  10.19  11.19  05.20  10.20  11.20  12.20  09.21  11.21  12.22 


Thursday, June 26, 2008
 
{Sun Studio, Solaris} { Blog Posts, White Papers} : A Retrospect

1. HOW-TOs


Sun Solaris


Sun Studio Compiler Suite


Miscellaneous


2. Performance

Sun Solaris


Miscellaneous


3. Troubleshooting

Sun Solaris / Sun Studio / Miscellaneous



4. Miscellaneous


________________
Technorati Tags:
| |


Thursday, June 19, 2008
 
QuickTest Pro Performance : VNC or Remote Desktop?

For the past few months I have been struggling with the mysteriously poor performing QuickTest Professional (QTP) on Windows. When tested similar transactions using the LoadRunner (LR) tool, the average response times were satisfactory -- mostly under 2 seconds. However when tested with QTP, the averages were unusually high - they are mostly between 2 and 4 seconds. LoadRunner data eliminated the web and application servers from the picture. Because the LR reported averages are in the expected range, the web and app servers might be performing well. Hence there is no apparent reason to suspect web/app servers for the slowness observed through the QTP tool. That leaves the QTP client as the primary suspect.

There is no improvement in the average transaction response times even after downgrading the version of QTP tool and the Internet Explorer web browser. Luckily one of my colleagues at work noticed slight improvement to the averages when we are not monitoring the QTP test running through our VNC viewers. The response times were better when we either close the VNC viewer window completely or minimize it. That was an interesting observation. VNC service appears to be interfering with the web browser's rendering performance; and due to that the recorded response times were poor. So I stopped the VNC server/service on the QTP client machine; and connected to the QTP client through the "Remote Desktop connection" from another PC. Finally I re-ran the same QTP test that I ran earlier when I was connecting through the VNC. Voila! the QTP response times are almost coinciding with the LoadRunner reported response times.

To make it more attractive, here is some sample data that shows the difference between the response times when connected through the VNC and the Remote Desktop connections:

----------------------------------------------------
VNC Remote
Viewer Desktop
----------------------------------------------------
Average Logon 2.59 sec 0.76 sec
Avg. Page Load 2.91 sec 0.77 sec
Avg. Page Save 3.82 sec 2.05 sec
----------------------------------------------------

Moral of the story:

When running performance tests with QuckTest Pro (QTP) tool on remote clients, consider connecting to the remote client using "Remote Desktop" connection. Web browser might perform suboptimally under the VNC, which might skew the overall performance data.

And of course, I do not have any evidence other than the above data that proves VNC guilty. It was just my observation.
________________
Technorati Tags:
| | | | | |


Friday, June 13, 2008
 
Installing MySQL 5.0.51b from the Source Code on Sun Solaris

Building and installing the MySQL server from the source code is relatively very easy when compared to many other OSS applications. At least that was my experience. The following simplified installation instructions were based on the MySQL 5.0 Reference Manual .

Steps for setting up the MySQL 5.x environment on Sun Solaris

  1. Create 'mysql' group, then 'mysql' user.

    eg.,

    # mkdir /export/software/mysql
    # groupadd mysql
    # useradd -g mysql -d /export/software/mysql -s /bin/bash mysql
    # passwd mysql
    New Password: mysql
    Re-enter new Password: mysql
    # chown mysql:mysql /export/software/mysql


  2. Login as 'mysql' user; and add the following directories to the PATH environment variable:

    eg.,

    % cat ~/.bashrc

    PATH=/usr/bin:/usr/sbin:/usr/openwin/bin:/usr/ccs/bin:/usr/ucb:/usr/sfw/bin:/opt/csw/bin:/usr/local/bin:.:$PATH
    export PATH


  3. Download MySQL 5.0.51b source code from the location: http://dev.mysql.com/downloads/mysql/5.0.html#source. Download the compressed GNU TAR archive (tar.gz).

  4. Run "configure" with the following options.

    eg.,

    % ./configure --prefix=~/MySQL5051b --enable-shared --enable-thread-safe-client --with-pic --with-debug=no


  5. Run "make all" to build MySQL

    eg.,

    % make all


  6. Run "make install" to install MySQL either in /usr/local directory or the directory specified in "--prefix" during the "configure" task.
    eg.,

    % make install


  7. Initialize the grant tables. "mysql_install_db" program sets up the initial MySQL grant tables containing the privileges that determine how users are allowed to connect to the server. mysql_install_db needs to be run only the first time you install MySQL on Solaris from the source code.

    eg.,

    % pwd
    /export/software/mysql/MySQL5051b/bin

    % ./mysql_install_db --user=mysql

    Installing MySQL system tables...
    OK
    Filling help tables...
    OK

    To start mysqld at boot time you have to copy
    support-files/mysql.server to the right place for your system

    PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
    To do so, start the server, then issue the following commands:
    /export/software/mysql/MySQL5051b/bin/mysqladmin -u root password 'new-password'
    /export/software/mysql/MySQL5051b/bin/mysqladmin -u root -h unknown password 'new-password'

    Alternatively you can run:
    /export/software/mysql/MySQL5051b/bin/mysql_secure_installation

    which will also give you the option of removing the test
    databases and anonymous user created by default. This is
    strongly recommended for production servers.

    See the manual for more instructions.

    ...
    ...


  8. Start the MySQL server

    eg.,

    % ./mysqld_safe &
    Starting mysqld daemon with databases from /export/software/mysql/MySQL5051b/var


  9. Verify that the server is running

    eg.,

    % ./mysqladmin version
    ./mysqladmin Ver 8.41 Distrib 5.0.51b, for pc-solaris2.11 on i386
    Copyright (C) 2000-2006 MySQL AB
    This software comes with ABSOLUTELY NO WARRANTY. This is free software,
    and you are welcome to modify and redistribute it under the GPL license

    Server version 5.0.51b
    Protocol version 10
    Connection Localhost via UNIX socket
    UNIX socket /tmp/mysql.sock
    Uptime: 4 min 28 sec

    Threads: 1 Questions: 1 Slow queries: 0 Opens: 12 Flush tables: 1 Open tables: 6 Queries per second avg: 0.004


  10. Verify that you can retrieve information from the server.

    • List the existing databases

      eg.,

      % mysqlshow
      +--------------------+
      | Databases |
      +--------------------+
      | information_schema |
      | test |
      +--------------------+


    • List the tables in one of the existing databases.

      eg.,

      % mysqlshow information_schema
      Database: information_schema
      +---------------------------------------+
      | Tables |
      +---------------------------------------+
      | CHARACTER_SETS |
      | COLLATIONS |
      | COLLATION_CHARACTER_SET_APPLICABILITY |
      | COLUMNS |
      | COLUMN_PRIVILEGES |
      | KEY_COLUMN_USAGE |
      | PROFILING |
      | ROUTINES |
      | SCHEMATA |
      | SCHEMA_PRIVILEGES |
      | STATISTICS |
      | TABLES |
      | TABLE_CONSTRAINTS |
      | TABLE_PRIVILEGES |
      | TRIGGERS |
      | USER_PRIVILEGES |
      | VIEWS |
      +---------------------------------------+


    • Retrieve the row count from one of the tables in the "information_schema" database.

      eg.,

      % mysql -e "SELECT COUNT(*) FROM TABLES" information_schema
      +----------+
      | COUNT(*) |
      +----------+
      | 17 |
      +----------+



  11. Finally shutdown the MySQL server. Only privileged MySQL users can shutdown the MySQL server. The grant tables (step #7) step creates a superuser account with username 'root'. This account pertains to MySQL only. It is no way related to the OS username. The initial 'root' account password is empty, so anyone can connect to the MySQL server as 'root' without a password; and be granted all privileges.

    eg.,

    % id
    uid=65539(mysql) gid=104(mysql)

    % ./mysqladmin shutdown
    ./mysqladmin: shutdown failed; error: 'Access denied; you need the SHUTDOWN privilege for this operation'

    % ./mysqladmin -u root shutdown


    Check the other window for the shutdown confirmation where you started the MySQL server.

    % ./mysqld_safe
    Starting mysqld daemon with databases from /export/software/mysql/MySQL5051b/var

    STOPPING server from pid file /export/software/mysql/MySQL5051b/var/unknown.pid
    080612 13:59:09 mysqld ended


    At this point "mysqladmin version" should return an error.

    % ./mysqladmin version
    ./mysqladmin: connect to server at 'localhost' failed
    error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)'
    Check that mysqld is running and that the socket: '/tmp/mysql.sock' exists!

________________
Technorati Tags:
| |



2004-2019 

This page is powered by Blogger. Isn't yours?