Apart from very specific cases of systems which have constant memory requirements, there is no way of telling how much resources you will need especially not knowing your load, your data and so on.
Having said that - there are general sizing hints there https://docs.splunk.com/Documentation/Splunk/latest/Capacity/Referencehardware
Additionally, IMHO indexers should not use swap. At all. If you have to reach to disk for "memory", that means you're slowing your I/O which means you're building up your queues which means you're using up even more memory. That's a downhill path. (ok, you can have a very small swap to keep some sleeping system daemons out of active RAM but that's usually not worth the bother).
You haven't mentioned anything about which OS specifically and what else is or may be using resources. Since your system exceeds minimum recommendations I would look for the total package. You may need an OS expert and not a Splunk expert to help track this down.
Thank you for your reply,
1. Splunk uses the Galaxy Kirin V10 SP2 X86 version for the three index nodes
2. The current resource utilization situation is:
Swap parameter vm. swap=30
3. The status is that only 1.6GB of 64GB memory was used, but SWAP used nearly 4GB