Step 3 — Adding Authorized Users
To add authenticated users to your Memcached service, it is possible to use Simple Authentication and Security Layer (SASL), a framework that de-couples authentication procedures from application protocols. We will enable SASL within our Memcached configuration file and then move on to adding a user with authentication credentials.
Configuring SASL Support
We can first test the connectivity of our Memcached instance with the command. This will help us establish that SASL and user authentication are enabled after we make changes to our configuration files.
To check that Memcached is up and running, type the following:
You should see output like the following:
Now we can move on to enabling SASL. First, we will add the parameter to . Open the file again:
At the bottom of the file, add the following:
/etc/memcached.conf
Next, find and uncomment the option, which will provide verbose output to . The uncommented line should look like this:
/etc/memcached.conf
Save and close the file.
Restart the Memcached service:
Next, we can take a look at the logs to be sure that SASL support has been enabled:
You should see the following line, indicating that SASL support has been initialized:
We can check the connectivity again, but because SASL has been initialized, this command should fail without authentication:
This command should not produce output. We can type the following to check its status:
will always return the exit code of the last command that exited. Typically, anything besides indicates process failure. In this case, we should see an exit status of , which tells us that the command failed.
Adding an Authenticated User
Now we can download , a package that contains administrative programs for the SASL user database. This will allow us to create our authenticated user:
Next, we will create the directory and file that Memcached will check for its SASL configuration settings:
Add the following to the SASL configuration file:
/etc/sasl2/memcached.conf
In addition to specifying our logging level, we will set to , which tells Memcached that it should use its own password file and verify a plaintext password. We will also specify the path to the user database file that we will create next. Save and close the file when you are finished.
Now we will create a SASL database with our user credentials. We will use the command to make a new entry for our user in our database using the option. Our user will be sammy here, but you can replace this name with your own user. Using the option, we will specify the path to our database, which will be the path we set in :
Finally, we will give the user ownership over the SASL database:
Restart the Memcached service:
Running again will confirm whether or not our authentication process worked. This time we will run it with our authentication credentials:
You should see output like the following:
Our Memcached service is now successfully running with SASL support and user authentication.
Оценка эффективности
Тесты проводились на самом твердотельном накопителе, на самом жёстком диске, а также на жёстком диске и твердотельном накопителе, настроенных как кэш Smart Response Technology с использованием программного обеспечения Intel SRT. Я скажу вам заранее: возвращение к механическому жёсткому диску для установки Windows и выполнения тестов после того, как в течение многих лет не использовались только твердотельные накопители, было мучительно медленным. Вот мой субъективный анекдот для статьи.
Однако мы не тестировали кэширование SSD с помощью программного обеспечения AMD StoreMI, но мы были бы склонны ожидать аналогичных результатов.
Следует отметить, что до тех пор, пока данные не будут фактически кэшированы на SSD, они будут работать с механического диска. Однако, если бы мы предварительно кэшировали всё программное обеспечение, результаты тестов были бы искажены. Чтобы воспроизвести реалистичную среду тестирования, я установил Windows и всё тестовое программное обеспечение на механический привод, а затем установил кеш, как обычно делает пользователь.
Во-первых, давайте посмотрим на некоторые быстрые результаты «мгновенного удовлетворения». Повлияет ли кэширование SSD на скорость копирования файлов? Как насчёт установки новых программ и загрузки Windows?
Тест копирования файлов
Чтобы проверить производительность копирования файлов, мы скопируем установочный каталог Steam размером 22 ГБ с твердотельного накопителя Samsung 830 Series в каждую настройку диска. Это расскажет нам, как влияет реальная скорость записи. Если кэширование SSD используется правильно, оно должно быть примерно таким же, как у выделенного SSD:
Итак, копирование файла с другого диска на кэшированный диск примерно такое же, как копирование на выделенный SSD. Отсюда программное обеспечение продолжит копирование файлов на механический диск, позволяя перезаписывать данные более важными данными.
Установка программы
Затем мы установим программу с одного и того же SSD на каждую настройку диска. Это должно быть похоже на прямую копию файла. В качестве примера мы используем Photoshop CS6:
Ещё раз, кеш позволяет нам устанавливать на диск со скоростью SSD. Как видите, разница огромна: время сокращается более чем вдвое.
Время загрузки Windows
Всем известно, что самое заметное улучшение производительности, которое может дать SSD, — это время загрузки Windows. В то время как механическим дискам требуется больше минуты для загрузки Windows, SSD может сделать это менее чем за 10 секунд — это первое, что замечает большинство пользователей SSD после установки нового диска. Но что, если вы используете кэшированный диск?
После первой перезагрузки системы важные файлы Windows отправляются в кеш, а раздел кеша работает так же, как SSD.
Далее мы приступим к работе и посмотрим, как кэшированный диск работает в реальных офисных приложениях:
Шаг 3: добавление авторизованных пользователей
Для того, чтобы добавить авторизованных пользователей в Memcached, можно использовать SASL (Simple Authentication and Security Layer — простой уровень аутентификации и безопасности). Это фреймворк, который разделяет механизмы аутентификации от прикладных протоколов.
Сначала нужно включить поддержку SASL в конфигурационном файле Memcached, а затем перейти к добавлению пользователя.
Настройка поддержки SASL
Проверьте текущее состояние Memcached, используя команду memcstat. Это нужно для того, чтобы в дальнейшем можно было отследить сделанные изменения.
Чтобы убедиться в том, что сервис Memcached запущен и работает, введите команду:
$ memcstat --servers="127.0.0.1"
Вы должны увидеть примерно вот такой вывод:
Server: 127.0.0.1 (11211) pid: 3831 uptime: 9 time: 1520028517 version: 1.4.25 . . .
Теперь нужно включить SASL. Добавьте параметр -S в конфигурационном файле /etc/memcached.conf. Для этого снова откройте файл:
$ sudo nano /etc/memcached.conf
В конце файла добавьте:
. . . -S
Далее найдите и раскомментируйте опцию -vv, благодаря которой вы будете получать подробный отчет в /var/log/memcached. Раскомментированная строка будет выглядеть вот так:
. . . -vv
Сохраните и закройте файл.
Перезапустите сервис Memcached:
$ sudo systemctl restart memcached
Теперь можно посмотреть логи для того, чтобы убедиться, что поддержка SASL включена:
$ sudo journalctl -u memcached
Вы должны увидеть следующую строку:
. . . Mar 31 20:15:39 memcached systemd-memcached-wrapper: Initialized SASL. . . .
Можно еще раз проверить статус Memcached, но т.к. теперь активен SASL, без аутентификации эта команда не будет выполнена:
$ memcstat --servers="127.0.0.1"
Вы не увидите никакого вывода. Для проверки статуса команды можно ввести команду ниже:
$ echo $?
Она покажет код завершения: любые цифры, кроме 0, говорят о том, что команду выполнить не удалось. В данном случае вы должны увидеть 1, а значит, команда не была выполнена.
Добавление авторизованного пользователя
Теперь можно загрузить пакет sasl2-bin, который содержит программы администрирования базы пользователей SASL. Это позволит создать авторизованного пользователя:
$ sudo apt-get install sasl2-bin
Далее вам нужно создать директорию и файл, который Memcached будет использовать для проверки настроек SASL:
$ sudo mkdir -p /etc/sasl2 $ sudo nano /etc/sasl2/memcached.conf
Добавьте следующие строки в конфигурационный файл SASL:
mech_list: plain log_level: 5 sasldb_path: /etc/sasl2/memcached-sasldb2
Mech_list установлен на plain, это значит, что Memcached будет использовать собственный файл с паролями и сверять текстовый пароль. Также нужно будет указать путь к файлу базы данных пользователя (это будет сделано далее). Сохраните и закройте файл после изменений.
Теперь необходимо создать базу данных SASL с данными пользователя. Для этого используйте команду saslpasswd2 с ключом -c. Использование ключа -f позволит указать путь к базе данных (который также нужен для файла memcached.conf):
$ sudo saslpasswd2 -a memcached -c -f /etc/sasl2/memcached-sasldb2 user
Далее нужно изменить права: пользователь user должен получить права на базу данных SASL.
$ sudo chown memcache:memcache /etc/sasl2/memcached-sasldb2
После этого перезапустите Memcached:
$ sudo systemctl restart memcached
Команда memcstat покажет, работает или нет теперь аутентификация (введите ее со своими данными):
$ memcstat --servers="127.0.0.1" --username=user --password=ваш_пароль
Вывод должен выглядеть примерно вот так:
Server: 127.0.0.1 (11211) pid: 3831 uptime: 9 time: 1520028517 version: 1.4.25 . . .
А значит, Memcached успешно работает с поддержкой SASL и пользовательской авторизацией.
Настройка Memcached на Ubuntu
После установки Memcached запустите службу Memcached и включите ее после перезагрузки системы с помощью следующей команды:
1 |
systemctl start memcached systemctl enable memcached |
Теперь можно проверить состояние службы Memcached с помощью следующей команды:
1 | systemctl status memcached |
Вы должны увидеть что-то врод этого:
1 |
?memcached.service-memcached daemon Loadedloaded(/lib/systemd/system/memcached.service;enabled;vendor presetenabled) Activeactive(running)since Sat2019-07-13061359UTC;13sago Docsmanmemcached(1) Main PID21776(memcached) Tasks10(limit1114) CGroup/system.slice/memcached.service ??21776/usr/bin/memcached-m64-p11211-umemcache-l127.0.0.1-P/var/run/memcached/memcached.pid Jul13061359ubuntu1804 systemd1Started memcached daemon. |
Можете также проверить, работает ли служба Memcached, набрав:
1 | ps aux|grep memcached |
Вы должны увидеть следующее:
1 |
memcache217760.30.24247642880?Ssl061300/usr/bin/memcached-m64-p11211-umemcache-l127.0.0.1-P/var/run/memcached/memcached.pid root220350.00.0131361000pts/S+061400grep—color=auto memcached |
Далее вам нужно будет настроить Memcached для более сложных настроек. Для этого откройте файл , как показано ниже:
1 | nano/etc/memcached.conf |
Измените следующие строки в соответствии с вашими потребностями:
1 |
# Default connection port is 11211 #Define the maximum number of Memory can be used by Memcached deamon. |
Сохраните и закройте файл, затем перезапустите сервисы Memcached, чтобы изменения вступили в силу.
1 | systemctl restart memcached |
2: Защита Memcached
Чтобы убедиться, что экземпляр Memcached прослушивает локальный интерфейс 127.0.0.1, нужно проверить настройку по умолчанию в конфигурационном файле /etc/memcached.conf. Текущая версия Memcached, которая поставляется с Ubuntu и Debian, включает параметр –l для определения локального интерфейса, что предотвращает dos-атаки. Нужно убедиться, что он установлен правильно.
Откройте файл /etc/memcached.conf:
Чтобы проверить настройку интерфейса, найдите следующую строку в файле:
Если вы видите значение по умолчанию -l 127.0.0.1, тогда изменять эту строку нет необходимости. Если вы измените этот параметр, чтобы открыть другой интерфейс, тогда также неплохо было бы отключить UDP, поскольку он, скорее всего, будет использоваться в атаках типа «отказ в обслуживании». Чтобы отключить UDP (оставив TCP без изменений), добавьте следующий параметр в конец этого файла:
Сохраните и закройте файл.
Перезапустите сервис Memcached:
Убедитесь, что Memcached привязан к локальному интерфейсу и прослушивает только TCP-соединения:
Это подтверждает, что memcached привязан к адресу 127.0.0.1 и использует только TCP.
Step 3 – Verify Memcache Setup
Use the following command to check and verify that Memcached service is running properly on your system. This will show you the current statstics of your Memcached server. So the values may be differ that below results.
echo "stats settings" | nc localhost 11211
STAT maxbytes 134217728 STAT maxconns 1024 STAT tcpport 11211 STAT udpport 11211 STAT inter 127.0.0.1 STAT verbosity 0 STAT oldest 0 STAT evictions on STAT domain_socket NULL STAT umask 700 STAT growth_factor 1.25 STAT chunk_size 48 STAT num_threads 4 STAT num_threads_per_udp 4 STAT stat_key_prefix : STAT detail_enabled no STAT reqs_per_event 20 STAT cas_enabled yes STAT tcp_backlog 1024 STAT binding_protocol auto-negotiate STAT auth_enabled_sasl no STAT item_size_max 1048576 STAT maxconns_fast no STAT hashpower_init 0 STAT slab_reassign no STAT slab_automove 0 STAT lru_crawler no STAT lru_crawler_sleep 100 STAT lru_crawler_tocrawl 0 STAT tail_repair_time 0 STAT flush_enabled yes STAT hash_algorithm jenkins STAT lru_maintainer_thread no STAT hot_lru_pct 32 STAT warm_lru_pct 32 STAT expirezero_does_not_evict no END
Типы технологии HDD
Существуют три типа жёстких дисков: магнитные, твердотельные (SSD) и гибридные. Обсудим их кратко:
Магнитные жёсткие диски
В этих дисках используются вращающиеся магнитные диски, известные как пластины, и механический рычаг, который записывает и считывает данные с помощью процесса намагничивания. Данные могут храниться на круговых частях диска, известных как дорожки, которые можно разделить на различные секторы, содержащие блоки данных. Хотя они могут быть медленнее, чем твердотельные накопители, но они очень доступны и имеют большую ёмкость.
Твердотельные накопители (SSD)
Твердотельные накопители — это самые быстрые типы жёстких дисков и хранилищ данных со скоростью передачи данных, превышающей 550 мегабайт и выше. Отсутствие движущихся частей обеспечивает большую надёжность и исключает любую возможность повреждения данных или снижения производительности из-за вибрации и ударов. Диски могут допускать нарушение доступа к данным за миллисекунду, что сокращает время загрузки, запуск приложений и ускоряет работу системы.
Гибридные жёсткие диски
Гибридные жёсткие диски или жёсткие диски — это комбинации обоих ранее обсуждавшихся дисков с использованием флеш-памяти и пластин. Они хранят часто используемые данные во флэш-памяти, что обеспечивает более высокую скорость работы с файлами, тогда как остальные могут храниться на пластине. Если говорить о цене, они намного дороже, чем магнитные диски, но дешевле, чем твердотельные накопители.
Step 4 – Install Memcached PHP Module
Now install latest PHP from PPA on your Ubuntu system. If you have already installed PHP on your system, just skip PHP installation commands below.
sudo add-apt-repository ppa:ondrej/php sudo apt-get update sudo apt-get install -y php php-dev php-pear libapache2-mod-php
Now install PHP Memcached module on your system. The below command will also do the required configuration.
sudo apt-get install -y php-memcached
After completing the installation, you must restart the Apache service.
sudo service apache2 restart
Check if Memcache php extension is enabled and working properly. Create a info.php file using following code
PHP
<?php
phpinfo();
?>
1 2 3 |
<?php phpinfo(); ?> |
Now access info.php on the web interface and search for Memcache, You will get the result like below.
Удаленный доступ
При неправильной настройке Memcached можно использовать для выполнения атаки распределенного отказа в обслуживании (DDoS). Если вы хотите разрешить удаленный доступ к вашему серверу Memcached, вам нужно настроить брандмауэр и разрешить доступ к UDP-порту Memcached 11211 только от доверенных клиентов.
В следующем примере предполагается, что вы хотите подключиться к серверу Memcached через частную сеть. IP-адрес сервера — а IP-адрес клиента —
Ubuntu поставляется с инструментом настройки брандмауэра, который называется UFW. По умолчанию UFW установлен, но не включен. Перед включением брандмауэра UFW сначала добавьте правило, разрешающее входящие соединения SSH:
Разрешить оценку с IP-адреса удаленного клиента:
Включите UFW с помощью:
Как только ваш брандмауэр настроен, следующим шагом является редактирование конфигурации Memcached и настройка службы Memcached для прослушивания интерфейса частной сети сервера:
Для этого откройте файл конфигурации :
Найдите строку, которая начинается с и замените на IP-адрес сервера .
Перезапустите сервис Memcached, чтобы изменения вступили в силу:
Теперь вы можете подключиться к серверу Memcached из удаленного местоположения.
1: Установка пакетов Memcache
На сервере lamp01 установите демон Memcached и PHP-модуль Memcache.
PHP имеет два пакета: php5-memcache и php5-memcached (обратите внимание на «d» в конце). В данном руководстве будет использоваться первый пакет, php5-memcache, поскольку он занимает меньше места и не имеет зависимостей
Чтобы узнать об остальных различиях данных пакетов, перейдите по данной ссылке.
Сервис Memcached прослушивает только локальный хост (127.0.0.1). Чтобы принимать соединения частной сети, это нужно изменить. Откройте конфигурационный файл:
Найдите следующую строку:
Замените локальный хост (127.0.0.1) персональным IP-адресом сервера lamp01 (10.1.1.1).
Перезапустите сервис memcached.
Выполните эти инструкции на остальных серверах, заменив локальный хост соответствующим персональным IP-адресом сервера:
lamp02
lamp03
Не забудьте перезапустить сервис memcached на остальных серверах.
Различные типы жёстких дисков?
Было изобретено четыре различных типа накопителей: Serial ATA, PATA, SCSI и SSD. Самые ранние диски использовали PATA, который относится к типу интерфейса, используемого для соединения вашего компьютера с жёстким диском.
Около 40 или 80 ленточных кабелей использовались для параллельной передачи данных в 16-битные карманы. Эта система дисков PATA может быть научно обоснована для современных дисков.
Последовательный ATA или SATA
Жёсткие диски SATA теперь заменили PATA из-за его улучшенной производительности. Они могут передавать данные намного быстрее (более 150 из 600 мегабайт), в отличие от PATA (133 мегабайта), который потребляет очень мало энергии (250 мВ, чем 5 В), а кабели SATA более гибкие и тонкие.
Интерфейс малой компьютерной системы или SCSI
SCSI позволяет подключать различные периферийные устройства, такие как принтеры, жёсткие диски, компакт-диски, сканеры и многое другое. Приводы интерфейса малых компьютерных систем могут быть легко подключены как внутри, так и снаружи.
Твердотельные накопители или SSD
Твердотельные накопители — это новейшие типы накопителей, которые не состоят из движущихся частей. Это делает их менее восприимчивыми к какому-либо повреждению. Они используют микросхемы флэш-памяти вместо хранения данных и предлагают более быстрый доступ к данным. В наши дни они довольно распространены в ноутбуках. SSD-накопители также используются для мобильных переводов. Имеет общую совместимость как флешка. Используется дополнительный провод, обеспечивающий высокую совместимость с другими устройствами.
Теперь давайте продолжим и проверим типы технологий, используемых в жёстких дисках:
Установка memcache
Установка memcache выполняется в несколько действий.
Для начала используйте apt-get, чтобы установить memcached.
sudo apt-get install memcached
Затем нужно установить php-pear – репозиторий, в котором хранится memcache.
sudo apt-get install php-pear
Если на вашем сервере нет компилятора, скачайте инструменты build-essential:
sudo apt-get install build-essential
В завершение используйте PECL (PHP Extension Community Library) для установки memcache:
sudo pecl install memcache
На вопрос «Enable memcache session handler support?» нужно ответить yes, нажав enter во время установки.
Завершив установку, внесите memcached в memcache.ini:
echo "extension=memcache.so" | sudo tee
смотрим в /etc/php5/conf.d/memcache.ini файл memcache.ini
Теперь программа Memcache установлена и готова к работе.
Самый быстрый веб-сервер
Будет хорошей практикой использовать NGINX в качестве веб-сервера, как самостоятельно, так и в паре с Apache. «Голый» Apache при большом количестве посетителей не выдерживает никакой критики по скорости работы и нагрузочной способности.
Связка NGINX плюс Apache является достаточной для большинства сайтов. Но если ваш сайт работает на PHP, то можно еще немного его ускорить используя только NGINX и режим PHP-FPM.
Не все сайты будут работать по такой схеме, некоторые нужно поднастроить. WordPress, к счастью, поддерживает такой вариант работы из коробки. И этим всегда нужно пользоваться.
Как очистить кэшированную оперативную память
Удалите неиспользуемые приложения
Все неиспользуемые приложения, особенно те, которые добавляются в автозагрузку, попадают в память. В системе множество программ, которые пользователи не используют, кэшируются, занимают ОЗУ. Вспомните только не убираемую автозагрузку uTorrent в Windows 10.
Запретите использование данных для открытия приложений после перезапуска или обновления. В новой версии параметр назыв. Автоматически сохранять мои перезапускаемые приложения при выходе из системы и перезапускать их после входа.
Много писали о тонкой настройке автозапуска программ Windows 10. Перейдите в расположение Параметры > Приложения > Автозагрузка. И выключите запуск всех ненужных программ перетягиванием ползунков.
Отключение ненужных служб
В системе с каждым обновлением становиться всё больше и больше служб. Хотя для обычного пользователя далеко не все они нужны. Смотрите, как отключить на примере службы криптографии. Более подробно: оптимизация и ускорение Windows 10 для слабых ноутбуков.
Откройте управление службами выполнив команду services.msc в окне Win+R. Теперь достаточно изменить тип запуска ненужной службы на Отключено. Внимательно читайте описание службы, которую Вы отключаете и смотрите её зависимости.
Очистка оперативной памяти
Самый простой способ очистки оперативной памяти — это перезагрузка компьютера. Все данные, которые кэшируются непосредственно в ОЗУ будут очищены. Включение компьютера повторно покажет ситуацию с количеством занятой памяти.
Можно воспользоваться различным софтом для очистки оперативной памяти. В ближайшем будущем такая функциональность будет непосредственно в ОС. Смотрите подробней: как очистить оперативную память на Windows 10.
Заключение
- Значение кэшировано — это объём оперативной памяти, который не используется запущенными программами, занятый кэшированными данными с диска. В большинстве случаев, это те процессы, которые сейчас не используются и находятся в режиме ожидания.
- В диспетчере задач или мониторе ресурсов много памяти кэшировано? Не стоит нервничать. Это ускоряет процесс запуска приложений и открытий различных файлов. Можно с уверенностью утверждать, при необходимости пространства эта память освобождается.
- Можете включить файл подкачки — использование пространства на диске, если недостаточно оперативной памяти. Возможно, даже станет больше доступно ОЗУ. Самый надёжный вариант решения задачи, это добавление дополнительных планок оперативной памяти.
Итоги
Данное руководство рассказывает, как ускорить извлечение данных из БД при помощи подключения ее к memcache. Но имейте ввиду: кэш – это не склад данных (что и является причиной мощности memcache). Потому, используя memcache, не ожидайте, что это заменит базу данных, поскольку memcache хранит данные только в течение заданного промежутка времени для заданного ключа. То есть, по истечении установленного интервала времени необходимая информация будет удалена из кэша. Потому исходная база данных является обязательным условием надежной работы сервера.
Тем не менее, memcache – очень полезная программа, которая может во многом повысить производительность сервера.