Linux系統下祼機安裝mysql8.0和docker mysql 8.0 效能差異對比~

Net碼畜發表於2023-03-14

環境準備

準備兩臺伺服器環境,配置相同,分別安裝Centos7,mysql8.0,docker mysql 8.0

準備測試程式碼

    public class Chat
    {
        public static long Count = 0;
        public Chat() {
        }
        public static void AddChat()
        {
            var context = new IM.Data.MySQLContext();
            while (true)
            {
                var chat = new IM.Data.ChatRecordTb
                {
                    UserId = "F62E97C5-98E0-4473-B933-08D7787382C",
                    UserHeadPortrait = "http://www.baidu.com/2023-3-13/952824521354142234544.jpg",
                    UserName = "測試使用者",
                    TextType = 1,
                    ChatText = "*****************很長的文字**********************",
                    FileSrc = "",
                    ThumbnailSrc = "",
                    CreateTime = DateTime.Now
                };
                context.ChatRecordTb.Add(chat);
                context.SaveChanges();
                context.ChatRecordTb.Entry(chat).State = EntityState.Detached;

                //+1
                Interlocked.Increment(ref Count);
            }
        }
    }

使用ORM框架(EF)進行資料庫操作,ORM部分就不展示,在控制檯進行呼叫

//多執行緒新增,10個執行緒
for (var i = 0; i < 10; i++)
{
    var task = new Task(ConsoleApp1.Chat.AddChat);
    task.Start();
}

while (true)
{
    var startCount = ConsoleApp1.Chat.Count;
    System.Threading.Thread.Sleep(10000);
    var endCount = ConsoleApp1.Chat.Count;
    Console.WriteLine($"10秒一共寫入{endCount - startCount}行條資料,總行數:{endCount}");
}

祼機mysql效能

mysql的效能是隨著配置不同,逞現不同效能,這是的效能是指當前配置下的效能。

應該是硬碟IO達到瓶頸,執行緒多與少己經沒不能引起寫入效能的大性幅提升,平均效能大概在2000條/S

Docker mysql 效能

相同的程式碼在docker下的mysql 相比之下似乎穩定很多, 無論是控制檯資料統計,ESXI的資料統計,都可以看到docker下的mysql 很順滑,同樣CPU消耗明顯略高,資料庫寫入速度大概為2500條/S

結尾

兩者的mysql版本相同均為:8.0.32,相比之下感覺dokcer下寫入更穩定,效能之間似乎沒有什麼明顯的區別。

 

 

相關文章