четверг, 6 декабря 2012 г.

Golang

          Небольшая подборка статей/книг для всех люителей языка Go, или тех кто только собирается изучить его:
1. Coding in Go  - несколько статей на тему того как эффективно решать некоторые типичные задачи возникающие при программированиии на Go. Например кэширование значений или автоматическое восстановление процессов.
2. Learniung Go by Miek Gieben  Хорошая книжка для тех кто решил изучить этот замечательный язык.
3. Network Programming with Go  - Еще одна книжка по Go, но уже в формате HTML.

среда, 5 декабря 2012 г.

Magento performance monitoring

    Для того чтобы понимать реальную целесообразность той или иной оптимизации мне давно был нужен инструмент который имитирует активность покупателя при покупке товаров. Основная нагрузка на сайт при этом возникает на этапе выбора товара, так как количество реальных покупателей не превышает нескольких процентов от количества уникальных пользователей.  Поэтому я написал инструмент который эмулирует обход пользователем всех категорий и продуктов на сайте.  Он показывает статистику по каждому запросу в формате аналогичному siege:


HTTP/1.1 200  162.988ms 47355 bytes ==> http://www.beta.butik.ru/zhenskaja-odezhda/topy-i-majki/
HTTP/1.1 200  173.232ms 48667 bytes ==> http://www.beta.butik.ru/zhenskaja-odezhda/brjuki/
HTTP/1.1 200  166.899ms 47204 bytes ==> http://www.beta.butik.ru/zhenskaja-odezhda/brjuki/kapri/
HTTP/1.1 200  176.659ms 48203 bytes ==> http://www.beta.butik.ru/zhenskaja-odezhda/dzhempery-i-svitery/
HTTP/1.1 200  170.251ms 43253 bytes ==> http://www.beta.butik.ru/zhenskaja-odezhda/kupalniki/kupalnyj-kostjum/
HTTP/1.1 200  177.7ms 48763 bytes ==> http://www.beta.butik.ru/zhenskaja-odezhda/futbolki/
HTTP/1.1 200  179.643ms 46227 bytes ==> http://www.beta.butik.ru/zhenskaja-odezhda/shorty-i-bridzhi/

А также суммарную статистику по каждому типу страниц: 
===================================================================
|| Product
===================================================================
Transactions: 262 hits
Availability: 94.66 %
Elapsed time: 14m20.925383s 
Data transferred: 11698965 bytes
Response time: 3.285974744s
Transaction rate: 0.30
Successful transactions: 248
Failed transactions: 0
HTTP error transactions: 14
Longest transaction: 15.342011s 
Shortest transaction: 85.219ms 
===================================================================
|| Category
===================================================================
Transactions: 256 hits
Availability: 100.00 %
Elapsed time: 12m7.691699s 
Data transferred: 11154863 bytes
Response time: 2.842545699s
Transaction rate: 0.35
Successful transactions: 256
Failed transactions: 0
HTTP error transactions: 0
Longest transaction: 15.229138s 
Shortest transaction: 72.136ms 
===================================================================
|| Total stats
===================================================================
Transactions: 518 hits
Availability: 97.30 %
Elapsed time: 26m28.617082s 
Data transferred: 22853828 bytes
Response time: 3.066828343s
Transaction rate: 0.33
Successful transactions: 504
Failed transactions: 0
HTTP error transactions: 14
Longest transaction: 15.342011s 
Shortest transaction: 72.136ms 

Все это добро лежит на гитхабе : https://github.com/yvasiyarov/magento-perfomance-checker
Список опций можно посмотреть вот так: 
Usage of magento-perfomance-checker:
  -magento_base_url="": Magento base url
  -magento_database="magento": Magento database
  -mysql_host="localhost": MySQL host
  -mysql_login="root": MySQL login
  -mysql_password="root": MySQL password
  -mysql_port=3306: MySQL port
  -no_connections=50: Number of parallel connections
  -num_cpu=1: Number of used CPU

Memcached

     Давно искал способ сбрасывать кэш memcached при деплое без использования sudo:
echo "flush_all" | /bin/netcat -q 2 127.0.0.1 11211
    Eще одно - хозяйке на заметку:
watch "echo stats | nc 127.0.0.1 11211" - просмотр статистике по использованию memcached прямо в консоли

iPhone 5 & Ubuntu

        Оказывается если iPhone 5 подключить к Ubuntu через  USB то он показывается как обычная флешка. И никаких iTunes ставить не надо :-) Это порадовало. Но сам iPhone 5 - не фонтан. Не рекомендовал бы переходить с 4S на пятерку.