要计算整个数据导入的总体耗时,首先需要考虑多个因素,包括:
- 单批次处理的时间:每个线程处理1000条数据的时间,包括从Excel中读取数据和插入到数据库中的时间。
- 并发线程数:同时运行的线程数对性能有直接影响,尤其是多线程处理时的瓶颈,如CPU、I/O、数据库连接池等。
- 总批次数:一共需要处理的批次数量。
- 线程池并发处理的效率:线程数不能无限增加,线程上下文切换、数据库连接、CPU核数等都会影响并发处理的效率。
- 其他系统资源的使用:服务器的内存、CPU、I/O等资源需要分配给其他应用,因此不能让批处理任务独占所有资源。
1. 服务器资源配置
- CPU:4核
- 内存:8GB,总堆内存为4GB(JVM)。
- 新生代与老年代的比例为1:2,意味着新生代分配大约1.33GB,老年代分配2.67GB。
- 服务器上有其他应用需要运行,假设应用使用大约2GB左右的内存。
2. 数据量与批次划分
- 总数据量:120万行。
- 每批次处理量:每个线程一次处理1000条数据。
- 线程数:1