-
Notifications
You must be signed in to change notification settings - Fork 2
Install update #56
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
dvalinrh
wants to merge
10
commits into
master
Choose a base branch
from
install_update
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Install update #56
Changes from 3 commits
Commits
Show all changes
10 commits
Select commit
Hold shift + click to select a range
420b904
Update installation and fix mssql
dvalinrh 5a58e1d
Bring in hammerb_scripts
dvalinrh 513ed83
Updates
dvalinrh de9795f
Code review updates from qodo
dvalinrh a9d55ba
Code review updates.
dvalinrh 4b29984
Code review updates.
dvalinrh 982b980
Change password
dvalinrh 1838b42
Code review updates
dvalinrh 28b5d55
Updates from AI code review.
dvalinrh be9d2cd
Cleanup issues from AI code review.
dvalinrh File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -6,6 +6,7 @@ | |
| "bc", | ||
| "git", | ||
| "unzip", | ||
| "wget", | ||
| "zip" | ||
| ], | ||
| "pip": [ | ||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,15 @@ | ||
| { | ||
| "dependencies": { | ||
| "rhel": [ | ||
| "mssql-server", | ||
| "unixODBC-devel", | ||
| "gdb", | ||
| "cyrus-sasl", | ||
| "libatomic", | ||
| "lsof" | ||
| ], | ||
| "pip": [ | ||
| "typing-extensions" | ||
| ] | ||
| } | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,153 @@ | ||
| 1) Make sure you have MariaDB already installed. Use the version that ships with RHEL | ||
|
|
||
| In RHEL8 you will need the rhel8-Buildroot repo | ||
|
|
||
| In RHEL7 you will need the | ||
|
|
||
| yum -y install mariadb.x86_64 mariadb-common.x86_64 mariadb-config.x86_64 \ | ||
| mariadb-devel.x86_64 mariadb-errmsg.x86_64 mariadb-libs.x86_64 mariadb-server.x86_64 mariadb-server-utils.x86_64 | ||
|
|
||
| 2) Install the dev tools and the dependencies | ||
|
|
||
| yum -y install gcc gcc-c++ autoconf automake make libtool \ | ||
| zlib zlib-devel openssl-devel nfs-utils | ||
|
|
||
| mkdir /shak | ||
| mount perf1:/shak /shak | ||
| cd /shak/HammerDB/ | ||
| ./HammerDB-3.2-Linux-x86-64-Install | ||
|
|
||
|
|
||
| cd /usr/local/HammerDB-3.0/ | ||
| cp /shak/HammerDB/tpcc/mariadb/* . | ||
| cp /shak/HammerDB/tpcc/mariadb/my.cnf /etc/my.cnf | ||
|
|
||
| Create directories that are defined in the file | ||
| datadir=/perf1/mysql/data | ||
|
|
||
| In this case, it is /perf1/mysql/data | ||
| If you want to use a storage device, create the file system. | ||
|
|
||
| mkfs -t ext4 /dev/vda | ||
| mkdir /perf1 | ||
| mount /dev/vda /perf1 | ||
|
|
||
| #Create directory and change permissions | ||
|
|
||
| mkdir -p /perf1/mysql/data | ||
| chmod 777 /perf1/mysql/data | ||
|
|
||
| With this version of MariaDB, you need to setup a password for root user | ||
| and use the password during the runs | ||
|
|
||
| # Start instance. This will create base tables | ||
| ### IMPORTANT - This will take some time because the updated my.cnf file creates a bunch of log files so wait for | ||
| ### a couple of minutes | ||
|
|
||
| mysqld_safe --user=root --basedir=/usr --skip-grant-tables & | ||
|
|
||
| ### Wait for 2 minutes atleast depending on the time of the storage or just tail the err file to see if the db is up | ||
|
|
||
| tail -f /perf1/mysql/data/`hostname`.err | ||
|
|
||
| Look for this line - 181130 11:50:04 [Note] /usr/libexec/mysqld: ready for connections. | ||
|
|
||
|
|
||
| # Shutdown database | ||
| mysqladmin -f -uroot -p100yard- shutdown | ||
|
|
||
|
|
||
| # Configure stored procedures ### Important step | ||
| mysql_install_db --defaults-file=/etc/my.cnf | ||
|
|
||
| # Change ownership of the directory to mysql user | ||
| chown -R mysql:mysql /perf1/mysql | ||
|
|
||
| # Restart the database using this command This will run it as mysql user | ||
|
|
||
| mysqld_safe --user=root --basedir=/usr --skip-grant-tables & | ||
|
|
||
| # This command will set up password for root user | ||
|
|
||
| /usr/bin/mysqladmin -u root password '100yard-' | ||
|
|
||
| Copy the required mysql library file libmysqlclient.so.20 to /lib64/mysql directory | ||
|
|
||
| cp /shak/HammerDB/tpcc/mariadb/libmysqlclient.so.20 /lib64/mysql/ | ||
|
|
||
| If the /lib64/mysql directory is missing, create it and copy the file | ||
|
|
||
| # Make sure these lines are in the build_and_run_mariadb.sh script | ||
|
|
||
| LD_LIBRARY_PATH=/lib64/mysql:$LD_LIBRARY_PATH: | ||
| export LD_LIBRARY_PATH | ||
|
|
||
| ### Install Hammerdb kit | ||
| cd /shak/HammerDB/ | ||
|
|
||
| ### Check and install the latest Hammerdb version. There maybe a newer version than the one in the command below | ||
| ./HammerDB-3.2-Linux-x86-64-Install | ||
|
|
||
|
|
||
|
|
||
| # Copy the mariadb kit and run files | ||
| cd /usr/local/HammerDB-3.2/ | ||
|
|
||
| cp /shak/HammerDB/tpcc/mariadb/* . | ||
|
|
||
| ## A new module has helped improve the performance of the tests and it's been added to these new files. But if you decide to | ||
| ## test with the new code, you have to collect new baselines. Do the following steps to use the new tcl files for testing | ||
|
|
||
| cp new_build_mariadb.tcl build_mariadb.tcl | ||
| cp new_runtest_mariadb.tcl runtest_mariadb.tcl | ||
|
|
||
|
|
||
| ## IMPORTANT - This workload needs the IP address of the host where the database is running. Even | ||
| # for local host, it won't take 127.0.0.1. So please update both the .tcl files | ||
|
|
||
| - build_mariadb.tcl | ||
| - runtest_mariadb.tcl | ||
|
|
||
| # Edit this file for user and warehouse count and run it. It will build the schema and run the workload | ||
|
|
||
| ./build_and_run_mariadb.sh | ||
|
|
||
|
|
||
|
|
||
| Below are some of the setting and commands to do the build | ||
|
|
||
| ## Create database with the following command (drop if it's a re-run) | ||
| mysqladmin -f -uroot -p100yard- drop tpcc | ||
| mysqladmin -uroot -p100yard- create tpcc | ||
|
|
||
|
|
||
| ./hammerdbcli | ||
| dbset db mysql | ||
| diset connection mysql_host 10.16.29.121 | ||
| diset connection mysql_port 3306 | ||
| diset tpcc mysql_count_ware 800 | ||
| diset tpcc mysql_partition true | ||
| diset tpcc mysql_num_vu 64 | ||
| diset tpcc mysql_storage_engine innodb | ||
| print dict | ||
| buildschema | ||
|
|
||
|
|
||
| dbset db mysql | ||
| diset connection mysql_host 10.16.29.121 | ||
| diset connection mysql_port 3306 | ||
| diset tpcc mysql_driver timed | ||
| diset tpcc mysql_rampup 2 | ||
| diset tpcc mysql_duration 5 | ||
| vuset logtotemp 1 | ||
| loadscript | ||
| vuset vu 10 | ||
| vucreate | ||
| vurun | ||
|
|
||
|
|
||
| DB size | ||
| 100WH - 8G | ||
| 200WH - 17G | ||
| 500WH - 50G | ||
| 800WH - 70G |
|
dvalinrh marked this conversation as resolved.
Outdated
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,126 @@ | ||
| 1) Make sure you have MariaDB already installed. Use the version that ships with RHEL | ||
|
|
||
| In RHEL8 you will need the rhel8-Buildroot repo | ||
|
|
||
| dnf -y install mariadb.x86_64 mariadb-common.x86_64 mariadb-devel.x86_64 \ | ||
| mariadb-errmsg.x86_64 mariadb-server.x86_64 mariadb-server-utils.x86_64 mysql-libs.x86_64 | ||
|
|
||
| mkdir /shak | ||
| mount perf1:/shak /shak | ||
|
|
||
| cd /shak/HammerDB | ||
| ./HammerDB-3.2-Linux-x86-64-Install | ||
|
|
||
|
|
||
| cd /usr/local/HammerDB-3.2/ | ||
| cp /shak/HammerDB/tpcc/mariadb/* . | ||
| cp /shak/HammerDB/tpcc/mariadb/my.cnf /etc/my.cnf | ||
|
|
||
| Create directories that are defined in the file | ||
| datadir=/perf1/mysql/data | ||
|
|
||
| In this case, it is /perf1/mysql/data | ||
| If you want to use a storage device, create the file system. | ||
|
|
||
| mkfs -t ext4 /dev/vda | ||
| mkdir /perf1 | ||
| mount /dev/vda /perf1 | ||
|
|
||
| #Create directory and change permissions | ||
|
|
||
| mkdir -p /perf1/mysql/data | ||
| chown -R mysql:mysql /perf1/mysql | ||
|
|
||
| systemctl start mariadb.service | ||
|
|
||
| ## Hammerdb uses password to connect to the database so run the following command to setup password for root | ||
|
|
||
| echo "UPDATE mysql.user SET Password=PASSWORD('100yard-') WHERE User='root';" > input | ||
| echo "flush privileges;" >> input | ||
| echo "exit" >> input | ||
|
|
||
| mysql -u root < input | ||
|
|
||
|
|
||
| Copy the required mysql library file libmysqlclient.so.20 to /lib64/mariadb directory | ||
|
|
||
| cp /shak/HammerDB/tpcc/mariadb/libmysqlclient.so.20 /lib64/mariadb/ | ||
|
|
||
| If the /lib64/mariadb directory is missing, create it and copy the file | ||
|
|
||
| # Make sure these lines are in the build_and_run_mariadb.sh script | ||
|
|
||
| LD_LIBRARY_PATH=/lib64/mysql:$LD_LIBRARY_PATH: | ||
| export LD_LIBRARY_PATH | ||
|
|
||
|
|
||
| # Edit this file for user and warehouse count and run it. It will build the schema and run the workload | ||
|
|
||
| ./build_mariadb_tpcc.sh | ||
|
|
||
| Run the workload with run_mariadb_tpcc.sh. To see options run | ||
|
|
||
| ./run_mariadb_tpch.sh -h | ||
|
|
||
|
|
||
| e.g | ||
| ./run_mariadb_tpcc.sh -s "nvme" -u "10 20 40 80 100" | ||
|
|
||
| ./run_mariadb_tpcc.sh -s "iscsi" -u "10" | ||
|
|
||
|
|
||
| ---------------------------------------------------------------------------------------------------------------------------- | ||
| Running Workload with pbench | ||
|
|
||
| If you want to run the workload with pbench harness with a iteration list | ||
|
|
||
| pbench-user-benchmark -C "Maridb_tuned_TP_HTon_40P_256Gmem_with_csv" --iteration-list=./run_params -- ./run_mariadb_tpcc.sh | ||
|
|
||
| where run_params has the following entries | ||
| 10U NVME 10 | ||
| 20U NVME 20 | ||
|
|
||
| If you just want to do one run without the iteration file | ||
|
|
||
| pbench-user-benchmark -C "Maridb_tuned_TP_HTon_40P_256Gmem_with_csv" -- ./run_mariadb_tpcc.sh nvme "10" | ||
|
|
||
|
|
||
|
|
||
| ----------------------------------------------------------------- End of Document -------------------- | ||
| Below are some of the setting and commands to do the build | ||
|
|
||
| ## Create database with the following command (drop if it's a re-run) | ||
| mysqladmin -f -uroot -p100yard- drop tpcc | ||
| mysqladmin -uroot -p100yard- create tpcc | ||
|
|
||
|
|
||
| ./hammerdbcli | ||
| dbset db mysql | ||
| diset connection mysql_host 10.16.29.121 | ||
| diset connection mysql_port 3306 | ||
| diset tpcc mysql_count_ware 800 | ||
| diset tpcc mysql_partition true | ||
| diset tpcc mysql_num_vu 64 | ||
| diset tpcc mysql_storage_engine innodb | ||
| print dict | ||
| buildschema | ||
|
|
||
|
|
||
| dbset db mysql | ||
| diset connection mysql_host 10.16.29.121 | ||
| diset connection mysql_port 3306 | ||
| diset tpcc mysql_driver timed | ||
| diset tpcc mysql_rampup 2 | ||
| diset tpcc mysql_duration 5 | ||
| vuset logtotemp 1 | ||
| loadscript | ||
| vuset vu 10 | ||
| vucreate | ||
| vurun | ||
|
|
||
|
|
||
| DB size | ||
| 100WH - 8G | ||
| 200WH - 17G | ||
| 500WH - 50G | ||
| 800WH - 70G |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,25 @@ | ||
| #!/bin/tclsh | ||
| # | ||
|
|
||
| puts "SETTING CONFIGURATION" | ||
|
|
||
| global complete | ||
| proc wait_to_complete {} { | ||
| global complete | ||
| set complete [vucomplete] | ||
| if {!$complete} {after 5000 wait_to_complete} else { exit } | ||
| } | ||
|
|
||
|
|
||
| dbset db mysql | ||
| diset connection mysql_host 127.0.0.1 | ||
| diset connection mysql_port 3306 | ||
| diset tpcc mysql_count_ware 500 | ||
| diset tpcc mysql_partition true | ||
| diset tpcc mysql_num_vu 50 | ||
| diset tpcc mysql_pass mysql | ||
| diset tpcc mysql_storage_engine innodb | ||
| print dict | ||
| buildschema | ||
| wait_to_complete | ||
| vwait forever |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.