Optimumkan penggunaan memori MySQL dalam bekas Docker, terutamanya dalam persekitaran yang terhad sumber seperti VPS. Saya baru-baru ini menyelesaikan isu memori pada VPS saya yang menjalankan berbilang bekas WordPress dengan MySQL; penggunaan melahu adalah kira-kira 500MB, dikurangkan kepada sekitar 150MB selepas pengoptimuman yang diterangkan di sini.
Panduan ini menunjukkan cara menyediakan bekas MySQL dalam Docker untuk meminimumkan penggunaan memori. Termasuk contoh fail my.cnf
yang dioptimumkan, fail docker-compose.yml
dengan pemetaan volum dan arahan tentang kebenaran fail.
Langkah 1: Mencipta fail konfigurasi my.cnf
Buat fail bernama mysql-low-memory-my.cnf
dalam direktori pilihan anda pada hos. Fail ini akan mengandungi tetapan yang dioptimumkan untuk mengurangkan penggunaan memori.
<code>[mysqld] # Tamanho do buffer principal do InnoDB innodb_buffer_pool_size = 128M # Tamanho do buffer de chave (MyISAM) key_buffer_size = 8M # Número máximo de conexões simultâneas max_connections = 50 # Cache de threads thread_cache_size = 8 # Tamanho de tabelas temporárias em memória tmp_table_size = 16M max_heap_table_size = 16M # Desativa o Performance Schema performance_schema = 0 # Tamanho do buffer de log innodb_log_buffer_size = 4M # Cache de tabelas abertas table_open_cache = 200</code>
Langkah 2: Menetapkan kebenaran fail
Selepas mencipta fail mysql-low-memory-my.cnf
, tetapkan kebenaran untuk membaca hanya oleh MySQL, menghalang pengubahsuaian oleh proses atau pengguna lain.
<code class="language-bash">chmod 0444 mysql-low-memory-my.cnf</code>
Langkah 3: Mengkonfigurasi docker-compose.yml
Dalam fail docker-compose.yml
, petakan volum yang mengandungi fail konfigurasi ke bekas MySQL:
<code class="language-yaml">services: mysql: image: mysql:8 container_name: mysql-container environment: MYSQL_ROOT_PASSWORD: sua_senha volumes: - './mysql-low-memory-my.cnf:/etc/mysql/conf.d/mysql-low-memory-my.cnf' ports: - "3306:3306"</code>
Langkah 4: Memulakan bekas
Jalankan arahan di bawah untuk memulakan bekas dalam mod tertanggal:
<code class="language-bash">docker compose up -d</code>
Bekas MySQL anda kini berjalan dengan penggunaan memori yang dioptimumkan! Ingat bahawa tetapan ini boleh menjejaskan prestasi pangkalan data, laraskannya mengikut keperluan.
Gunakan arahan berikut untuk memantau penggunaan memori bekas:
<code class="language-bash">docker stats mysql-container</code>
[Repositori dengan kod yang digunakan] (pautan ke repositori)
Atas ialah kandungan terperinci Mengurangkan penggunaan memori MySQL di Docker. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!