वर्तमान में हमने उत्पादन वातावरण में एचएचवीएम का उपयोग करना शुरू कर दिया है और अब तक लगभग सभी परिणाम काफी प्रभावशाली हैं। एपीसी के साथ PHP-FPM की तुलना में हमारी समग्र लेनदेन दर में काफी सुधार हुआ है। लगभग सभी अनुरोध 500ms से कम हैं, हालांकि प्रत्येक दो अनुरोध (5 से 10 या उससे अधिक) के परिणाम 2 से 5 सेकंड के अनुरोध समय में होते हैं।एचएचवीएम फास्टसीजी + एनजिनक्स प्रदर्शन में उतार चढ़ाव
अनुरोधित पृष्ठ में कोई फर्क नहीं पड़ता है और एक ही पृष्ठ का अनुरोध करने के लिए बार-बार अनुरोध करना इस व्यवहार को दो अनुरोधों के भीतर ट्रिगर करेगा।
हम निम्नलिखित कमांड लाइन विकल्पों के साथ सर्वर मोड में HHVM चल रहे हैं:
/usr/bin/hhvm --mode server -vServer.Type=fastcgi -vServer.FileSocket=/usr/local/php55/sockets/admin.sock -vPidFile=/var/run/hhvm/admin.pid -vEval.Jit=true -vServer.ThreadCount=24 -vServer.APC.EnableApc=true
हम इन प्रासंगिक विन्यास के साथ वेब सर्वर के लिए nginx चल रहे हैं (मैं माफी चाहता हूँ अगर मैं यहाँ importand कुछ भूल गया)।
fastcgi_buffer_size 128k;
fastcgi_buffers 256 16k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_read_timeout 240;
fastcgi_intercept_errors on;
सर्वर में 128 जीबी मेमोरी और 24 कोर (वास्तव में हाइपरथ्रेडिंग वास्तव में 12 है)।
हमने https://github.com/facebook/hhvm/wiki/Runtime-options पर खोज करने के लिए काफी कुछ किया है, हालांकि अधिकांश विकल्पों को बहुत अच्छी तरह से समझाया नहीं गया है, इसलिए मुझे नहीं पता कि वे क्या करते हैं और उत्पादन वातावरण में उनका परीक्षण करना थोड़ा डरावना है।
क्या किसी को भी ऐसी ही समस्या थी या शायद मुझे कुछ एचएचवीएम विकल्पों के साथ दिशा में इंगित कर सकता था, मैं बहुत आभारी हूं।
HHVM इस्तेमाल किया संस्करण से http://www.hop5.in/yum/el6/
HipHop VM 3.0.1 (rel)
Compiler:
Repo schema: e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
है और /etc/hhvm/config.hdf
Log {
Level = Warning
AlwaysLogUnhandledExceptions = true
RuntimeErrorReportingLevel = 8191
}
MySQL {
TypedResults = false
}
हम supervisord उपयोग कर रहे हैं HHVM इसलिए यहाँ wel के रूप में पर्यवेक्षक config शुरू करने के लिए :
[program:hhvm]
stopasgroup=true
killasgroup=true
command=/usr/bin/hhvm --mode server -vServer.Type=fastcgi -vServer.FileSocket=/usr/local/php55/sockets/admin.sock -vPidFile=/var/run/hhvm/admin.pid -vEval.Jit=true -vServer.ThreadCount=24 -vServer.APC.EnableApc=true
user=admin
stdout_logfile=/var/log/hhvm/admin.log
stderr_logfile=/var/log/hhvm/admin.error.log
directory=/home/admin
umask=000
/etc/hhvm/php.ini में php.ini है लेकिन सामग्री खाली है। इसके अलावा पृष्ठों ने कुछ डेटाबेस कनेक्टिविटी करने की कोशिश की लेकिन यह आमतौर पर बहुत ही कम है। एक पूर्ण तस्वीर के लिए भी my.cnf। mysql इस्तेमाल किया संस्करण percona
[mysql]
# CLIENT #
port = 3306
socket = /var/lib/mysql/mysql.sock
[mysqld]
# GENERAL #
user = mysql
default-storage-engine = InnoDB
socket = /var/lib/mysql/mysql.sock
pid-file = /var/lib/mysql/mysql.pid
[mysqld]
# MyISAM #
key-buffer-size = 32M
myisam-recover = FORCE,BACKUP
# SAFETY #
max-allowed-packet = 128M
max-connect-errors = 1000000
# DATA STORAGE #
datadir = /var/lib/mysql/
# BINARY LOGGING #
log-bin = /var/lib/mysql/mysql-bin
expire-logs-days = 14
sync-binlog = 1
# CACHES AND LIMITS #
tmp-table-size = 128M
max-heap-table-size = 256M
query-cache-size = 10G
max-connections = 1000
thread-cache-size = 100
open-files-limit = 65535
table-definition-cache = 4096
table-open-cache = 4000
join-buffer-size = 1M
# INNODB #
innodb-flush-method = O_DIRECT
innodb-log-files-in-group = 2
innodb-log-file-size = 512M
innodb-flush-log-at-trx-commit = 1
innodb-file-per-table = 1
innodb-buffer-pool-size = 73G
# LOGGING #
log-error = /var/lib/mysql/mysql-error.log
log-queries-not-using-indexes = 1
slow-query-log = 1
slow-query-log-file = /var/lib/mysql/mysql-slow.log
Mysql संस्करण है:
innodb_version 5.6.17-65.0
protocol_version 10
slave_type_conversions
version 5.6.17-65.0-56-log
version_comment Percona Server (GPL), Release 65.0, Revision 587
version_compile_machine x86_64
version_compile_os Linux
मुझे एचएचवीएम + हैक लैंग के साथ कुछ अनुभव हैं। क्या आप हमें अपना एचएचवीएम server.ini + php.ini दिखा सकते हैं? एनजीआईएनएक्स + फास्टसीजीआई के लिए वही। एचएचवीएम का आप किस संस्करण का उपयोग करते हैं? अनुरोध अनुरोध sth। या डेटाबेस से कनेक्ट करें? – Tyralcori