ProxmoxおよびVirtuozzo 7およびVirtuozzoストレージでのパフォーマンスBitrixの発売







2つの根本的に異なるプラットフォームでのBitrix Startのパフォーマンステスト。 統合Bitrixパフォーマンスパネルを使用して測定します。



一方では、Proxmox 4.4の無料版、SSDディスク上のZFSファイルシステムを使用するLXCコンテナー。



一方、Virtuozzo 7 CT + Virtuozzo Storageのライセンスを取得しています。 このオプションでは、書き込みキャッシュと読み取りキャッシュに通常のSATAディスク+ SSDを使用します。



Virtuozzo 7は強制ライセンスを必要とする商用システムであり、Proxmox 4は無料で使用できますが、技術サポートは必要ありません。



このため、2つのプラットフォームを完全に比較することはもちろん正しくありませんが、

同じハードウェア、同じ構成の仮想マシンとそのサービスを使用してサイトのパフォーマンスを向上させる方法を知るのは興味深いことです。この記事は役に立つかもしれません。








このテストの目的は、Proxmox LXCおよびVirtuozzo 7コンテナー内にインストールされたBitrix Start 16.5.4サイトのパフォーマンスを測定することです。



背景



私たちのチームは、さまざまなWebプロジェクトのサポートに関与しています。



主なタスクは、Webシステムの環境の設計と実装です。 それらの高いパフォーマンスと可用性を監視し、監視してバックアップします。



プロジェクトをサポートする際の重要な問題の1つは、顧客のサイトをホストするホスティングの品質です。 VPSがクラッシュしたり、実行速度が遅くなる状況があります。 明らかな理由もなくサーバーが使用できないか、突然再起動することがあります。

これらの瞬間に、私たちはホスティング会社のテクニカルサポートサービスの人質になり、問題の診断、統計の準備、ホスティングのテクニカルサポートへの情報提供に時間を費やす必要があります。 このような問題の解決策は、数日間続くこともあります。



私たち自身でこの問題を解消するために、私たちはお客様のために小さなホスティングを構築することを決めました。 これを行うために、サーバーを購入し、配置に適したデータセンターの検索を開始しました。 プラットフォームとして、私たちはSelectelに決めました -モスクワのデータセンターのサーバーは中断することなく動作します。 テクニカルサポートは非​​常に迅速に対応し、すべての新たな問題を解決します。



最初に、最も簡単なソリューションを選択しました。OpenVZコンテナーとSSDドライブからのRAIDを備えたProxmox 3に基づいたサーバーを構築するためです。 このソリューションは非常に高速で信頼性が十分でした。



時間が経つと、Proxmox 4が登場し、ZFSと組み合わせて徐々に使用に切り替えました。 すぐにLXCに関連する多くの問題に直面しました。 たとえば、コンテナでexec </dev/tty



を最初に実行しないと、コマンドを実行せずにCentos 6で画面とマルチテールがコンテナで機能しませんでした。



 sed -i -e 's/start_udev/false/g' /etc/rc.d/rc.sysinit
      
      





sshが動作しなかった、pure-ftpdが動作しなかった、など すべてをよく研究して微調整したので、Proxmoxをセットアップして満足しました。



長所から、ZFSレベルの圧縮を使用しました。



  • これにより、ユーザーのために多くのディスクスペースを節約できました。
  • ログなどによるファイルシステムのオーバーフローの問題を解決しました。
  • innodbエンジンを備えたmysqlデータベースがディスクから削除されてもディスク上で減少せず、単に空のブロックで満たされている場合の問題を解消しました。
  • pve-zsyncを使用して、リアルタイムVPSクライアントをサーバーからサーバーに移動できました。


一般に、移行は成功しましたが、困難でした。 すべてがテストサーバーでテストされ、最終的に安全に新しいアーキテクチャに移行しました。



ある時点で、クライアントの仮想マシンとサイトのパフォーマンスを向上させることを考えることが必要になりました。



さまざまな代替案を試し始めました。 テストのために、Virtuozzo 7およびCloud Storageのライセンスを購入しました。 Virtuozzo Storageテストクラスタを構築し、キャッシュをセットアップして、最初のテスト仮想マシンを起動しました。 すべての段階で、 Virtuozzoテクニカルサポートの支援を受けました。



