2013-10-30

Пятиминутка баз (хранилищ) данных

1. Percona засветилась за пределами MySQL тусовки
http://www.theregister.co.uk/2013/10/07/percona_server_update/
http://www.pcworld.com/article/2054060/percona-challenges-oracle-with-alternate-mysql-release.html
Жаль они не делают сборок MySQL под Windows!

Почему Percona, а не MariaDB:
- несмотря на заявленные оптимизации, у меня локально (Windows 8, 8 CPU, 8GB RAM, slow HDD) показала результаты хуже, чем оригинальный MySQL 
- субъективно MariaDB более серьезный уход от оригинального MySQL
- у знакомых (linux админ хороший, но MySQL знает слабо) не завелась после простой (drop-in) замены, а версия от Percona сразу заработала

Но если Google перейдет на MariaDB - это может представить дело в новом свете.


2. Шикарный онлайн ресурс! Поддерживает карточки-описания различных БД и позволяет разные БД между собой (формальные характеристики вроде поддержки SQL, ACID?, Database model, Developer, подборка свежих ссылок, к сожалению производительность никак не описана) http://db-engines.com/en/systems (пример сравнения http://db-engines.com/en/system/Microsoft+SQL+Server%3BMongoDB%3BMySQL%3BPercona+Server%3BPostgreSQL )

И ещё они сделали рейтинг разных БД (методика описана, напоминает http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html для языков программирования)
http://db-engines.com/en/ranking

2013-10-16

~Online WireShark

Если нужно посмотреть снятый дамп сетевой активности, но нет времени/желания/возможности ставить wireshark, то можно воспользоваться сервисом cloudshark.org

2013-05-20

JMX через ssh-туннель: подключение JVisualVM к удаленному серверу

Примечания
* Иногда может хватить jmx shell console (один jar-ник, работает на сервере в консоли): http://wiki.cyclopsgroup.org/jmxterm.

* посмотреть слушают ли порты и кто:
linux: netstat -l -p -n
windows: netstat -a -b -n

Настраиваем (X=6 или 7)!
  1. скачать catalina-jmx-remote.jar из tomcat.apache.org/download-X0.cgi - Extras - JMX Remote jar в tomcat/lib
  2. в опциях запуска tomcat (tomcat/bin/catalina.sh или /etc/default/tomcatX) в ключ CATALINA_OPTS/JAVA_OPTS добавляем " -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=127.0.0.1 ". Для примера в итоге он может выглядеть так: JAVA_OPTS="-Djava.awt.headless=true -Xmx3400m -XX:+HeapDumpOnOutOfMemoryError -Duser.language=ru -Duser.region=RU -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -XX:+UseCompressedOops -Djava.net.preferIPv4Stack=true -Djava.rmi.server.hostname=127.0.0.1"
  3. в conf/server.xml (там где правим <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" URIEncoding="UTF-8" redirectPort="8443"/>) добавляем <Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="9098" rmiServerPortPlatform="9099"/>
  4. перезапускаем tomcat, проверяем чистоту логов, проверяем занятость портов
  5. в ssh клиенте для надежности настраиваем туннели на обоих портах ;-), проверяем что порты слушаются локально
  6. подключаемся JVisualVM/JConsole используя JMX url вида: service:jmx:rmi://127.0.0.1:9099/jndi/rmi://127.0.0.1:9098/jmxrmi

Источники
- JMX through a ssh tunnel - http://blog.markfeeney.com/2010/10/jmx-through-ssh-tunnel.html
- Connecting remote tomcat JMX instance using jConsole - http://stackoverflow.com/questions/1263991/connecting-remote-tomcat-jmx-instance-using-jconsole
- http://gabenell.blogspot.ru/2010/04/connecting-to-jmx-on-tomcat-6-through.html

2013-03-12

Все опции java

# java -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+PrintFlagsFinal -version [другие опции и аргументы]

http://q-redux.blogspot.ru/2011/01/inspecting-hotspot-jvm-options.html
http://javarevisited.blogspot.ru/2011/11/hotspot-jvm-options-java-examples.html

Версия попроще
# java -XX:+PrintCommandLineFlags -version [другие опции и аргументы]