Spent couple weeks monitoring and researching, now I can draw a conclusion of the root cause of 333 error in the Citrix/ Terminal Servers. Simply speaking, it is caused by that the servers run out of resources on the 32 bits Windows server due to the limits of paged pool size (650M) and non-paged pool size (250M) on 32 bits Windows .
http://blogs.technet.com/b/markrussinovich/archive/2009/03/26/3211216.aspx
The solutions to this issues are:
1) To fix it, use 64 bits Windows servers which has much bigger paged/non-paged size limits (128G) and 64 bits presentation server/ XenApp server.
2) To mitigate it, add more servers into the farm, decrease the maximum users settings and stop the unnecessary services running on the servers to reduce the server load.
3) Use poolmon and findstr to determine if there are any memory leaking process. Leakings are generally caused by the drivers.