その結果、結果は非常に満足され、顧客を新しいアーキテクチャに移行しました。 次の記事の1つで、実装の主なポイントと、遭遇した落とし穴について説明します。


Proxmox 4.4-5 / c43015a5が最初の被験者として使用されます



サイトは、Proxmoxドライバーを介して、ミラーモードの2つのSSDディスクのzfsプールにあります。



 zpool create -f -o ashift=12 zroot raidz /dev/sdb3 /dev/sda3 zfs set atime=off zroot zfs set compression=lz4 zroot zfs set dedup=off zroot zfs set snapdir=visible zroot zfs set primarycache=all zroot zfs set aclinherit=passthrough zroot zfs inherit acltype zroot
      
      





Proxmoxオプションのその他はすべて完全に標準です。



Virtuozzo 7のオプション:



Virtuozzoリリース7.0.3(550)をハイパーバイザーとして使用し、Virtuozzo 7ストレージをディスクアレイとして使用します。 3つのサーバーがMDSとして使用されます。



  2 avail 0.0% 1/s 0.0% 100m 17d 6h msk-01:2510 3 avail 0.0% 0/s 0.0% 102m 5d 1h msk-03:2510 M 1 avail 0.0% 1/s 1.8% 99m 17d 5h msk-06:2510
      
      





テストベンチでは、2つのシンプルなSATAドライブにチャンクが配置されています



 1025 active 869.2G 486.2G 1187 0 29% 1.15/485 1.0 msk-06 1026 active 796.6G 418.8G 1243 0 17% 1.18/440 0.4 msk-06
      
      





同時に、各チャンクには約166GBの独自のSSDログがあります



 vstorage -c livelinux configure-cs -r /vstorage/livelinux-cs1/data -a /mnt/ssd2/livelinux-cs0-ssd/ -s 170642 vstorage -c livelinux configure-cs -r /vstorage/livelinux-cs2/data -a /mnt/ssd2/livelinux-cs1-ssd/ -s 170642
      
      





クラスタークライアントには、SSD上に約370GBのサイズのローカルキャッシュがあります



 vstorage://livelinux /vstorage/livelinux fuse.vstorage _netdev,cache=/mnt/ssd1/client_cache,cachesize=380000 0 0
      
      





テストクラスターは非レプリケーションモードを使用します。1:1です。 実際のバトルサーバーでは、3:2モードが使用されます。 すべてのデータが3つのクラスターサーバーに同時に保存されるため、2つのクラスターサーバーに障害が発生した場合のデータ損失を回避できます。



BitrixテストVPSには次の特性があります。





テストサーバー機能
SupermicroプラットフォームSYS-6016T-U

Intel Xeon E5620 x 2

12 8GB DDR3-1066、ECC、Reg

2x Intel S3510シリーズ、800GB、2.5インチSATA 6Gb / s、MLC

Hitachi Ultrastar A7K2000 x 2、1 TB、SATA III、7200 rpm、3.5インチ、32 MBキャッシュ


/etc/sysctl.conf
net.netfilter.nf_conntrack_max = 99999999

fs.inotify.max_user_watches = 99999999

net.ipv4.tcp_max_tw_buckets = 99999999

net.ipv4.tcp_max_tw_buckets_ub = 65535

net.ipv4.ip_forward = 1

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_max_syn_backlog = 65536

net.core.somaxconn = 65535

fs.file-max = 99999999

kernel.sem = 1000 256000 128 1024

vm.dirty_ratio = 5

fs.aio-max-nr = 262144

kernel.panic = 1

net.ipv4.conf.all.rp_filter = 1

kernel.sysrq = 1

net.ipv4.conf.default.send_redirects = 1

net.ipv4.conf.all.send_redirects = 0

net.ipv4.ip_dynaddr = 1

kernel.msgmn = 1024

fs.inotify.max_user_instances = 1024

kernel.msgmax = 65536

kernel.shmmax = 4294967295

kernel.shmall = 268435456

kernel.shmmni = 4096

net.ipv4.tcp_keepalive_time = 15

net.ipv4.tcp_keepalive_intvl = 10

net.ipv4.tcp_keepalive_probes = 5

net.ipv4.tcp_fin_timeout = 30

net.ipv4.tcp_window_scaling = 0

net.ipv4.tcp_sack = 0

