Tối ưu hóa hiệu suất cơ sở dữ liệu của bạn bằng cách sử dụng máy chủ Memcached với các ứng dụng PHP và Python của bạn
Nếu bạn đã từng cảm thấy nỗi đau của việc tải Cơ sở dữ liệu cao gây ra sự chậm lại trong các ứng dụng web của mình và tự hỏi "Có cách nào để giảm độ trễ do các truy vấn DB gây ra không?", Thì câu trả lời cho câu hỏi đó là có. Memcached một daemon bộ nhớ đệm bộ nhớ lân cận thân thiện ở đây để giải quyết tất cả các tai ương của bạn! Lưu trữ DB là một trong những phương pháp đơn giản nhất để giảm tải DB và tăng tốc các ứng dụng web động.
Memcached tự định nghĩa là hệ thống bộ nhớ đệm đối tượng bộ nhớ phân tán, hiệu suất cao, về bản chất chung, nhưng ban đầu được thiết kế để sử dụng trong việc tăng tốc các ứng dụng web động bằng cách giảm tải cơ sở dữ liệu. Được phát triển bởi Brad Fitzpatrick cho trang web LiveJournal của anh ấy vào năm 2003.
Trong bài viết này, chúng ta sẽ xem xét cách cài đặt và cấu hình Memcached trong Ubuntu 20.04 và xem xét các ứng dụng khách dành riêng cho ngôn ngữ của nó.
Điều kiện tiên quyết
Hệ thống được cài đặt với Ubuntu 20.04 với người dùng có quyền quản trị, đó là sudo
người dùng.
Cài đặt
Memcached có sẵn trên kho lưu trữ Ubuntu 20.04 chính thức, ngoài Memcached, chúng tôi cũng sẽ cài đặt một công cụ CLI được gọi là libmemcached-tools
để quản lý Memcached. Chỉ cần chạy lệnh sau để cài đặt cả hai
sudo apt install memcached libmemcached-tools
Xác minh cài đặt
Sau khi cài đặt xong, trình nền Memcached sẽ tự khởi động ở chế độ nền. Để xác minh cài đặt, chúng tôi có thể sử dụng lệnh từ libmemcached-tools
gói để nhận số liệu thống kê máy chủ Memcached. Hoặc chạy
memcstat - máy chủ localhost
hoặc là
memcstat - máy chủ 127.0.0.1
Các memcstat
lệnh hiển thị số liệu thống kê của máy chủ đang chạy. Lệnh trên sẽ cho kết quả hiển thị bên dưới.
Các số liệu thống kê khác nhau như thời gian hoạt động
trong vài giây, phiên bản
và pid
sẽ được hiển thị dưới dạng đầu ra. Tuy nhiên, nếu không có đầu ra nào được hiển thị thì có thể Memcached không chạy. Do đó, bạn phải chạy lệnh sau để khởi động máy chủ Memcached.
sudo systemctl start memcached
Để chạy máy chủ Memcached khi khởi động hệ thống, hãy sử dụng lệnh sau.
sudo systemctl kích hoạt memcached
Định cấu hình Memcached
Nếu bạn đã cài đặt memcached trên chính máy chủ trang web, không cần thay đổi tệp cấu hình vì memcached đã được cấu hình sẵn để hoạt động với localhost.
Mặt khác, nếu bạn đã cài đặt Memcached trên một hệ thống riêng biệt, bạn sẽ cần thay đổi cấu hình để cho phép máy chủ từ xa truy cập vào máy chủ Memcached.
Thiết lập quyền truy cập từ xa cho máy chủ Memcached
Memcached dễ bị tấn công DDoS (Từ chối dịch vụ phân tán). Quy tắc tường lửa không chính xác và các cổng UDP đang mở sẽ khiến máy chủ của bạn mở và dễ bị tấn công DDoS.
Để giảm thiểu rủi ro, chúng tôi có thể tắt giao thức UDP cho Memcached trong cấu hình hoặc chỉ thiết lập tường lửa để cho phép các máy chủ đáng tin cậy.
Ngoài ra, Ubuntu xuất xưởng mà không có cổng TCP hoặc UDP nào mở. Hơn nữa, trình nền tường lửa ufw
(Tường lửa không phức tạp) không được bật theo mặc định.
Chúng tôi sẽ kích hoạt tường lửa và thiết lập cấu hình Memcached để có thể giảm thiểu lỗ hổng DDoS.
Đầu tiên, hãy bật ufw
bằng cách chạy lệnh sau:
sudo systemctl cho phép ufw
Sau đó, bắt đầu ufw
dịch vụ bằng cách chạy lệnh dưới đây:
sudo systemctl start ufw
Với Tường lửa đang chạy, cuối cùng chúng ta cũng có thể thiết lập các quy tắc của tường lửa. Đầu tiên, bật cổng 22 để cho phép kết nối SSH. SSH là cần thiết để truy cập từ xa vào máy chủ mong muốn.
sudo ufw allow 22
Thứ hai, bạn cần biết địa chỉ IP của máy khách, đó là máy chủ lưu trữ ứng dụng web và địa chỉ IP của máy chủ, đó là máy chủ Memcached.
Đối với trường hợp này, chúng ta hãy giả sử IP của Máy khách là 192.168.0.4
và IP máy chủ Memcached sẽ được 192.168.0.5
trên mạng cục bộ.
Vì vậy, để cho phép truy cập từ xa máy chủ memcached tới máy chủ khách, hãy chạy:
sudo ufw cho phép từ 192.168.0.4 đến bất kỳ cổng nào 11211
Thay thế cái 192.168.0.4
với địa chỉ IP ứng dụng khách mong muốn của bạn.
Tiếp theo, chỉnh sửa tệp cấu hình Memcached có tại /etc/memcached.conf
bằng cách chạy nano
yêu cầu.
sudo nano /etc/memcached.conf
Các memcached.conf
tệp cấu hình sẽ mở bằng trình chỉnh sửa nano, hãy tìm -l 127.0.0.1
dòng trong cấu hình và thay thế 127.0.0.1
với IP Máy chủ Memcached của bạn hoặc trong trường hợp này 192.168.0.5
.
Sau khi thay thế báo chí ctrl + o
để ghi vào tệp cấu hình và nhấn enter, nhấn ctrl + x
để thoát khỏi nano.
Khởi động lại máy chủ Memcached và ufw
tường lửa bằng cách chạy lệnh dưới đây.
sudo systemctl khởi động lại memcached ufw
Bây giờ chúng ta đã hoàn tất việc cài đặt và cấu hình máy chủ Memcached trên Ubuntu 20.04.
Kết nối với Máy chủ Memcached
Để sử dụng máy chủ Memcached, bạn sẽ cần cài đặt một ứng dụng khách dành riêng cho ngôn ngữ. May mắn thay, Memcached có hỗ trợ cho nhiều ngôn ngữ phổ biến.
Vì vậy, chúng ta hãy xem cách cài đặt php
và con trăn
ứng dụng khách cho Memcached.
PHP là ngôn ngữ kịch bản phía máy chủ phổ biến nhất và Memcached hầu hết được các nhà phát triển web sử dụng để cải thiện hiệu suất máy chủ của các ứng dụng web được cung cấp bởi PHP.
Để cài đặt hỗ trợ memcached trong php, chạy:
sudo apt install php-memcached
Python cũng có một số thư viện có thể hoạt động và tương tác với máy chủ Memcached, chẳng hạn như pymemcached
hoặc là python-memcached
.
Bạn có thể cài đặt memcached cho python bằng cách chạy các lệnh pip sau:
pip cài đặt pymemcache
pip cài đặt python-memcached
Kết luận, chúng tôi đã xem xét cài đặt, cấu hình và một số ứng dụng khách dành riêng cho ngôn ngữ của Memcached trong Ubuntu 20.04.
Để biết thêm thực tế và cách sử dụng nâng cao của Memcached, hãy xem qua Memcached Wiki.