If 10 subscribers subscribe to IceStorm with compression ,how many times data will be compressed in Icestorm ?
Ice protocol compression applies to the whole message except the header. So the message will be compressed 10 times if it needs to be sent to 10 subscribers. To avoid this, you will need to compress the data on the publisher side and uncompress it on the subscriber side.
So I should add -z option to the publisher when it connect to ice storm service ?
No, this won't be sufficient. This will enable compression between the publisher and IceStorm but the message will still be un-compressed by IceStorm before being queued to each of the subscribers.
There's currently no way to prevent Ice from un-compressing the message received from the publisher and compressing it again for each subscriber.
The only way to achieve this would be implement the compression of the payload yourself in your publisher or subscriber program.