Recent Updates Toggle Comment Threads | Keyboard Shortcuts

  • levin 4:27 am on December 27, 2013 Permalink | Reply  

    drobo mini performance issue 

    I had looking for a portable high capacity storage system for a while and turns out there are two popular in the market. Drobo Mini, and the Pegasus J4 from Promise. I finally grab this drobo mini because of the recent price drop from 660US to 320US… very attractive price!

    Very Slow Overall!

    At the first time, I reuse my existing 2 x 5400rpm Toshiba 1TB harddisk and 2 x WD 5400rpm 500GB harddisk, I inserted them and format it as 8TB target size. Open the blackmagicdesign disk testing tool, the result is ~120MB write / ~60MB read? that is very slow! Then I read the recommendation from drobo website to add a msata SSD for acceleration, so I added a 128GB crucial m4 SSD. Re-run the test without any improvement.

    Getting better in write performance

    Later, I bought two latest Hitachi 7200RPM 1TB harddisk to replace the 500GB WD harddisk, by swapping the disk one by one and wait the rebuild complete, I rerun the test, the result shown ~160MB write / ~75MB read. It still darn slow! why?

    Trying to figure out the root cause

    I’d decide to give it a last try to replace the left by 5400rpm harddisk to the same Hitachi 7200rpm 1TB harddisk, same by swapping one by one and let it rebuild. rerun the test, the result shown ~220MB write / ~90MB read. Still very very slow, even slower the single drive.

    Reset works!!

    When i was really disappointed with no cure to manage it,  I press the reset button in the drobo dashboard, reformating it and rerun the test. Oops!? the result pop up ~210MB write/~260MB read! that is what I’m expecting.

    Slow performance come back

    When i was so exciting and transferred all file (~1TB)  back to the drobo, I rerun the disk test to ensure the drobo is in good shape, however the turn me down again. The read performance drop dramatically again, but not worst as ~90MB read, it still had ~160MB to ~200MB read inconsistently. So I’m going to find out why again. That is troublesome, and no answer in google.

    Format SIZE is somehow do the trick!

    I start to drill into the disk size may affect the performance, I format the drobo as 4 TB , 8TB and 16TB for testing, each time I record the performance after a fresh format and after copy those 1TB data (~200k files). The result as below

    Fresh formatted  (4 x 1TB RAW)

    Formatted Size Write (MB/s) Read (MB/s)
    4GB 231 302
    8GB 213 265
    16GB 209 221

    After 1TB data (~200k files)

    Formatted Size Write (MB/s) Read (MB/s)
    4GB 192 251
    8GB 170 208
    16GB 143 197

    As the above result, you see the more close to raw size the more speed.

     

    SSD accelerator size in comparison

    Many people asking how the accelerator bay SSD size affects the drobo performance, I’d borrowed another 64GB and 256GB Plextor M5 SSD for the comparison, and I’m telling you solidly, there are NO different I can tell in backmagic disk test tool, AJA nor Xbench, don’t spent too much money on this SSD, just 64GB will be fine.

     

     

     
  • levin 2:11 pm on September 5, 2013 Permalink | Reply
    Tags: fujifilm, shutter release, x-m1   

    DIY Fujifilm X-M1 wireless shutter release control 

    Wireless shutter release for X-M1

    Fujifilm X-M1 out of box do not equip a remote shutter remote or capability for third parties. You have only one choice  (RR-90) USB wired remote. As I owned X-E1 in few months ago, X-E1 works with Canon E3 compatible remote shutter release and I found that RR-80 USB (for X-E1) wired remote is a analog signal control (see http://www.trafficshaper.com/RR-80/RR-80.html). Therefore guessing X-M1 will reuse the same mechanism as X-E1, so I tried to figure out the PIN combination to simulate RR-90 and then try to integrate it with a Canon E3 compatible remote shutter release.

    What you need

    1. 2.5mm Jack cable 2. Micro USB Male Plug
    3. Canon E3 CompatibleShutter Release (Wireless/Wired) 4. Soldering tools

    Wiring

    2.5 Jack PIN Micro USB PIN
    Tip(Red) 5
    Ring(White) 4
    Ground(Black or sheild) 1

    Pin explanation

    Operation Combaination
    AF (Haft-Press) Pin1 + Pin 4
    Shutter Release (Full-Press ) Pin5 + Pin 4

    Demo

     
  • levin 5:58 am on March 11, 2013 Permalink | Reply
    Tags: , , Plarail   

    Build up a iPad Plarail Patrol with Arduino + OSC 

    Introduction

    This tutorial give you an idea to build up a iPad controlled Parail. Please read my Arduino OSC step by step howto post if you don’t know how to work with Arduino.

    1. Hardware Setup

    • Show you how they connected together.
    • The network setup
    • Attach the servo on Plarail component(Rail, Station)

    2. Software Setup

    • The exact Arduino coding
    • Sample TouchOSC layout

    1. Hardware Setup

    Let’s take a look the setup diagram, see how this connected.

    • A servo connected to Digital Pin 19, 20, 21
    • Arduino ethernet assigned a IP 192.168.0.178
    • iOS will be assigned a IP 192.168.0.12 by DHCP

    Hardware Components

    Components

    You need the following component to construct your setup (Shown by bottom up) 1. Arduino board (Mega 2560, UNO…etc) 2. Sensor Shield (Optional) 3. Wireless Module or Wireless router (Optional if run with wired Arduino network) 3. Low power consumption servo unit, recommend a mini or micro sized servo. 4. Power supply, for example 7.4v recommend for wireless, lan, servos at the same time. 5. Wireless AP/Router, DHCP enabled. (For iPad)

    Servo extension cable connected to Digital Pin 19,20,21.

    The network cable connecting from the wireless module to lan module. Why? because this module only support wireless serial comm., so it cannot setup to listen network socket. Therefore, I configure the modue as a wireless AP that bridge the LAN interface with my router. you may use any router as you like instead of stacking those module like that. Please read my Arduino OSC step by step howtopost to see how to work with generic router.

    Plarail Component Setup

    You need to work out the servo position with your plarail component, for me, I will just patch it underneath, you may use any skill to make them work together. http://www.youtube.com/watch?v=Hv9IVDAbao0 http://www.youtube.com/watch?v=spidtmUTUuo (More …)

     
  • levin 4:56 am on February 22, 2013 Permalink | Reply
    Tags: , iOS, , servo, wireless   

    Arduino OSC step by step howto 

    Introduction

    This tutorial provide step by step that help you to  setup a OSC ready Arduino which allows you to send instruction to your Arduino wirelessly from your iOS/Android device by using TouchOSC.

    Suppose you have basic knowledge on computer networking, and Arduino, and we are going to cover the following topics.

    1. Hardware Setup

    • Show you how they connected together.
    • The network setup

    2. Software Setup

    • The exact Arduino coding
    • Composing TouchOSC interface
    • TouchOSC Setup on iOS

    3. The Demo

    • Show you the result of the setup

    1. Hardware Setup

    Setup Diagram

    Let’s take a look the setup diagram, see how this connected.

    • A servo connected to Digital Pin 13
    • Arduino ethernet assigned a IP 192.168.0.178
    • iOS will be assigned a IP 192.168.0.12 by DHCP

    Hardware Components

    Components

    You need the following component to construct your setup

    1. Arduino board (Mega 2560, UNO…etc)

    2. Arduino compatible ethernet Shield

    3. Low power consumption servo unit, recommend a mini or micro sized servo.

    4. Power supply, for example 5v, 2A

    5. Wireless AP/Router, DHCP enabled.

    Let’s Hook them up

    Let’s start to hook them shown as below

    Hookup Image

    Signal Pin

    Servo Power Pin

    (More …)

     
  • levin 2:18 am on September 26, 2012 Permalink | Reply
    Tags: roland, v-drum   

    Reborn your Roland CY-8 Cymbals 

    Playing your Roland CY-8 Cymbal time by time, it will becoming lack of sensitivity, you have to hit it very hard to trigger the sound. It is because oxidation is happening on the sensor inside the cymbal pad.

    To fix it in very low cost without replacing a brand new pad, you may just buy a 27mm Piezo Elements Sensor from ebay, and then just replace the sensor disc inside the pad. Using a solder gun, detach the old disc and replace a new one. That’s it. The new disc will work like a charm.

    For the soldering tools, I suggest you to use a ~45W solder gun, beware overheating will damage the disc. Never hold the heat on the disc longer than 5sec.

     
  • levin 4:58 pm on May 14, 2011 Permalink | Reply
    Tags: ipad   

    Enable your iPad 2 Cover Lock/Unlock Option 

    iPad Cover Lock/Unlock missing? Most of you might have noticed that iPad 2 doesn’t shows the iPad Cover Lock/Unlock option in settings. That’s NOT an issue, this option automatically shows up once you attach the smart cover for first time on your iPad.


    Use a piece of magnet, and touch on your iPad right upper side.

    The “iPad Cover Lock / Unlock” option will then show up in “General” Setttings.

    To pretend a smart cover, just stick a little piece of magnet on your foo cover :P

    http://webtrickz.com/ipad-cover-lockunlock-option-missing-in-ipad-2-settings/

     
  • levin 2:07 am on May 7, 2011 Permalink | Reply
    Tags:   

    Firefox / thunderbird font hinting broken after upgrade ubuntu 11.04 

    I was encountered the font hinting/smoothing were broken on firefox/thunderbird after upgrade to ubuntu 11.04, as you see the screenshot, the title has font smoothed but the Menu,URL address and the content dosen’t.

    Having reset everything in gnome by remove “.gnome2″,”.gconf”,”.gconfd” doesn’t help. Finally remove this file “.fonts.conf” in home folder did the trick.

     
  • levin 2:28 am on May 1, 2011 Permalink | Reply
    Tags: , memory, monitoring   

    3 Step to keep track OS memory usage by process 

    Tutorial

    So many people asking how to keep track on the OS memory usage by process, as you know a bit about Physical Memory, Virtual Memory (VSZ), Resident Set Size (RSS), Shared Memory, Paging Memory…etc, counting RSS to determine memory usage is very common way and easier to understand for dummies like me, although it’s not a precise figure while you’re ignoring shared memory, fs cache..etc.
    But anyway this tutorial is starting point to help you monitor the process RSS usage and keep tracking the usage that allows to identify peak/min.

    Alright, you need to create one database or table, and one script and one cron job.

    Step 1 – Create a database for storing stat data

    CREATE DATABASE sysstat DEFAULT CHARACTER SET latin1;
    GRANT INSERT, UPDATE, DELETE, SELECT on sysstat.* to sysstat@'localhost' identified by 'passw0rd';
    USE sysstat;
    CREATE TABLE 'memory' (  'id' int(11) NOT NULL auto_increment,  'date' datetime NOT NULL,  'memory' int(20) NOT NULL,  'process' varchar(300) NOT NULL,  PRIMARY KEY  ('id')) ENGINE=MyISAM AUTO_INCREMENT=21794 DEFAULT CHARSET=latin1;
    

    Step 2 – Script

    Usage:

    To show all memory usage by process

    ./memory_stat.sh usage
    
    [root@vm1 sbin]# ./memory_stat.sh usage
    2011-05-01 01:55:39 16576 /usr/lib/courier-imap/bin/couriertls
    2011-05-01 01:55:39 35576 /usr/lib/courier-imap/bin/imapd
    2011-05-01 01:55:39 38832 /usr/sbin/httpd.worker
    2011-05-01 01:55:39 73100 MailScanner:
    2011-05-01 01:55:39 125632 clamd
    2011-05-01 01:55:39 208964 /usr/libexec/mysqld
    2011-05-01 01:55:39 429720 /usr/bin/php-cgi
    

    To record into database

    ./memory_stat.sh record
    

    To retrieve the usage report

    ./memory_stat.sh report {process} {date - optional} 
    
    [root@vm1 sbin]# ./memory_stat.sh report php "2011-05-01 01"
    php usage report on vm1.dreamerworks.net
    date	memory
    2011-05-01 00:00:01	471588
    2011-05-01 00:05:02	468772
    2011-05-01 00:10:02	470788
    2011-05-01 00:15:01	471392
    2011-05-01 00:20:01	472140
    2011-05-01 00:25:01	469016
    2011-05-01 00:30:02	469016
    2011-05-01 00:35:01	469016
    2011-05-01 00:40:01	472376
    

    To housekeep the database

    ./memory_stat.sh housekeep
    

    memory_stat.sh

    #!/bin/bash
    
    process=`ps aux|awk '{print $11}'|sort|uniq|grep -v -e grep -e awk -e ps -e sort -e uniq`
    date=`date +%Y-%m-%d\ %H:%M:%S`
    database="sysstat"
    dbuser="sysstat"
    password="passw0rd"
    housekeepday="30"
    
    usage(){
    for PS in $process; do
    
    echo "$date `ps aux | grep -- $PS |grep -v grep | awk '{sum +=$6}; END {print sum}'` $PS"
    
    done
    }
    
    
    record() {
    usage > /tmp/usage.log
    mysql -u$dbuser -p$password <<EOF
    use $database;
    `while read date time memory process;
    do
    echo "insert into memory (date,memory,process) values ('$date $time','$memory','$process');"
    done < /tmp/usage.log
    `
    EOF
    
    rm -f /tmp/usage.log
    
    }
    
    housekeep() {
    mysql -u$dbuser -p$password <<EOF
    use $database;
    delete from memory where date < CURRENT_DATE - $housekeepday;
    EOF
    }
    
    
    report() {
    if [ x$1 = "x" ];then
            echo "Usage: $0 [process]"
            exit
    fi
    process=$1
    datetime_arg="AND date like '$2%'"
    echo "$process usage report on `hostname`"
    mysql -u$dbuser -p$password <<EOF
    use $database;
    `
    echo "select date, memory from memory where process like '%$1%' $datetime_arg order by date";
    `
    EOF
    
    }
    
    case $1 in
    	usage)
    	usage | sort -k 3n
    	;;
            housekeep)
            housekeep
            ;;
            record)
            record
            ;;
    	report)
    	report $2 $3
    	;;
            *)
            echo "Usage: $1 (usage|record|housekeep|report [process] [date])"
            ;;
    esac
    
    

    Step 3 – Cron Job

    crontab -e
    0,5,10,15,20,25,30,35,40,45,50,55 * * * *       /usr/local/sbin/memory_stat.sh record
    

    That’s it

    At least, you may tell a bit more about which process is huger one and then you’ll able to narrow down for investigation.

     
c
compose new post
j
next post/next comment
k
previous post/previous comment
r
reply
e
edit
o
show/hide comments
t
go to top
l
go to login
h
show/hide help
shift + esc
cancel