Cấu hình cơ bản Memcache


14

Tôi đã cài đặt memcache cho một trang web Drupal với phần mở rộng pecl memcached. Tất cả đều chạy tốt nhưng tôi vẫn đang vật lộn với các cài đặt cấu hình.

Chẳng hạn, làm theo lời khuyên trên drupal.org

You should probably lock down the memcache server so that it only listens for 
connections from the hosts that need to be served, as the default is that 
memcache listens to connections from all addresses. 
So, to close that hole, edit /etc/sysconfig/memcached with:

OPTIONS="-l ${HOSTIP}"

Vấn đề là tôi không có tệp này trên máy chủ của mình, trong mọi trường hợp không phải ở vị trí này. Một số bài viết khác đã đề cập đến /etc/memcached.conf nhưng tôi cũng không thể tìm thấy tệp này.

Xem xét rằng / etc / sysconfig / memcached hoặc /etc/memcached.conf không thoát trên máy chủ của tôi, tôi có thể tạo chúng một cách an toàn không? Có thể đặt các tệp này ở một nơi khác không, trong trường hợp nào tôi nên tìm hoặc có cách nào để tìm thông tin đó không?

Cuối cùng, bất kỳ tài nguyên, hướng dẫn hoặc liên kết tài liệu sẽ được đánh giá rất cao. Tôi đã duyệt Wiki trang web của memcache và chỉ có thể tìm thấy một vài bài viết có liên quan cho người mới bắt đầu.


1
Các hướng dẫn drupal là không chính xác. Các -lquy định về lựa chọn mà giao diện memcached sẽ lắng nghe, không có máy chủ sẽ được phục vụ.
Wayne Conrad

Câu trả lời:


17

Bạn đã không cho chúng tôi biết về hệ điều hành / phân phối của bạn. Ngoài ra, bạn đã không cho chúng tôi biết bạn đã cài đặt memcached như thế nào.

Thông thường, bạn sẽ nhận được một tệp cấu hình mẫu /etc/khi bạn cài đặt memcached bằng apt-getcác hệ thống dựa trên debian và rpmhoặc yumdưới redhat, fedora hoặc centos.

Nếu bạn đã cài đặt nó từ nguồn, bạn có thể không nhận được tệp mẫu bên dưới /etc/(Tôi không tự cài đặt memcached từ nguồn). Tuy nhiên, bạn có thể tìm tệp cấu hình mẫu trong thư mục nguồn đã giải nén.

Dù sao, bạn có thể sử dụng locate memcached.confđể tìm kiếm một trong hệ thống của bạn. Bạn cần làm sudo updatedbtrước đó để cập nhật bộ đệm tìm kiếm.

Đây là tập tin cấu hình từ hệ thống của tôi. Bạn co thể sử dụng no:

# Run memcached as a daemon. This command is implied, and is not needed for the
# daemon to run. See the README.Debian that comes with this package for more
# information.
-d

# Log memcached's output to /var/log/memcached
logfile /var/log/memcached.log

# Be verbose
# -v

# Be even more verbose (print client commands as well)
# -vv

# Start with a cap of 64 megs of memory. It's reasonable, and the daemon default
# Note that the daemon will grow to this size, but does not start out holding this much
# memory
-m 64

# Default connection port is 11211
-p 11211
# Run the daemon as root. The start-memcached will default to running as root if no
# -u command is present in this config file
-u memcache

# Specify which IP address to listen on. The default is to listen on all IP addresses
# This parameter is one of the only security measures that memcached has, so make sure
# it's listening on a firewalled interface.
-l 127.0.0.1

# Limit the number of simultaneous incoming connections. The daemon default is 1024
# -c 1024

# Lock down all paged memory. Consult with the README and homepage before you do this
# -k

# Return error when memory is exhausted (rather than removing items)
-M

# Maximize core file limit
# -r

Bạn cũng có thể vượt qua các tùy chọn tương tự từ dòng lệnh.


Debian GNU / Linux 5.0.9 (lenny) / memcached 1.4.10. Tôi đã trải qua rất nhiều bước để cài đặt memcache mà tôi không thể nhớ chắc chắn mình đã làm như thế nào. Nó có thể đã được biên dịch từ nguồn vì các tệp cấu hình này bị thiếu. Tôi biết chắc chắn các phần mở rộng pecl đã được cài đặt từ nguồn, đơn giản vì sử dụng pecl không hoạt động. Nhìn vào thư mục nguồn, tôi không thể biết tệp cấu hình mẫu là gì ...
PatrickS

@PatrickS: Tôi đã cập nhật câu trả lời của mình.
Khaled

Tôi đã kết thúc việc tạo /etc/init.d/memcached bằng cách sử dụng các tùy chọn dòng lệnh ở trên để định cấu hình memcache
PatrickS

11

Mặc định (CentOS) / etc / sysconfig / memcached:

PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""

Tập lệnh init (CentOS) /etc/init.d/memcached:

...
if [ -f /etc/sysconfig/memcached ];then
        . /etc/sysconfig/memcached
fi
...

Số tiền trên, nếu tệp tồn tại, 'nguồn' nó (tức là đọc và đánh giá nội dung của nó).

Theo tôi biết, memcached không có tệp cấu hình. Nó sử dụng các tham số dòng lệnh , ví dụ (từ tập lệnh init RHEL / CentOS):

daemon --pidfile ${pidfile} memcached -d -p $PORT -u $USER  -m $CACHESIZE -c $MAXCONN -P ${pidfile} $OPTIONS

(Bạn sẽ lưu ý rằng các biến được xác định ở trên, được sử dụng ở đây).

Do đó, điểm mấu chốt là:

  • Kiểm tra tập lệnh init của bạn - nếu nó chứa một phần tương tự như ở trên (câu lệnh if) thì chắc chắn, hãy tạo tệp phù hợp và đặt các biến thích hợp trong đó.
  • Không có tệp cấu hình - không tạo tệp vì nó sẽ không được sử dụng.

3

Nếu bạn không thể tìm thấy trên CentOS /etc/init.d/memcached, hãy thử điều này:

nano /usr/lib/systemd/system/memcached.service

và thay đổi:

ExecStart=/usr/bin/memcached -u $USER -p $PORT -m $CACHESIZE -c $MAXCONN $OPTIONS

đến:

ExecStart=/usr/bin/memcached -u $USER -p $PORT -m $CACHESIZE -I $MAXITEMSIZE -c $MAXCONN $OPTIONS

Sau khi thêm vào / etc / sysconfig / memcached

MAXITEMSIZE="128m"

Khởi động lại memcached

service memcached restart

Để kiểm tra nếu tham số được thêm vào, hãy thử:

ps aux | grep memcached
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.