Sunday, 17 February 2013
Mysql Database Configuration, Access settings, Innodb configuration, Log slow query
To bind the server Access point
-----------------------------------
By default it is binded to localhost or 127.0.0.1
Open /etc/mysql/my.cnf fine
So lets say you have 4-5 machines from which you want to access mysql DB from any of the machine, but you do not want anyone from outside to access this,
bind-address will be Local LAN Ip Address.
bind-address = Local LAN IP Address
If you want only local machine to access mysql DB
bind-address = 127.0.0.1
If you want to make it public, remove the bind-address line.
Logging the slow queries
-----------------------------
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 1
Logging the queries which are not using index
---------------------------------------------------
log-queries-not-using-indexes
Changing the InnoDB configuration
----------------------------------------
Buffer Pool Size is the memory which you provide to mysql server program.
innodb_buffer_pool_size=5120M
innodb_lock_wait_timeout=20
innodb_rollback_on_timeout
max_allowed_packet :
The max_allowed_packet variable limits the size of a single result set. In the [mysqld] section, any normal connection can only get that much worth of data in a single query. In mysqldump you typically produce "extended INSERT" queries, where you list multiple rows within the same INSERT command. It's better, then, to have this variable set high. In mysqld max_allowed_packet could be 16M (to be safe, because it doesn't uses memory until required), in mysqldump, max_allowed_packet could be 128M or may be 512M, depends on your machine and requirement.
If you want mysqldump to work fast
---------------------------------------
[mysqldump]
quick
quote-names
max_allowed_packet = 64M (Increase this value, default is 16M)
* You can also take take dump faster by passing as a command argument
$ mysqldump -u root -p --max_allowed_packet=512M dbname > dbname.sql
More Ideas on MySQL performance tuning
1. https://blogs.oracle.com/luojiach/entry/mysql_innodb_performance_tuning_for
2. http://www.mysqlperformanceblog.com/2007/11/01/innodb-performance-optimization-basics/
Labels:
access_setting,
innodb,
log_slow_queries,
mysql,
mysql_performance
Wednesday, 16 January 2013
After setting javaagent in classpath tomcat is not starting
Q. I am trying to use newrelic as javaagent in tomcat on ubuntu machine. When I set the javaagent in classpath, tomcat fails to start. I tried with tomcat5 and tomcat7, its not starting. And I am not getting any log also to check anything.
I tried doing the same with tracelytics javaagent, still its the same, tomcat is not starting. And clue, no log, someone please help.
A. It was happening due to setting of Xss configuration at the time server start in CATALINA_OPTS. I had set it to 128K, somehow it was failing to start. But when I removed that setting, it started, then I changed to 256K then also it started. I am not sure about the inside story, but at least it is working now :)
Friday, 7 December 2012
What to do when you get a new server?
First of all have a big smile mmmmmmmmmmmmmm :)
It's always been a lovely experience to play with a new server, it's like you got a new power source and you start thinking of how to optimize the utilization of the resource, Shall i create distributed memory system or I shall deploy some other components on this machine because it is having higher computation power, woooow. It's fascinating.
Any ways, I am first writing this basic set of commands which will work on Debian systems (and yes Ubuntu is built on Debian architecture), to set the basic things always required on a new machine.
First thing you must do is
$ apt-get update
$ apt-get upgrade
1. Using command apt-cache you can search the package
apt-cache search jdk
2. Using command apt-get you can install the package
$ apt-get install openjdk-6-jdk
$ apt-get install mysql-server
$ apt-get install atop
If you want only mysql client - try this
$apt-get install mysql-client-5.5
3. Set the timezone on debian machine
$ dpkg-reconfigure tzdata
And choose Asia->Kolkata
4. Installing sar on ubuntu
$ sudo apt-get install sysstat
$ sudo vi /etc/default/sysstat
change ENABLED=”false” to ENABLED=”true”
$ sudo vi /etc/cron.d/sysstat
Change 5-55/10 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1
To */2 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1
$ sudo service sysstat restart
$ sar -A
If you want to save the statistics for further analysis to a file use:
$ sudo sar -A > $(date +`hostname`-%d-%m-%y-%H%M.log)
5. apt-get install zip
6. You might want to change the file limits - find details at here
http://nishal-tech.blogspot.in/2013/07/how-to-set-ulimit-in-ubuntudebian-linux.html
6. You might want to change the file limits - find details at here
http://nishal-tech.blogspot.in/2013/07/how-to-set-ulimit-in-ubuntudebian-linux.html
Thursday, 13 September 2012
ActiveMQ Detected missing/corrupt journal files
If you are getting an error while starting ActiveMQ something like this
2012-09-13 18:23:39,823 | ERROR | Failed to start ActiveMQ JMS Message Broker. Reason: java.io.IOException: Detected missing/corrupt journal files. 1 messages affected. | org.apache.activemq.broker.BrokerService | main
java.io.IOException: Detected missing/corrupt journal files. 1 messages affected.
at org.apache.activemq.store.kahadb.MessageDatabase.recoverIndex(MessageDatabase.java:626)
at org.apache.activemq.store.kahadb.MessageDatabase$6.execute(MessageDatabase.java:460)
at org.apache.kahadb.page.Transaction.execute(Transaction.java:728)
at org.apache.activemq.store.kahadb.MessageDatabase.recover(MessageDatabase.java:458)
at org.apache.activemq.store.kahadb.MessageDatabase.open(MessageDatabase.java:315)
at org.apache.activemq.store.kahadb.MessageDatabase.load(MessageDatabase.java:357)
at org.apache.activemq.store.kahadb.MessageDatabase.doStart(MessageDatabase.java:222)
at org.apache.activemq.store.kahadb.KahaDBStore.doStart(KahaDBStore.java:180)
at org.apache.activemq.util.ServiceSupport.start(ServiceSupport.java:53)
at org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter.start(KahaDBPersistenceAdapter.java:186)
at org.apache.activemq.broker.BrokerService.start(BrokerService.java:485)
at org.apache.activemq.xbean.XBeanBrokerService.afterPropertiesSet(XBeanBrokerService.java:60)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
---
solution is :
Sometime kahaDB which is used by activeMQ to persist the message, get either corrupted some message/journal gets corrupted or missing. I got few flag which can can configured in activemq.xml.
<persistenceAdapter>
<kahaDB directory="${activemq.base}/data/kahadb"
ignoreMissingJournalfiles="true"
checkForCorruptJournalFiles="true"
checksumJournalFiles="true" />
</persistenceAdapter>
http://activemq.apache.org/kahadb.html
After setting these flag, start the activemq and watch it print something like this :
2012-09-13 18:33:26,144 | INFO | Recovering from the journal ... | org.apache.activemq.store.kahadb.MessageDatabase | main
2012-09-13 18:33:26,145 | INFO | Recovery replayed 1 operations from the journal in 0.326 seconds. | org.apache.activemq.store.kahadb.MessageDatabase | main
2012-09-13 18:33:29,580 | INFO | Some journal files are missing: [42658] | org.apache.activemq.store.kahadb.MessageDatabase | main
2012-09-13 18:33:29,774 | INFO | Detected missing/corrupt journal files. Dropped 1 messages from the index in 3.59 seconds. | org.apache.activemq.store.kahadb.MessageDatabase | main
Then you are done. If it still does not work. Remove the kahadb/db.data and restart, it will parse the journal to rebuild the index.
I am using 5.4.2 version of ActiveMQ, kahaDB version 3.
:)
2012-09-13 18:23:39,823 | ERROR | Failed to start ActiveMQ JMS Message Broker. Reason: java.io.IOException: Detected missing/corrupt journal files. 1 messages affected. | org.apache.activemq.broker.BrokerService | main
java.io.IOException: Detected missing/corrupt journal files. 1 messages affected.
at org.apache.activemq.store.kahadb.MessageDatabase.recoverIndex(MessageDatabase.java:626)
at org.apache.activemq.store.kahadb.MessageDatabase$6.execute(MessageDatabase.java:460)
at org.apache.kahadb.page.Transaction.execute(Transaction.java:728)
at org.apache.activemq.store.kahadb.MessageDatabase.recover(MessageDatabase.java:458)
at org.apache.activemq.store.kahadb.MessageDatabase.open(MessageDatabase.java:315)
at org.apache.activemq.store.kahadb.MessageDatabase.load(MessageDatabase.java:357)
at org.apache.activemq.store.kahadb.MessageDatabase.doStart(MessageDatabase.java:222)
at org.apache.activemq.store.kahadb.KahaDBStore.doStart(KahaDBStore.java:180)
at org.apache.activemq.util.ServiceSupport.start(ServiceSupport.java:53)
at org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter.start(KahaDBPersistenceAdapter.java:186)
at org.apache.activemq.broker.BrokerService.start(BrokerService.java:485)
at org.apache.activemq.xbean.XBeanBrokerService.afterPropertiesSet(XBeanBrokerService.java:60)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
---
solution is :
Sometime kahaDB which is used by activeMQ to persist the message, get either corrupted some message/journal gets corrupted or missing. I got few flag which can can configured in activemq.xml.
<persistenceAdapter>
<kahaDB directory="${activemq.base}/data/kahadb"
ignoreMissingJournalfiles="true"
checkForCorruptJournalFiles="true"
checksumJournalFiles="true" />
</persistenceAdapter>
http://activemq.apache.org/kahadb.html
After setting these flag, start the activemq and watch it print something like this :
2012-09-13 18:33:26,144 | INFO | Recovering from the journal ... | org.apache.activemq.store.kahadb.MessageDatabase | main
2012-09-13 18:33:26,145 | INFO | Recovery replayed 1 operations from the journal in 0.326 seconds. | org.apache.activemq.store.kahadb.MessageDatabase | main
2012-09-13 18:33:29,580 | INFO | Some journal files are missing: [42658] | org.apache.activemq.store.kahadb.MessageDatabase | main
2012-09-13 18:33:29,774 | INFO | Detected missing/corrupt journal files. Dropped 1 messages from the index in 3.59 seconds. | org.apache.activemq.store.kahadb.MessageDatabase | main
Then you are done. If it still does not work. Remove the kahadb/db.data and restart, it will parse the journal to rebuild the index.
I am using 5.4.2 version of ActiveMQ, kahaDB version 3.
:)
Monday, 23 April 2012
How to do context deployment in tomcat?
It pretty simple, Create a context file like this
<?xml version="1.0" encoding="utf-8"?> <Context path="" docBase="/home/username/applicationbase"> </Context>
and save it as example.xml and put it in $TOMCAT_HOME/conf/Catalina/localhost directory.
Knowledge points:
1. Meaning of the path attribute, if you want to access the application with www.domainname.com/example/*, then path name should be example, if you want to make it default appliction, path should be empty string
2. For me even if I kept the path name empty string, it was not acting as default application then I renamed the example.xml to ROOT.xml and it worked. I am using tomcat5.
3. Even if you keep a war file applicationbase.war in /home/username/ directory it works
You can configure the context better by reading this http://tomcat.apache.org/tomcat-5.5-doc/config/context.html.
Monday, 5 March 2012
How to make use of /home directory on Mac Os
Actually The /home path is auto_mounted but not used for anything. Edit the file /etc/auto_master and comment out the /home path. Reboot and you can use /home as you wish.
Answer is originally from this Apple thread : https://discussions.apple.com/thread/2073807?threadID=2073807&tstart=0
This works with Mac OS X 10.6.8 (Snow Leopard).
As noted on that forum post, you should also be aware that Time Machine automatically excludes the /home directory and does not back it up.
Tuesday, 13 December 2011
Linux Command for Disk Space
$ du
Command to know the disk space of current directory and all subdirectory in kilo bytes
$ du -s
Summarizes the total size of directory
$ du -c
Prints the grand total of directories, recursively
$ du -a
Prints the size of every file and folder in the directory and subdirectory
$ du -h -c
Prints the grand total in human readable format
$ du / -c | sort -nr | head -n 10
Command to find top 10 directory having maximum disk space
$ du / -a | sort -nr | head -n 10
Command to find top 10 file and folders having maximum size
$ df -lk
Command to know the overall disk space usage of entire HDD
Command to know the disk space of current directory and all subdirectory in kilo bytes
$ du -s
Summarizes the total size of directory
$ du -c
Prints the grand total of directories, recursively
$ du -a
Prints the size of every file and folder in the directory and subdirectory
$ du -h
Prints the size of directory in Human readable format, like 12M, 1.2G$ du -h -c
Prints the grand total in human readable format
$ du / -c | sort -nr | head -n 10
Command to find top 10 directory having maximum disk space
$ du / -a | sort -nr | head -n 10
Command to find top 10 file and folders having maximum size
$ df -lk
Command to know the overall disk space usage of entire HDD
Subscribe to:
Posts (Atom)