how to reduce innodb table size?

yes, i am using innodb_file_per_table, each table have separate table space however OPTIMIZE TABLE will lock the table during optimization.
Does mysql provide any automatic optimization tool/method?