version:gorm v1.22.3 Test Scenario:create and drop table between sleep 1s use the code droptable:
// DropTable drop table for models func (c Client) DropTable(values ...interface{}) (Client, error) { tempId := c.writeCSTraceLog() err := c.*gorm.DB.Migrator().DropTable(values...) return c.clone(c.db, tempId), err }
The memory usage keeps increasing. 3 hour From 45M to 300M
the pprof is
when the transparent_hugepage open,like this,the problems will occur Euler:~ # cat /sys/kernel/mm/transparent_hugepage/enabled [always] madvise never Euler:~ # cat /sys/kernel/mm/transparent_hugepage/defrag always defer defer+madvise [madvise] never
when the transparent_hugepage close,like this,The problem no longer occurs. Euler:~ # echo never > /sys/kernel/mm/transparent_hugepage/enabled;echo never > /sys/kernel/mm/transparent_hugepage/defrag Euler:~ # cat /sys/kernel/mm/transparent_hugepage/enabled;cat /sys/kernel/mm/transparent_hugepage/defrag always madvise [never] always defer defer+madvise madvise [never]
I think there may be a memory leak in gorm, and there may be other sql statements that cause such problems. When no table is created, the memory usage increases slowly.