Tải bản đầy đủ (.pdf) (55 trang)

Tối ưu tốc độ backend

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.92 MB, 55 trang )

Tối ưu Backend
Nguyễn Tùng Anh
0986111204


Vấn đề đặt ra 1 website dữ liệu lớn
(5tr-10tr bản ghi) và visit lớn Realtime 2000.


Giải quyết vấn đề nâng cấu hình server


Nâng cấp cấu hình 200tr / server


Mục lục
Cái nhìn tổng quan về tối ưu Backend
I.
II.
III.
IV.
V.
VI.

Mysql
Cache
Php
Opcache
Laravel
Load blacing.



I . Mysql





Đánh index cho tất cả các trường đặt trong where.
Index tốt nhất nên áp dụng cho các field kiểu integer
Áp dụng index cặp cho những query thật sự quan trọng.
Phân tích bằng công cụ explain trong phpmyadmin


II. Cache
Cache - còn được gọi là bộ nhớ đệm, chứa dữ liệu của các phép tính trước đó, nằm chờ để được sử
dụng trong tương lai.

Driver Store
1.
2.
3.
4.
5.

File
Memcached
Redit
Database
Array



II. Cache
config/cache.php


II. Cache
Khi mysql quá tải - slow log liên tục trong những lúc cao điểm.
Time Log = 200ms


II. Cache
Áp dụng linh hoạt tùy từng sản phẩm.


III. Php
Nếu server đang cài đặt: Apache - php module
Cài đặt và chuyển sang : Nginx - PHP-FastCGI


Opcache
Zend OpCache là một extension cho PHP, cung cấp khả năng thực thi các file PHP
nhanh hơn rất nhiều lần bằng cách lưu trữ các mã lệnh PHP đã dịch (pre-compiled)
trong bộ nhớ chia sẻ (shared memory)
File cấu hình: /etc/php.d/opcache.ini
Cách cài đặt: />

Opcache
zend_extension=opcache.so

opcache.use_cwd=1


opcache.enable=1

opcache.validate_timestamps=1

opcache.enable_cli=1

opcache.revalidate_freq=999999999

opcache.memory_consumption=90

opcache.fast_shutdown=1z

opcache.interned_strings_buffer=16
opcache.max_accelerated_files=20000
opcache.max_wasted_percentage=5


Opcache
opcache.revalidate_freq: Sau bao lâu (giây) cache sẽ hết hạn và kiểm tra code nếu code
có gì thay đổi. Đặt giá trị bằng 0 có nghĩa là nó sẽ kiểm tra các file PHP mỗi khi có
request. Giá trị nên đặt bằng 0 vì nó phụ thuộc vào cấu hình phía dưới
opcache.validate_timestamps – Khi nó được bật, PHP sẽ kiểm tra các file sau mỗi
opcache.revalidate_freq giây.
Khi bạn vô hiệu hóa nó, pcache.revaliate_freq cũng được vô hiệu hóa theo. Vì vậy nếu
bạn sửa đổi code, bạn sẽ không thấy sự thay đổi nếu bạn không xóa Clear OPcache đi.
Để VPS có hiệu suất tốt nhất, ta nên để giá trị này bằng 0. Khi bạn edit code, ta chỉ cần
restart hoặc reload php để thay đổi có tác dụng. Trong VPSSIM có tích hợp sẵn chức
năng clear Opcache.



Laravel
Thời gian Booting của 1 dự án


Laravel
Sau khi bật Opcache


Laravel
Cần giảm các package không cần thiết
Thông thường các package được composer.json


Laravel
Đưa các package không cần thiết vào mục:


Laravel
app/Providers/AppServiceProvider.php


Laravel
Sau khi loại bớt các package không cần thiết


Load balancing
Sau khi làm hết tất cả những tối ưu trên mà server vẫn bị quá tải.
Xác định đó là giới hạn vật lý của 1 server cấu hình trung bình.



Load balancing


Load balancing
Cần cấu hình lại code
- Mysql cấu hình master slave !
- Code insert update chỉ thực hiện trên master.


Load balancing
Cấu hình master slave replication.
Tham khảo: a/p/gioi-thieu-ve-mysql-replication-master-slave-bxjvZYwNkJZ
a/p/huong-dan-cai-dat-va-cau-hinh-co-ban-mysql-replication-JQVkVQgNeyd


Load balancing
Laravel mysql cấu hình config master - slave


×