"Approximately equal" between Sync and Async operations for PageCleaners
The idea is that you want as many of your writes as possible to be asynchronous. On the other hand, pool_data_writes will always be greater than pool_async_data_writes (ditto for index writes). 

The tolerance depends entirely on your system. If each minute you have 3 pool_data_writes and only 1 pool_async_data_writes, you obviously have twice as many synchronous writes as you have asynchronous, but it's hardly a reason for concern. 

If, on the other hand, each minute you have 300K pool_data_writes and 290K pool_async_data_writes, the difference appears to be minor, but you still have 10000/60 ~ 166 waits per second, which is pretty bad.

Please keep in mind that num_iocleaners is not the only configuration parameter that affects the write efficiency: http://www-01.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.admin.perf.doc/doc/c0011381.html?lang=en

PS. In your comment you compare asynchronous reads with writes, which doesn't make much sense.