7/3/2004
Logging Database Benchmarking
Demuynck Ruben
Voorwoord: Voor we kunnen overgaan tot het echte benchmarken moet eerst nog heel wat voorbereid en getest en omdat dit niet altijd van een leien dakje loopt (integendeel…) werd ons gevraagd om een log te maken van al de gevolgde procedures, problemen, oplossingen,… Omdat het redelijk nutteloos zou zijn om twee keer werk te doen, zal ik als verslag wat beknopt uitleg geven, en aanvullen met de log van tijdens de stage. hierbij zal ik volgende legende handhaven: -
Beknopte uitleg Log Stukken code of copy/paste van scherm.
Voorbereiding:
[WEEK1] De eerte week verliep redelijk goed los van enkele tegenslagen. VTune geinstalleerd en beginnen met testen op eigen pc. Er staat een tutorial van online bij intel die ik ook min of meer gevolgd heb. Codeanalyst werd ook geinstalleerd en getest, maar dit bleef zeer basis aangezien dit programma voor AMD processoren is en mijn laptop INTEL processer heeft, maar daar kunnen we dan later dieper op ingaan. Na 2 dagen installeren uninstalleren van software … problem, windows start niet meer op… herinstalleren … cdrom drive werkt niet… wat vertraging opgelopen. Bij extra op de site komt nog een overzicht hoe je pc kan installeren over netwerk met een TCP/IP Bootdisk zonder dat je een cd-drive nodig hebt. Verder verschillende versies van MySQL geïnstalleerd daar de database maar niet kon geimporteerd worden. Later bleek (raad van Hans Ameel) dat windows de database van 605 MB niet kon importeren, behalve als je hem in kleinere stukjes deed door daarvoor programma te installeren. Op Linux zou dit echter wel moeten gaan. Ondertussen waren back-ups genomen van de servers die waarop we konden testen dus zou ik direct op deze servers testen (al de servers draaien linux dus geen probleem) waarop al de MySQL database al klaar stond. Twee manieren om VTune te testen. Oudere versie van VTune kan niet op linux worden geinstalleerd, er kan wel een onderdeel dat de data verzamelt worden op linux pc geïnstalleerd en dan kan je met windows pc de data realtime gaan ophalen. Dit werkt al voor grootste deel, maar moet nog wat geoptimaliseerd worden. Nieuwere versie kan geïnstalleerd worden op linux, maar de installatie weigert te starten voor 1 van de twee pc’s.Waarschijnlijk ging het niet op de 1 omdat het een 64 bit processor ging en de versie van VTune die ik had net gebruikt werd.(zie log voor meer info) Op de andere pc wil installatie wel werken maar is er waren problemen met licentiesoftware die eerst moest worden geinstalleerd en daar dit het laatste was waar ik mee bezig ben is dit nog niet in orde gebracht.
VTUNE en CODEANALYST: De verschillende events begrijpen, en weten welke nuttig zijn in welke situatie. Programma zelf onder de knie krijgen door oefeningen te doen met dbconn en eventueel andere programma’s Nagaan hoe de verschillende CPU’s gebruikt worden door het databaseprogramma hier houden we 1 applicatie in de gaten dus voor intel wordt dit de ‘call graph’ collector. Eventueel ook soort baseline nemen door te samplen wanneer er geen queries worden opgelost. Daarna vergelijken als er wel queries worden gelogd. Dit kan met samplen of met performance counter worden gedaan en bekijkt al de processen over het gehele systeem. Met codeanalyst van AMD moet nog gewerkt worden op een AMD CPU. Zolang dit niet mogelijk is kan op mijn Intel werken met VTUNE. Voor V-TUNE niet enkel de tutorial bekijken maar ook de help files die erbij geleverd zijn bevatten belangrijke informatie. Ook mogelijke error messages met oorzaken en oplossingen. Tijdens het testen van VTUNE kom ik een error tegen als ik de ‘call graph’ collector gebruik om data van een specifieke applicatie te verzamelen: ”Changing security permissions of BISTRO project directory failed” Werkwijze: nieuw project > call graph wizard > .NET profiling >Executable> application to launch: “C:\Documents and Settings\Ruben.PCLAPTOP\Mijn documenten\Visual Studio Projects\FolderWatcher\bin\FolderWatcher.exe” >working directory:” C:\Documents and Settings\Ruben.PCLAPTOP\Mijn documenten\Visual Studio Projects\FolderWatcher\bin\” >collect call graph data on: .NET class only MySQL (mysql-4.0.23-win) wordt geinstalleerd op mijn laptop om de eerste oefentests met VTUNE te doen op de database. installatie: setup.exe runnen. database importeren blijkt niet te gaan met de gui-tools “winmysqladmin.exe” en “mysqlmanager.exe”. Dos venster openen en naar de “../mysql/bin” directory gaan, in mij geval “c:\mysql\bin” en daar zijn de verschillende commando’s ter beschikking. >mysql hierdoor kom je in aparte commandoshell >create database test7; de ‘;’ niet vergeten, anders gaat commando door op andere lijn. Dit zorgde voor een error: ERROR 1044: Acces denied for user: ‘@localhost’ to database ‘test7’ >quit; terug naar dos shell >mysqladmin commando brengt je niet in andere shell je moet in line commando’s geven. >mysqladmin -u root create test7 geen error ander commando:
perror <errno> vb perror 121 geeft meer informatie over de error dag2: heb vershillende MySQL versies geprobeerd (oa. Ook packages zoals easyphp, en vertrigo die apache , mysql , php, en soms phpmyadmin combineren in 1 setup), telkens weer errors. Nu werk ik met mysql-4.1.10-win32 en krijg de volgende error message als ik wil de database importeren. eerst db maken mysql -uroot -proot >create database benchdb2; >exit; db importeren mysql -uroot -proot benchdb2 < c:\benchdb2.sql ERROR 1005 (HY000) at line 534: Can’t create table ‘.\benchdb2\comments.frm’ (errno:121) met perror.exe utility errno checken. perror 121 MySQL error: 121= Duplicate key on write or updqte Als je net na de error het ‘show innodb status’ command uitvoert in mysql console zou je moeten meer informatie zien over de error (zie http://jroller.com/page/jwboring) Maar dit blijkt bij mij het geval niet te zijn. Eens geprobeerd met mysqlimport, maar dit blijkt om om data uit een tekstbestand in een bestaande tabel te importeren, dus niet om een database te importeren. Met MySQL administrator kan je op gemakkelijke manier al de logs zien en normaal ook een sql file importeren, dit tweede lukt niet, maar ik zie nu wel de foutmelding in de logs (deze log kan je vinden in ‘\mysql\data\??.err, waar ?? meestal computername is): 50308 11:18:45 InnoDB: Error: table `benchdb2/comments` already exists in InnoDB internal InnoDB: data dictionary. Have you deleted the .frm file InnoDB: and not used DROP TABLE? Have you used DROP DATABASE InnoDB: for InnoDB tables in MySQL version <= 3.23.43? InnoDB: See the Restrictions section of the InnoDB manual. InnoDB: You can drop the orphaned table inside InnoDB by InnoDB: creating an InnoDB table with the same name in another InnoDB: database and copying the .frm file to the current database. InnoDB: Then MySQL thinks the table exists, and DROP TABLE will InnoDB: succeed. InnoDB: You can look for further help from InnoDB: http://dev.mysql.com/doc/mysql/en/InnoDB_troubleshooting_datadict.html
De link onderaan de error geeft meer informatie over deze error. Het blijk om een ‘orphaned
table’ te gaan, the .frm files zijn niet synchroon met de InnoDB interne data dictionary. Dit kan worden veroorzaakt door een database die tijdens het schrijven naar de DB wordt afgesloten en dergelijke. oplossing van probleem: windows kan het .sql bestand niet importeren waarschijnlijk omdat het te groot is en loopt daarom vast...
Vtune installeren voor linux vanop cd: dvd wordt automatisch gemount. Naar juiste map navigeren. /media/dvd/htm/sofware/Linux/VT Hierin staan 2 bestanden: - vt_cli_2.0.348.tar installatiebestanden voor vtune. Bestand kopieren naar harde schijf. Dan decompresseren ==>tar -xvf vt_cli_2.0.348.tar vervolgens installatie starten. linux:/vtunebestanden/vt_cli_2.0.348 # ./install Cannot identify your machine type Installation failed. - vtune_cgview_1.0.277.tar installatie voor call graph, een onderdeel van vtune. Kan niet worden geinstalleerd als VTune niet geinstalleerd is. The VTune(TM) Performance Analyzer 2.0 for Linux* must be installed. Installation failed. Please press Enter to continue... OPLOSSING: Remote agents installeren op linux box die toelaten om vanop windows machine die vtune draait de informatie op te halen. setup_rdc.tar file van op windows box op linux box zetten. tar -xvf setup_rdc.tar ./install.sh Which of the following would you like to install? 1. 2. 3. x.
All components VTune(TM) Performance Analyzer Driver Kit VTune(TM) Performance Analyzer Remote Agent for Linux* Quit this install
voor optie 1 gekozen.
verdere installatie: VTune(TM) Performance Analyzer Driver Kit 2.0 is being installed... Note: You may specify a "group" of users that may use the VTune analyzer. If the specified "group" does not exist, it will be created. Any users that may need to use the VTune analyzer should be added to this group. Which "group" of users may use the VTune(TM) Performance Analyzer Driver Kit 2.0? [vtune] : users Error: unable to create new group "users". Please specify a valid group name or press Ctrl-C to exit. Where do you want to install to? Specify directory starting with ' /' . [/opt/intel/vtune] : /vtune_installed -------------------------------------------------------------------------------VTune(TM) Performance Analyzer Driver Kit Sources Installing... Installation successful. --------------------------------------------------------------------------------------------------------------------------------------------------------------VTune(TM) Performance Analyzer Driver Kit Installing... Installation successful. --------------------------------------------------------------------------------
VTune(TM) Performance Analyzer Driver Kit 2.0 was successfully installed. Please press Enter to continue... [ENTER] VTune(TM) Performance Analyzer Driver Kit 2.0 was successfully installed. Please press Enter to continue... Note: A boot script is provided that will load the appropriate VTune analyzer driver when the Linux* system boots up with a supported kernel. On SuSE* Linux* and similar Linux* distributions, such boot scripts are typically placed in /etc/init.d .
Would you like to install the VTune analyzer driver boot script? (Yes/No) [Yes] : yes Copying /vtune_installed/vdk/vtune to /etc/init.d ... done. Configuring the autoload of VTune analyzer driver for runlevels 2 through 5 ... done. ERROR: Unsupported platform "x86_64" ... exiting.
Installation is complete. Please press Enter to continue... [ENTER] The VTune(TM) Performance Analyzer Remote Agent for Linux* is being installed...
Note: Performance tuning, by its nature, collects large amounts of data and hence the product requires creating a common directory for global data. The default directory will be /vtune_installed/rdc/global_data. If this is acceptable please just hit enter or type in the full path of the directory at the prompt. Ensure that the chosen path on disk has adequate space for all users. Where do you want to create directory for global data? Specify directory starting with ' /' . [/vtune_installed/rdc/global_data] :
Note: VTune(TM) Performance Analyzer Remote Agent for Linux* requires a user to be a member of the "users" group. If users and groups on this system are administered via NIS (Network Information System) we suggest that you contact your system administrator to add users to this group. However you can add local users to the "users" group at this time or users can be added later. Would you like to add local users at this time? (Yes/No) [No] : Yes Note: Please specify the login name of any local user you wish to add to the "users" group or just enter when done: user1 Successfully added "user1" to group "users" Note: Please specify the login name of any local user you wish to add to the "users" group or just enter when done: root
Successfully added "root" to group "users" Note: Please specify the login name of any local user you wish to add to the "users" group or just enter when done: Note: To uninstall the VTune(TM) Performance Analyzer Remote Agent for Linux* please run "/vtune_installed/bin/uninstall_rdc.sh" file. VTune(TM) Performance Analyzer Remote Agent for Linux* was successfully installed. Please press Enter to continue... Dan kom je terug bij installatie menu en kies je ' Quit this install' Wil vtserver starten, maar krijg volgende error: linux:/vtune_installed/bin # ./vtserver ERROR: Unsupported platform "x86_64" ... exiting. meer informatie vind over Remote Linux* Data Collection vind je hier: http://www.intel.com/software/products/vtune/vpa/docs/users_guide.htm#SupportedPlatforms suse versie 8.0 32bit ==> dit wel. een gekozen.
VTune remote agents op zelfde manier geinstalleerd en hier werkt Hier heb ik wel het standaard installatie path gekozen, en niet zelf
suse versie 9.0 64bit==> hier werkt vtune remote agents niet (zie paar lijnen hoger...), eens uninstalleren, en herinstalleren. Werkt nog altijd niet, de error "Unsupported platform "x86_64" ... exiting." doet vermoeden dat er de versie van het 64 bit platform niet ondersteund. De linux versie kan het probleem niet zijn, want dit stond op de website: This software has been tested with Red Hat* Linux* 7.3, 8, 9, Advanced Server 2.1, Enterprise Linux* 3.0, and SuSE* Linux* 8.2, 9.0, Enterprise Server 8 and may work on other Linux* distributions. Installatie van remote_agents verloopt goed, enkel bij het starten is er het probleem. Installatie van VTune (van bijgeleverde cd-rom) faalt: linux:/vtunebestanden/vt_cli_2.0.348 # ./install Cannot identify your machine type Installation failed. VTune remote agent als volgt starten:
32bitdb2:/opt/intel/vtune/bin # ./vtserver Setting up ISM environment ... ISM_DATA_DIR=/opt/intel/vtune/rdc/global_data/ISM ISM_INST_DIR=/opt/intel/vtune/rdc/shared/bin ISM_TEMP_DIR=/tmp/ISM_tmp Setting up Callgraph environment ... __Bistro_Exit_Signal__=12 __Bistro_MASTER_PROJECT_PATH__=/opt/intel/vtune/bin BSERVER_TEMP_DIRECTORY=/opt/intel/vtune/bin/.bistro_server BSERVER_CACHE_DIRECTORY=/tmp/vtune_*/Cache CLASSPATH=.:/opt/intel/vtune/rdc/analyzer/bin Setting up Sampling environment ... VTUNE_LINUX_KERNEL_LOAD_ADDRESS=0xC0100000 VTUNE_LINUX_KERNEL_SIZE=0x1CDCDC VTUNE_LINUX_KERNEL_FILENAME=/boot/vmlinux-2.4.19-64GB-SMP Setting up Remote Data Collection environment ... PATH=/opt/intel/vtune/rdc/shared/bin:/opt/intel/vtune/rdc/analyzer/bin:/sbin:/ usr/sbin:/bin:/usr/bin/:/usr/local/sbin:/usr/local/bin:/usr/local/gnu/bin:/usr/s bin:/bin:/usr/bin:/sbin:/usr/X11R6/bin:. LD_LIBRARY_PATH=/opt/intel/vtune/rdc/shared/bin:/opt/intel/vtune/rdc/analyzer/ bin: DATA_DIRECTORY=/opt/intel/vtune/bin 000 03/11/05 09:27:15 ======================================================== 000 03/11/05 09:27:15 000 03/11/05 09:27:15 VTune(TM) Performance Analyzer Remote Agent for Linux* 000 03/11/05 09:27:15 Copyright(C) 2003, Intel Corporation, All Rights Reserved 000 03/11/05 09:27:15 000 03/11/05 09:27:15 -- System Information -------000 03/11/05 09:27:15 number of CPUs: 4 000 03/11/05 09:27:15 CPU speed: 3056 MHz 000 03/11/05 09:27:15 000 03/11/05 09:27:15 -- Remote Agent -------------000 03/11/05 09:27:15 server version: v0.9974 000 03/11/05 09:27:15 000 03/11/05 09:27:15 -- Sampling Collector -------000 03/11/05 09:27:15 driver version: v0.920 000 03/11/05 09:27:15 library version: v0.865 000 03/11/05 09:27:15 000 03/11/05 09:27:15 -- Callgraph Collector ------000 03/11/05 09:27:15 library version: v0.91 000 03/11/05 09:27:17 000 03/11/05 09:27:17 -- ISM Agent Proxy ----------000 03/11/05 09:27:17 library version: v0.1r 000 03/11/05 09:27:17 000 03/11/05 09:27:17 server on 32bitdb2.local (192.168.0.1) 000 03/11/05 09:27:17
000 03/11/05 09:27:17 server listening on port 50000 000 03/11/05 09:27:17 000 03/11/05 09:27:17 server is ready ... Om af te sluiten gebruik je gewoon ctrl-c. Connecten met vtune vanop mijn pc: nieuw project aanmaken, sampling, ... kiezen, en verder remote, en ip geven ipv localhost. Als de vtserver niet draait op linux server, zal je niet kunnen connecten! Het is dus niet zo dat remote collector data opslaat die je achteraf kan afhalen. Bij starten loopt vtune ongeveer vast => docs raadplegen op http://www.intel.com/software/products/vtune/vpa/docs/users_guide.htm#starting linux logs: er is een map /var/log/vtund waarschijnlijk aangemaakt voor de logs van vtune maar de map is leeg. In de help file van vtune is ook informatie te vinden:
Enabling the Remote Agent Linux* System In order to collect data remotely, you must enable the Linux* system for data collection.
To collect data on a remote Linux target system: On the Linux system: Log in as root user. If the remote Linux agent has not been installed, obtain the setup_rdc.tar file from the VTune analyzer install CD and copy it to the Linux system unpack the setup_rdc.tar file: tar -xf setup_rdc.tar run the installer: /bin/sh ./install.sh If the ability to do remote Linux sampling is desired, then the sampling driver must be loaded in the kernel prior to starting the remote agent. To check if the driver is already loaded, type /sbin/lsmod | grep vtune_drv. If no output is shown from this command, then type /opt/intel/vtune/analyzer/drivers/insmod-vtune to load the appropriate sampling driver for your kernel. If this fails, then you may need to build a sampling driver for your kernel. See /opt/intel/vtune/analyzer/drivers/src/README for details. Start the remote agent, /opt/intel/vtune/bin/vtserver -d /path/to/data/directory where optional argument -d /path/to/data/directory specifies where to store transient (but potentially large) performance data. If this option is not given, then the current working directory is used. [Optional] Run a remote file service. For example, Samba service <Samba_service_on_a_Linux__System.htm>. If the Linux machine is configured to export its file system through Samba, then the VTune analyzer will be able to access source files from that machine during source drill-down. Otherwise, users will have to manually transfer source files over from the Linux machine to the Windows* machine.
On the controlling machine running on a Windows* operating system: Install the VTune analyzer. Configure the data collector to collect data from the Linux system.
Notes •
• •
To setup and troubleshoot configuration settings for remote data collection on your Linux system, follow the instructions in the documents, <users_guide.htm>, <sampling_faq.htm>, and
. These files are located in the /opt/intel/vtune/doc/remote directory on your Linux system and are packaged with the VTune analyzer for Linux. Use the Call graph wizard to configure an Activity for remote call graph data collection . Use the Sampling wizard to configure an Activity for remote sampling data collection <Sampling.chm::/using_remote_sampling.htm>.
Vtune liep NIET vast, terwijl het samplen gebeurt is de cpu usage van de windows pc gewoon heel hoog, en de applicatie reageert traag, ook kan he teen tijd duren, afhankelijk van welke data je allemaal verzamelt. Als je wil op diepere niveau’s gaan kijken heb je toegang nodig tot bestanden op de linux server, ofwel kan je ze delen, ofwel kopieren naar je windows server en het working path in vtune aanpassen. Aan einde van data verzamelen(=begin analyzeren) volgende warning:
RVA: Relative Virtual Address nog niet opgelost ----------------------------------Op witte server vtune installeren (32 bit suse 8.x). Vraagt naar license dus moet eerst licens software installeren van cdrom. Witte server wil cd-rom niet mounten dus files vanop cdrom op ftp gezet.
Vraagt naar license als we VTune willen installeren, en moet daarom flexlm software installeren (…license management) Installation Directory /home/user1/vtunebestanden/vt_cli_2.0.348/flexlm32 (current directory) Server License File (none; do not configure server) Andere nuttige informatie: *** Perform Installation *** The installation will now be performed. Do not interrupt the installation process at this time. Messages will be printed detailing the status of the installation process. *** Note: installing files *** Note: making symbolic links for lmutil *** Note: the license server can be started by using this command: /home/user1/vtunebestanden/vt_cli_2.0.348/flexlm32/lmgrd.intel.rc This command can be invoked from /etc/rc.d (etc.) during system start-up to start the server. *** Note: It is STRONGLY recommended not to start the server as root for security reasons. WAAR IS DE LICENSE FILE ????? error: /opt/intel/vtune/bin/./vtserver Setting up ISM environment ... ISM_DATA_DIR=/opt/intel/vtune/rdc/global_data/ISM ISM_INST_DIR=/opt/intel/vtune/rdc/shared/bin ISM_TEMP_DIR=/tmp/ISM_tmp Setting up Callgraph environment ... __Bistro_Exit_Signal__=12 __Bistro_MASTER_PROJECT_PATH__=/home/user1/vtunebestanden/vt_cli_2.0.348/fle xlm32 BSERVER_TEMP_DIRECTORY=/home/user1/vtunebestanden/vt_cli_2.0.348/flexlm32/ .bistro_server BSERVER_CACHE_DIRECTORY=/tmp/vtune_*/Cache CLASSPATH=.:/opt/intel/vtune/rdc/analyzer/bin Setting up Sampling environment ... VTUNE_LINUX_KERNEL_LOAD_ADDRESS=0xC0100000
VTUNE_LINUX_KERNEL_SIZE=0x1CDCDC VTUNE_LINUX_KERNEL_FILENAME=/boot/vmlinux-2.4.19-64GB-SMP Setting up Remote Data Collection environment ... PATH=/opt/intel/vtune/rdc/shared/bin:/opt/intel/vtune/rdc/analyzer/bin:/sbin:/usr/sbin:/bin :/usr/bin/:/usr/local/sbin:/usr/local/bin:/usr/local/gnu/bin:/usr/sbin:/bin:/usr/bin:/sbin:/usr/ X11R6/bin:. LD_LIBRARY_PATH=/opt/intel/vtune/rdc/shared/bin:/opt/intel/vtune/rdc/analyzer/bin: DATA_DIRECTORY=/home/user1/vtunebestanden/vt_cli_2.0.348/flexlm32 000 03/11/05 15:54:06 ======================================================== 000 03/11/05 15:54:06 000 03/11/05 15:54:06 VTune(TM) Performance Analyzer Remote Agent for Linux* 000 03/11/05 15:54:06 Copyright(C) 2003, Intel Corporation, All Rights Reserved 000 03/11/05 15:54:06 000 03/11/05 15:54:06 [FATAL] invalid data directory "." 000 03/11/05 15:54:06 Please specify a valid data directory that is accessible 000 03/11/05 15:54:06 to you ... exiting. Oplossing: naar directory gaan waar vtserver bestand zich bevindt.