20K connections is not advised. See this thread:
http://forums.mysql.com/read.php?10,238056,258337
1.5GB/thread -- that is worst case, based on sort_buffer_size, etc. You will rarely have more than a few threads even attempting to use the max. I have found a dozen formulas, all different, none realistic.
20GB buffer pool -- fine. And it leaves a bunch of room in case you really have lots of connections.
Do you have 20K people who might log in? Will they log in at the same time? Will they be executing queries all the time? I doubt all those. And, if you do have such huge numbers, then you probably need lots of slaves, and possibly sharding of the data among multiple masters.