Cara mempercepat situs web hingga 4 kali hanya dengan mengkonfigurasi ulang server

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.








All Articles