Jika Anda bekerja dengan situs yang tumbuh secara bertahap - jumlah produk meningkat, lalu lintas dari iklan - maka cepat atau lambat Anda harus beralih ke mode operasi beban tinggi, beban server tinggi. Tapi bagaimana jika situs Anda tidak berkembang, dan server semakin gagal, dan terjadi pemblokiran data? Dengan masalah inilah yang kami hadapi, saat menyelesaikan situs web untuk toko online peralatan pencahayaan dengan lebih dari 100.000 produk.
situasi awal
Proyek ini terletak di server yang memiliki sumber daya yang cukup untuk memastikan pengoperasian situs yang cepat dan lancar, bahkan di bawah beban yang sangat tinggi. Namun, server tidak menanggapi tindakan pengguna atau merespons dengan sangat lambat, segera setelah lalu lintas situs meningkat sedikit.
Menemukan masalah
Kami melakukan audit pengaturan server dan situs, membagi pekerjaan menjadi dua tahap: analisis back-end dan front-end, dan menemukan kecepatan pemuatan halaman yang rendah di back-end - sekitar 80 detik pada halaman yang paling banyak dikunjungi , yang pada akhirnya menyebabkan penurunan konversi yang signifikan.
Kami menemukan bahwa masalah utama adalah cache yang salah konfigurasi dan konfigurasi database.
Akibatnya, rencana aksi empat langkah disusun, yang membantu kami mencapai hasil yang baik. Apa yang telah kita lakukan?
Keputusan
Langkah 1. Pengaturan basis data
MySQL , . , , , SWAP, , , .
2. InnoDB
InnoDB?
InnoDB , MyISAM, . InnoDB .
InnoDB – InnoDB , MyISAM . , , / . , InnoDB .
InnoDB. , :
# InnoDB parameters
innodb_file_per_table
innodb_flush_log_at_trx_commit
innodb_flush_method
innodb_buffer_pool_size
innodb_log_file_size
innodb_buffer_pool_instances
innodb_file_format
innodb_locks_unsafe_for_binlog
innodb_autoinc_lock_mode
transaction-isolation
innodb-data-file-path
innodb_log_buffer_size
innodb_io_capacity
innodb_io_capacity_max
innodb_checksum_algorithm
innodb_read_io_threads
innodb_write_io_threads
1 2 - , .
.
3. Nginx brotli, pagespeed, proxy_buffering
Nginx , , . Nginx , , , Mail.Ru, . , Nginx (proxy_buffering) (proxy_cache), .
Nginx. - , , , . client_max_body_size, Nginx .
4. PHP-FPM Memcache Apache
PHP-FPM - Nginx. , PHP-FPM. , Nginx + Apache.
Apache . , Apache , . Apache, , .
PHP-FPM unix socket. ? Nginx -, . PHP-FPM. , unix socket – PHP-FPM, .
1. 24 3 , 5-8 .
2. .
3. - .
4. 30%, , S, : => => => .
5. front-end . :
webp;
lazyload- ;
.
Kami membuat situs lebih cepat dan memperbaiki masalah pemuatan tanpa mengubah kode. Kecepatan situs memengaruhi banyak indikator: dari keramahan pengguna hingga peringkat situs dalam hasil pencarian, yang pada akhirnya memengaruhi konversi.