net.ipv4.tcp_timestamps = 0

vm.swappiness = 10

vm.overcommit_memory = 1


nginx -V
nginxバージョン:nginx / 1.11.8

gcc 4.8.5 20150623(Red Hat 4.8.5-4)(GCC)により構築

OpenSSL 1.0.1e-fipsで構築2013年2月11日

TLS SNIサポートが有効

引数の設定:--prefix = / etc / nginx --sbin-path = / usr / sbin / nginx --modules-path = / usr / lib64 / nginx / modules --conf-path = / etc / nginx / nginx conf --error-log-path = / var / log / nginx / error.log --http-log-path = / var / log / nginx / access.log --pid-path = / var / run / nginx pid --lock-path = / var / run / nginx.lock --http-client-body-temp-path = / var / cache / nginx / client_temp --http-proxy-temp-path = / var / cache / nginx / proxy_temp --http-fastcgi-temp-path = / var / cache / nginx / fastcgi_temp --http-uwsgi-temp-path = / var / cache / nginx / uwsgi_temp --http-scgi-temp-path = / var / cache / nginx / scgi_temp --user = nginx --group = nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module- -with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_sl_module_with_module -with-http_sub_modul e --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt = '-O2 -g-パイプ-Wall -Wp、-D_FORTIFY_SOURCE = 2 -fexceptions -fstack-protector-strong --param = ssp-buffer-size = 4 -grecord-gcc-switches -m64 -mtune = generic '


/etc/nginx/nginx.conf
worker_processes auto;

timer_resolution 100ms;

pid /run/nginx.pid;

thread_poolのデフォルトスレッド= 32 max_queue = 655360;

イベント{

worker_connections 10000;

multi_accept on;

epollを使用します。

}

