Blog

  • Performance Enhancement in phpFox 4.7.0

    Performance Enhancement in phpFox 4.7.0

    As teased in the phpFox 4.7.0 Sneak peek, improving performance is one of the primary targets for phpFox 4.7.0 development. In this blog, we will discuss in more detail about performance enhancement in phpfox 4.7 by briefly describing the way we conduct the performance test, the test result and some further discussions about scalability with phpFox.In recent years, phpFox is becoming the best platform for Niche Social Networks, and so there is an increasing amount of users all around the world. As you may know, performance has been one of the major care and we put a lot of effort for code restructuring for performance improvement in phpFox 4.4. In phpFox 4.7, we revised the platform performance again with the latest technologies and we realize that we can do it much better. Testing Environment  I. System EnvironmentTo simulate a common use case in which the whole system is deployed in one single dedicated server, we take a standard server with the following configurationsIntel® Core™ i7-4790 CPU, 4 cores / 8 threads 16G RAM 250G SSD Ubuntu 16.04 OSThe server is installed the following softwareNginx version 1.14 as the web server. PHP-FPM with PHP version 7.2. The pool process manager is set to "ondemand" instead of the default "dynamic" setting. Opcache and APCu are also enabled. The "request_terminate_timeout" is set to "15s". MySQL Community Server version 5.7.22. Redis server version 3.x as the cache layer. II. DatasetWe install phpFox 4.7 and use the in-house data generation script to simulate a phpFox social network site with the following dataAll phpFox's default apps are installed. 10,000 users with 200,000 membership relationships. Each app (such as photo, forum, blog, polls, events, quizzes, etc.) has approximate 30,000 items.The site statistics is attached as follows  III. Testing MethodWe use Locust as a load testing tool. The Locust software runs with 4 slave threads on an Intel Xeon E3-1270 v6 CPU @ 3.80GHz (4 cores/8 threads) to be sure the load is put to the site properly. The test is conducted with the HTTPS protocol so that the cost for resolving SSL is also taken into place. Each virtual user will conduct the following activitiesFirst, visit the site home page. Next, login with his email and password. We force the locust script to pick different users for each session. After login, the virtual user will continuously visit all landing pages of activity feeds, member list, and all default apps (such as photo, forum, blog, polls, events, quizzes, etc.).Each test runs continuously at least 10 minutes at the highest load. IV. Acceptable Passing Criteria A test can only consider being passed if it satisfies all the following criteria:All requests must respond less than 15 seconds. If one single request exceeds 15s, the test is failed. No single failed request during 10 minutes at the "peak" load. The software must handle at least 500 concurrent online logged-in users in one dedicated server with the above testing method.Testing Results  I. The number Tl;dr: phpFox 4.7.0 passed the performance test with 600 concurrent online users as in the following screenshot:Some detailed numbers are highlighted as follows:The system can handle more than 600 online users with the above configuration with no failed request. Average response times for all requests is ~ 7.x seconds. The system can handle ~ 105 Requests Per Second (RPS). II. Some Conclusions The result between File Cache and Redis Cache settings are nearly the same in this system. However, when running on a non-SSD system with more writing operators, the Redis Cache setting proves to be better.Comparing to the previous version (phpFox 4.6.1 - 27 RPS & 17s Average Response Time), phpFox 4.7.0 can handle more than 3x RPS and Average Response time is less than 1/2 on the same system configuration.If your phpFox social network contains mostly browsing activities as in the test, the real online users might be higher since this test simulates concurrent online users.The real concurrent number of users can also be higher this test since this test does not take the non-logged-in users into account. For non-logged-in requests, we can offload the application/database server by simply configuring your web server/proxy/load balancer to cache page content.The test only focuses on "browsing" activities with no new content posting activities. Results will be different depending on the real member activities on different social network sites with different installed apps. Further Discussions We also conducted a similar performance test on a cluster of multiple servers. In this system, we utilize the following configuration to achieve much higher concurrent online users by splitting loads among servers:We use HAProxy as the high-performance load balancer. Nginx and PHP-FPM are used in application servers that serve phpFox source code. We also use Nginx micro cache for off-loading non-logged-in visits. For Database cluster, we utilize the latest MySQL Group Replication under a high-performance proxy to distribute database read and write loads among many database servers. Please be noted that supporting for MySQL Group Replication is only available from phpFox version 4.7.0. We utilize a Redis cluster for Caching purpose.Maintaining a cluster of servers when users and the site traffic grows are tedious and complex work. So we always recommend our clients to move to a cloud-based environment such as Amazon Web Service when their site grows. Also, setting up an optimized environment for a growing social network with lots of user activities is not an easy task so we do provide all services for your growing site. Be sure to check our Services page to see what we are providing. Final Words As a result of the above tests on phpFox 4.7.0 performance, it's a certainty to come up with a solid statement that this new version surely opens up a brand new and enjoyable experience to you when it comes to how well your social network handle requests and respond accordingly.Share us your thought on how phpFox 4.7.0 performs on your Social Network by emailing us at hello@phpfox.com. 
  • Upgrade to phpFox 4.7.0 today!

    Upgrade to phpFox 4.7.0 today!

    Today the long wait is finally over. Let's upgrade to phpFox 4.7.0 today!From the beginning, we always dream to provide the best platform for everyone to build Niche Social Network sites. And with this version, phpFox surely solidifies this statement by bringing you the most impact and finest release than ever.This version ultimately not only redefines the current structure of the Core system to improve functionalities and performance but also introduces several new features. Let's take a look at what's new on phpFox 4.7.0. What to expect in phpFox 4.7.0? In this update, we mainly set our focus on enhancing user experience with phpFox. Therefore, we spent our effort to modify and optimize several Core components of the system to ensure a fast, responsive yet stable platform.Additionally, bolstering up the scalability of phpFox is our another target in version 4.7.0. The platform is now flexible and applicable to the expansion on server and database to deal with the large scale of requests from users.Aside from technical improvements, we also introduce you Template Skin, the pre-defined color sets for your template. This new feature brings you a completely new experience and exceptionally change the way you manage your social network appearance. phpFox 4.7.0 Highlights - Compelling Improvements on Performance. - Revamp Cache System. - Optimize Database Structure. - Improve Database Queries. - Revise Codes. - Improve Scalability. - Support multiple App servers. - Support multiple Database servers. - Template Skin.You can check out the full features and improvement of phpFox 4.7.0 in our Documentation. Installation & Upgrade We encourage you to back up your site and database before performing the upgrade. Make sure to check with 3rd-party experts about the compatibility of all the apps/templates you are using.Also, take advantages on useful guides below if you want to upgrade the site yourself.- Download - Upgrade Instructions - Installation Guide Important Note The phpFox 4.7.0 requires PHP 5.6 or later. If your server is using older PHP version, please contact your hosting provider for help to upgrade PHP version first. PHP 7.2 is highly recommended. Change Log You can refer to Changelog for phpFox 4.7.0 here. New to phpFox? If you are new and looking for a solution to build up your own Social Network, then phpFox is the right platform for you. phpFox is the ultimate solution for your social network. Thriving to be the best platform for Social Network, phpFox has everything you can expect from a social network: Full-featured, fast, responsive, stable, easy to customize, easy to scale up, Mobile-ready, several extensions from 3rd-party developers...You can build up your own Social Network within minutes with our best Support service. Ask us how and get your own license at phpfox.com Purchase New License You can purchase phpFox right now to enjoy these above perks just by clicking on the button below. We also have an exclusive 14-day Free Trial for you to try the platform before making any decision, and you can visit our Demo site anytime. Make phpFox Even Better After months of hard work and dedication, we hope phpFox 4.7.0 will be your best experience with the platform.As we committed for your total satisfaction, we welcome any feedback to make phpFox better and better every day, so feel free to let us know your thoughts on this release by emailing us at hello@phpfox.com.Also if you found any issues with this version, please let us know by submitting tickets or reporting immediately to our GitHub Tracker. We also encourage you to join and stay connected with the Community Forum.
  • phpFox 4.7.0 Developer Release

    phpFox 4.7.0 Developer Release

    We delightedly announce that the phpFox 4.7.0 Developer Release is available now. It is necessary to note that The Development Release is for testing purpose and specially delivered to 3rd-party experts only. Experts who are having products on phpFox Store can check and tweak their products for compatibility in the meantime. phpFox 4.7.0 which is the biggest upgrade in 2018 is expected to be officially released to the public in October. In this version, phpFox takes a big stride with several improvements in performance, scalability, and features to reassure that it is the best platform for Social Network. Please don't forgot to check its Sneak Peek blog for more info. For phpFox Experts You can now download the package of phpFox 4.7.0 Development Release in the Client Area. In order to help you update your products conveniently, we also prepared developer note and changelog. Please feel free to contribute your thoughts and findings on this Development Release via Ticket System. We appreciate and love to hear feedback and suggestions so we can place finishing touches to phpFox 4.7.0 before launching the official release.
Fox