http {

/etc/nginx/mime.typesを含めます。

default_type application / octet-stream;

log_format main '$ host-$ remote_user [$ time_local] "$ request"' '$ status $ body_bytes_sent "$ http_referer"' '"$ http_user_agent" "$ http_x_forwarded_for"';

log_format defaultServer '[$ time_local] [$ server_addr] $ remote_addr($ http_user_agent)-> "$ http_referer" $ host "$ request" $ status';

log_format downloadsLog '[$ time_local] $ remote_addr "$ request"';

log_formatカウンター '[$ time_iso8601] $ remote_addr $ request_uri?$ query_string';

access_log off;

access_log / dev / null main;

error_log / dev / null;



connection_pool_size 256;

client_header_buffer_size 4k;

client_max_body_size 2048m;

large_client_header_buffers 8 32k;

request_pool_size 4k;

output_buffers 1 32k;

postpone_output 1460;

gzip on;

gzip_min_length 1000;

gzip_proxied any;

gzip_typesテキスト/プレーンテキスト/ cssアプリケーション/ jsonアプリケーション/ x-javascriptテキスト/ xmlアプリケーション/ xmlアプリケーション/ xml + rssテキスト/ javascriptテキスト/ x-javascriptアプリケーション/ javascript;

gzip_disable "msie6";

gzip_comp_level 6;

gzip_http_version 1.0;

gzip_vary on;



sendfile on;

aioスレッド。

directio 10m;

tcp_nopush on;

tcp_nodelay on;

server_tokens off;



keepalive_timeout 75 20;

server_names_hash_bucket_size 128;

server_names_hash_max_size 8192;

ignore_invalid_headers on;

server_name_in_redirect off;



ssl_stapling on;

ssl_stapling_verify on;

リゾルバ8.8.4.4有効な8.8.8.8 = 300秒。

resolver_timeout 10s;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

ssl_ciphers 'AES128 + EECDH:AES128 + EDH';

ssl_session_cache shared:SSL:50m;

ssl_prefer_server_ciphers on;



proxy_http_version 1.1;

proxy_set_header接続 "";

proxy_buffering off;

proxy_buffer_size 8k;

proxy_buffers 8 64k;

proxy_connect_timeout 300m;

proxy_read_timeout 300m;

proxy_send_timeout 300m;

proxy_store off;

proxy_ignore_client_abort on;



fastcgi_read_timeout 300m;

open_file_cache max = 200000非アクティブ= 20s;

open_file_cache_valid 30s;

open_file_cache_min_uses 2;

open_file_cache_errors on;



proxy_cache_path / var / cache / nginx / page levels = 2 keys_zone = pagecache:100m inactive = 1h max_size = 10g;



fastcgi_cache_path / var / cache / nginx / fpm levels = 2 keys_zone = FPMCACHE:100m inactive = 1h max_size = 10g;

fastcgi_cache_key "$スキーム$ request_method $ホスト";

fastcgi_cache_use_staleエラータイムアウトinvalid_header http_500;

fastcgi_ignore_headers Cache-Control Expires Set-Cookie;



fastcgi_buffers 16 16k;

fastcgi_buffer_size 32k;

アップストリームmemcached_backend {server 127.0.0.1:11211; }



real_ip_header X-Real-IP;

proxy_set_header Host $ host;

proxy_set_header X-Real-IP $ remote_addr;

proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for;

すべて許可;

サーバー{

80の再利用ポートをリッスンします。

}

include /etc/nginx/conf.d/*.conf;

}


/etc/nginx/sites-enabled/start.livelinux.ru.vhost
アップストリームstart.livelinux.ru {

キープアライブ10;

サーバー127.0.0.1:82;

}

サーバー{

80を聞きます。

server_name start.livelinux.ru www.start.livelinux.ru;

root /var/www/start.livelinux.ru/web;

error_page 404 = @fallback;

場所@fallback {

proxy_pass start.livelinux.ru;

proxy_set_header Host $ host;

proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for;

proxy_set_header X-Real-IP $ remote_addr;

}

error_log /var/log/ispconfig/httpd/start.livelinux.ru/nginx_error.log error;

access_log /var/log/ispconfig/httpd/start.livelinux.ru/nginx_access.logの組み合わせ;



location〜* ^。+ \。(ogg | ogv | svg | svgz | eot | otf | woff | mp4 | ttf | css | rss | atom | js | jpg | jpeg | gif | png | ico | zip | tgz | gz | rar | bz2 | doc | xls | exe | ppt | tar | mid | midi | wav | bmp | rtf)$ {

root /var/www/start.livelinux.ru/web;

access_log off;

有効期限は30日です。

}

場所^〜/エラー{root / var / www; }



場所/ {

index index.php index.html index.htm;

proxy_set_header X-Real-IP $ remote_addr;

proxy_set_header Host $ host;

proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for;

proxy_pass start.livelinux.ru;

}

include /etc/nginx/locations.d/*.conf;

}


php -v
PHP 5.6.29(cli)(ビルド:2016年12月9日07:40:09)

Copyright©1997-2016 The PHP Group

Zend Engine v2.6.0、著作権©1998-2016 Zend Technologies

ionCube PHP Loaderを使用(有効)+ ioncube24.comからの侵入保護(未設定)v5.1.2、著作権©2002-2016、ionCube Ltd.

Zend OPcache v7.0.6-dev、Copyright©1999-2016、Zend Technologies


/etc/php.ini
[Php]

エンジン=オン

short_open_tag =オン

asp_tags =オフ

精度= 14

output_buffering = 4096

zlib.output_compression =オフ

implicit_flush =オフ

unserialize_callback_func =

serialize_precision = 17

disable_functions =

disable_classes =

realpath_cache_size = 4096k

zend.enable_gc =オン

Exposure_php = off

max_execution_time = 600

max_input_time = 600

max_input_vars = 100000

memory_limit = 512M

error_reporting = E_ALL&〜E_NOTICE&〜E_STRICT&〜E_DEPRECATED

display_errors =オフ

display_startup_errors =オフ

log_errors =オン

log_errors_max_len = 1024

ignore_repeated_errors =オフ

ignore_repeated_source =オフ

report_memleaks =オン

track_errors =オフ

html_errors =オン

variables_order = "GPCS"

request_order = "GP"

register_argc_argv =オフ

auto_globals_jit =オン

post_max_size = 500M

auto_prepend_file =

auto_append_file =

default_mimetype = "text / html"

default_charset = "UTF-8"

always_populate_raw_post_data = -1

doc_root =

user_dir =

enable_dl =オフ

cgi.fix_pathinfo = 1

file_uploads =オン

upload_max_filesize = 500M

max_file_uploads = 200

allow_url_fopen =オン

allow_url_include =オフ

default_socket_timeout = 60

[CLIサーバー]

cli_server.color =オン

[日付]

date.timezone =ヨーロッパ/モスクワ

[Pdo_mysql]

pdo_mysql.cache_size = 2000

pdo_mysql.default_socket =

[Phar]

[メール機能]

sendmail_path = / usr / sbin / sendmail -t -i

mail.add_x_header =オン

[SQL]

sql.safe_mode =オフ

[ODBC]

odbc.allow_persistent =オン

odbc.check_persistent =オン

odbc.max_persistent = -1

odbc.max_links = -1

odbc.defaultlrl = 4096

odbc.defaultbinmode = 1

[インターベース]

ibase.allow_persistent = 1

ibase.max_persistent = -1

ibase.max_links = -1

ibase.timestampformat = "%Y-%m-%d%H:%M:%S"

ibase.dateformat = "%Y-%m-%d"

ibase.timeformat = "%H:%M:%S"

[MySQL]

mysql.allow_local_infile =オン

mysql.allow_persistent =オン

mysql.cache_size = 2000

mysql.max_persistent = -1

mysql.max_links = -1

mysql.default_port =

mysql.default_socket =

mysql.default_host =

mysql.default_user =

mysql.default_password =

mysql.connect_timeout = 60

mysql.trace_mode =オフ

[MySQLi]

mysqli.max_persistent = -1

mysqli.allow_persistent =オン

mysqli.max_links = -1

mysqli.cache_size = 2000

mysqli.default_port = 3306

mysqli.default_socket =

mysqli.default_host =

mysqli.default_user =

mysqli.default_pw =

mysqli.reconnect =オフ

[mysqlnd]

mysqlnd.collect_statistics =オン

mysqlnd.collect_memory_statistics =オフ

[OCI8]

[PostgreSQL]

pgsql.allow_persistent =オン

pgsql.auto_reset_persistent =オフ

pgsql.max_persistent = -1

pgsql.max_links = -1

pgsql.ignore_notice = 0

pgsql.log_notice = 0

[Sybase-CT]

sybct.allow_persistent =オン

sybct.max_persistent = -1

sybct.max_links = -1

sybct.min_server_severity = 10

sybct.min_client_severity = 10

[bcmath]

bcmath.scale = 0

[セッション]

session.save_handler = redis

session.save_path = "tcp://127.0.0.1:6379"

session.use_strict_mode = 0

session.use_cookies = 1

session.use_only_cookies = 1

session.name = SESSIONID

session.auto_start = 0

session.cookie_lifetime = 0

session.cookie_path = /

session.cookie_domain =

session.cookie_httponly =

session.serialize_handler = php

session.gc_probability = 1

session.gc_divisor = 1000

session.gc_maxlifetime = 1440

session.referer_check =

session.cache_limiter = nocache

session.cache_expire = 180

session.use_trans_sid = 0

session.hash_function = 0

session.hash_bits_per_character = 5

url_rewriter.tags = "a = href、area = href、frame = src、input = src、form = fakeentry"

[MSSQL]

mssql.allow_persistent =オン

mssql.max_persistent = -1

mssql.max_links = -1

mssql.min_error_severity = 10

mssql.min_message_severity = 10

mssql.compatibility_mode =オフ

mssql.secure_connection =オフ

[片付け]

tidy.clean_output =オフ

[石鹸]

soap.wsdl_cache_enabled = 1

soap.wsdl_cache_dir = "/ tmp"

soap.wsdl_cache_ttl = 86400

soap.wsdl_cache_limit = 5

[sysvshm]

[ldap]

ldap.max_links = -1


/etc/php.d/10-opcache.ini
zend_extension = opcache.so

opcache.enable = 1

opcache.enable_cli = 1

opcache.memory_consumption = 512

opcache.interned_strings_buffer = 8

opcache.max_accelerated_files = 130987

opcache.fast_shutdown = 1

opcache.blacklist_filename = / etc / php.d / opcache * .blacklist


/etc/php-fpm.d/bitrix.conf
[bitrix]

listen = /var/lib/php5-fpm/web1.sock

listen.owner = web1

listen.group = apache

listen.mode = 0660

ユーザー= web1

グループ= client1

pm =動的

pm.max_children = 10

pm.start_servers = 2

pm.min_spare_servers = 1

pm.max_spare_servers = 5

pm.max_requests = 0

chdir = /

env [ホスト名] = $ホスト名

env [TMP] = / var / www / clients / client1 / web1 / tmp

env [TMPDIR] = / var / www / clients / client1 / web1 / tmp

env [TEMP] = / var / www / clients / client1 / web1 / tmp

env [パス] = / usr / local / sbin:/ usr / local / bin:/ usr / sbin:/ usr / bin:/ sbin:/ bin

php_admin_value [open_basedir] =なし

php_admin_value [session.save_path] = "tcp://127.0.0.1:6379"

php_admin_value [upload_tmp_dir] = / var / www / clients / client1 / web1 / tmp

php_admin_value [sendmail_path] = "/ usr / sbin / sendmail -t -i -f webmaster@biz.livelinux.ru"

php_admin_value [max_input_vars] = 100000

php_admin_value [mbstring.func_overload] = 2

php_admin_value [mbstring.internal_encoding] = utf-8

php_admin_flag [opcache.revalidate_freq] =オフ

php_admin_flag [display_errors] = on


httpd -V
サーバーバージョン:Apache / 2.4.6(CentOS)

サーバー構築:2016年11月14日18:04:44

サーバーのモジュールマジックナンバー:20120211:24

ロードされたサーバー:APR 1.4.8、APR-UTIL 1.5.2

使用してコンパイル:APR 1.4.8、APR-UTIL 1.5.2

アーキテクチャ:64ビット

サーバーMPM:prefork

スレッド:いいえ

分岐:はい(可変プロセス数)

でコンパイルされたサーバー...

-D APR_HAS_SENDFILE

-D APR_HAS_MMAP

-D APR_HAVE_IPV6(IPv4マップアドレスが有効)

-D APR_USE_SYSVSEM_SERIALIZE

-D APR_USE_PTHREAD_SERIALIZE

-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT

-D APR_HAS_OTHER_CHILD

-D AP_HAVE_RELIABLE_PIPED_LOGS

-D DYNAMIC_MODULE_LIMIT = 256

-D HTTPD_ROOT = "/ etc / httpd"

-D SUEXEC_BIN = "/ usr / sbin / suexec"

-D DEFAULT_PIDLOG = "/ run / httpd / httpd.pid"

-D DEFAULT_SCOREBOARD = "logs / apache_runtime_status"

-D DEFAULT_ERRORLOG = "logs / error_log"

-D AP_TYPES_CONFIG_FILE = "conf / mime.types"

-D SERVER_CONFIG_FILE = "conf / httpd.conf"


/etc/httpd/conf.modules.d/00-mpm.conf
LoadModule mpm_prefork_moduleモジュール/ mod_mpm_prefork.so

<IfModule mpm_prefork_module>

StartServers 8

MinSpareServers 5

MaxSpareServers 20

ServerLimit 256

MaxClients 256

MaxRequestsPerChild 4000



/etc/httpd/conf.modules.d/00-mutex.conf
ミューテックス・ポシセム

EnableMMAP Off



/etc/httpd/conf.modules.d/10-fcgid.conf
LoadModule fcgid_moduleモジュール/ mod_fcgid.so

FcgidMaxRequestLen 20,000,000


/etc/httpd/conf/sites-enabled/100-start.livelinux.ru.vhost
<ディレクトリ/var/www/start.livelinux.ru>

AllowOverrideなし

すべて拒否する必要があります

<//ディレクトリ>



<VirtualHost *:82>

DocumentRoot / var / www / clients / client1 / web3 / web

ServerName start.livelinux.ru

ServerAlias www.start.livelinux.ru

ServerAdmin webmaster@start.livelinux.ru

ErrorLog /var/log/ispconfig/httpd/start.livelinux.ru/error.log



<ディレクトリ/var/www/start.livelinux.ru/web>

<FilesMatch "。+ \。Ph(p [345]?| T | tml)$">

Sethandlerなし

<// FilesMatch>

オプション+ FollowSymLinks

すべてを許可

すべての付与が必要

<//ディレクトリ>



<ディレクトリ/ var / www / clients / client1 / web3 / web>

<FilesMatch "。+ \。Ph(p [345]?| T | tml)$">

Sethandlerなし

<// FilesMatch>

オプション+ FollowSymLinks

すべてを許可

すべての付与が必要

<//ディレクトリ>



<IfModule mod_suexec.c>

SuexecUserGroup web3 client1

<// IfModule>



<IfModule mod_fastcgi.c>

<ディレクトリ/ var / www / clients / client1 / web3 / cgi-bin>

すべての付与が必要

<//ディレクトリ>



<ディレクトリ/var/www/start.livelinux.ru/web>

<FilesMatch "\ .php [345]?$">

SetHandler php5-fcgi

<// FilesMatch>

<//ディレクトリ>



<ディレクトリ/ var / www / clients / client1 / web3 / web>

<FilesMatch "\ .php [345]?$">

SetHandler php5-fcgi

<// FilesMatch>

<//ディレクトリ>



アクションphp5-fcgi / php5-fcgi virtual

エイリアス/ php5-fcgi /var/www/clients/client1/web3/cgi-bin/php5-fcgi-*-82-start.livelinux.ru

FastCgiExternalServer /var/www/clients/client1/web3/cgi-bin/php5-fcgi-*-82-start.livelinux.ru -idle-timeout 300 -socket /var/lib/php5-fpm/web3.sock -pass -ヘッダー認証

<// IfModule>



<IfModule mod_proxy_fcgi.c>

<ディレクトリ/ var / www / clients / client1 / web3 / web>

<FilesMatch "\ .php [345]?$">

SetHandler "proxy:unix:/var/lib/php5-fpm/web3.sock | fcgi:// localhost"

<// FilesMatch>

<//ディレクトリ>

<// IfModule>



<IfModule mpm_itk_module>

AssignUserId web3 client1

<// IfModule>



<IfModule mod_dav_fs.c>

<ディレクトリ/ var / www / clients / client1 / web3 / webdav>

<ifModule mod_security2.c>

SecRuleRemoveById 960015

SecRuleRemoveById 960032

<// ifModule>



<FilesMatch "\ .ph(p3?| Tml)$">

Sethandlerなし

<// FilesMatch>

<//ディレクトリ>



DavLockDB / var / www / clients / client1 / web3 / tmp / DavLock

<// IfModule>

<// VirtualHost>


10.1.20-MariaDB MariaDBサーバー
シンボリックリンク= 0

default_storage_engine = InnoDB

innodb_file_per_table = 1

innodb_large_prefix = on

datadir = / var / lib / mysql

socket = / var / lib / mysql / mysql.sock

connect_timeout = 600000

wait_timeout = 28800

max_connections = 800

max_allowed_pa​​cket = 512M

max_connect_errors = 10000

net_read_timeout = 600000

connect_timeout = 600000

net_write_timeout = 600000

innodb_open_files = 512

innodb_buffer_pool_size = 2G

innodb_buffer_pool_instances = 4

innodb_file_format = barracuda

innodb_locks_unsafe_for_binlog = 1

innodb_flush_log_at_trx_commit = 2

トランザクション分離= READ-COMMITTED

innodb-data-file-path = ibdata1:10M:自動拡張

innodb-log-file-size = 256M

innodb_log_buffer_size = 32M

スキップ名解決

スキップ外部ロック

skip-innodb_doublewrite

query_cache_size = 128M

query_cache_type = 1

query_cache_min_res_unit = 2K

join_buffer_size = 8M

sort_buffer_size = 2M

read_rnd_buffer_size = 3M

table_definition_cache = 2048

table_open_cache = 100000

thread_cache_size = 128

tmp_table_size = 200M

max_heap_table_size = 200M

log_warnings = 2

log_error = /var/log/mysql/mysql-error.log

key_buffer_size = 128M

binlog_format = MIXED

server_id = 226

sync-binlog = 0

expire-logs_days = 3

max-binlog-size = 1G

ログスレーブ更新

binlog-checksum = crc32

スレーブスキップエラー= 1062,1146

log_slave_updates = 1

slave_type_conversions = ALL_NON_LOSSY

スレーブ並列スレッド= 4

relay-log = / var / log / mysql / mysql-relay-bin

relay-log-index = /var/log/mysql/mysql-relay-bin.index

relay-log-info-file = /var/log/mysql/mysql-relay-log.info

スキップスレーブ開始

optimizer_switch = 'derived_merge = off、derived_with_keys = off'

sql-mode = ""

innodb_flush_method = O_DIRECT_NO_FSYNC

innodb_use_native_aio = 1

innodb_adaptive_hash_index = 0

innodb_adaptive_flushing = 1

innodb_flush_neighbors = 0

innodb_read_io_threads = 16

innodb_write_io_threads = 16

innodb_max_dirty_pages_pct = 90

innodb_max_dirty_pages_pct_lwm = 10

innodb_lru_scan_depth = 4000

innodb_purge_threads = 4

innodb_max_purge_lag_delay = 10000000

innodb_max_purge_lag = 1000000

innodb_checksums = 1

innodb_checksum_algorithm = crc32

table_open_cache_instances = 16

innodb_thread_concurrency = 32

innodb-use-mtflush = ON

innodb-mtflush-threads = 8

innodb_use_fallocate = ON

innodb_monitor_enable = '%'

performance_schema = ON

performance_schema_instrument = '%sync%= on'

malloc-lib = /usr/lib64/libjemalloc.so.1

ポート= 3306



/etc/redis.conf
バインド127.0.0.1

プロテクトモードはい

ポート6379

tcp-backlog 511

タイムアウト0

tcp-keepalive 0

pidfile /var/run/redis/redis.pid

ログレベル通知

ログファイル/var/log/redis/redis.log

データベース16

900を節約1

300 10を節約

60 10000を節約

stop-writes-on-bgsave-errorはい

rdbcompressionはい

rdbchecksumはい

dbfilename dump.rdb

dir / var / lib / redis /

unixsocket /tmp/redis.sock

unixsocketperm 777

スレーブサーバの古いデータはい

スレーブ読み取り専用

repl-diskless-sync no

repl-diskless-sync-delay 5

repl-disable-tcp-nodelay no

スレーブ優先度100

追加のみ

appendfilename "appendonly.aof"

appendfsync everysec

no-appendfsync-on-rewrite no

auto-aof-rewrite-percentage 100

auto-aof-rewrite-min-size 64mb

aof-load-truncated yes

lua-time-limit 5000

slowlog-log-slow-than 10000

slowlog-max-len 128

latency-monitor-threshold 0

通知キースペースイベント ""

hash-max-ziplist-entries 512

hash-max-ziplist-value 64

list-max-ziplist-size -2

list-compress-depth 0

set-max-intset-entries 512

zset-max-ziplist-entries 128

zset-max-ziplist-value 64

hll-sparse-max-bytes 3000

アクティブ再ハッシュはい

client-output-buffer-limit normal 0 0 0

クライアント出力バッファ制限スレーブ256mb 64mb 60

クライアント出力バッファ制限pubsub 32mb 8mb 60

hz 10

aof-rewrite-incremental-fsync yes

maxmemory 32M

maxmemory-policy volatile-lru


パフォーマンステストの結果:



Proxmox 4









Virtuozzo 7









ボーナスとして、Virtuozzo 7、php70のサイト









その結果:



新しいクラウドプラットフォームへの移行により、3台のサーバーへのレプリケーションにより高いデータ可用性が得られましたが、有用なzfsオプションである圧縮が失われました。 Bitrixのテストサイトのパフォーマンスが平均45%向上しました。 実際のサイトについて話すと、プラグインの数とコードの複雑さに応じて、最大3倍に増加します。



長所から-仮想マシンをシャットダウンする必要なく、サーバーからサーバーにすばやく移行できるようになりました。 Proxmoxとは異なり、Virtuozzo 7にはまだ信頼性が高く便利なコントロールパネルがないため、すべてを手動またはシェルスクリプトで行う必要がありました。 既存のAutomatorはまだ非常に未加工であり、予測不能に実行されます。



Virtuozzoを支持して-これは彼の技術サポートであり、最高の状態です。 システムのすべてのコンポーネントに関する優れたドキュメントもあり、Proxmoxにはこれに関する大きな問題があります。 フォーラムに投稿する場合でも、サブスクリプションを支払う必要がありますが、私の意見では絶対に価値がありません。 Proxmoxクラスターは、破損するまで動作しますが、破損した場合、それを上げるのは非常に難しく、明らかにこれに関する十分なドキュメントがありません。



この記事がお役に立てば幸いです。 次回は、Bitrixからphp70への移行について説明し、Bitrixのさまざまなエディションのパフォーマンスを比較します。



All Articles