Skip to content

Performance Articles

Apr 03

CPU Bound Workloads with NodeJS: Processor Parallelism

As discussed in the Understanding the NodeJS Event Loop post, NodeJS is a great language for high I/O workloads. For any program or service that is expected to be I/O bound, NodeJS is arguably one of the best languages for the job due to its asynchronous event model. The single threaded, event loop architecture allows […]

Mar 13

Understanding the NodeJS Event Loop

While there are numerous articles and documentation written about the NodeJS event loop, I wanted to a write about the event loop to help solidify the concept for myself. Being a Node developer it is important to understand what the “event-driven, non-blocking I/O model” paradigm is and how asynchronous functions are being executed. Simply put, […]

Jun 13

Using Collectd With InfluxDB

Collectd is a Linux daemon used to collect system stats for performance analysis and capacity planning. With a variety of different plugins, collectd can easily be configured to collect data from a variety of different services i.e. MySQL, Apache, etc. This is an overview of how to store collectd data in InfluxDB, which is an […]

Jun 02

Understanding TCP and UDP

There are two popular types of protocols for sending data over a network: TCP and UDP. Both protocols are built on top of the Internet Protocol thus both send packets to an IP address. TCP/IP is the main protocol used on the Internet. When a user requests a page load a TCP connection is made […]

Dec 01

Hacklang Async Processing

One of the frustrations in working with PHP is the synchronous, blocking, behaviour of the language. There are PHP extensions, such as pthreads that offer quasi PHP threading; however, that requires extra considerations such as server setups, locking, shared state, etc., and is often times omitted from development discussions due to overhead/learning curve of writing […]

Nov 01

Ubuntu HHVM Install

Facebook’s HHVM is a Virtual Machine which runs PHP, and Hack Lang, through a just-in-time (JIT) compiler to “achieve superior performance” in executing PHP code. From HHVM’s website: Rather than directly interpret or compile PHP code directly to C++, HHVM compiles Hack and PHP into an intermediate bytecode. This bytecode is then translated into x64 […]

Oct 26

Apache Prefork MPM MaxClients

Apache2 comes with two different multi processing modules (MPM): Prefork MPM and Worker MPM. Usually when installing Apache via a Linux package manager, unless specifically specified, Apache will be operating with Prefork MPM. Prefork MPM uses multiple child processes, with one thread each, and each process handles one connection at a time. Worker MPM uses […]

Oct 25

Disable Apache Modules

The Apache web server operates by using a combination of modules. The modules are used by the Apache core and do not interact with one another, each offering unique functionality. Depending on which OS you are using, there is likely many Apache modules that are enabled by default that you do not need. Disabling this […]

Sep 12

PHP 5.5 with Opcache and APCu

As of PHP 5.5 Zend Opcache is a part of the core PHP distribution. PHP code is an interpreted language and is therefore parsed and compiled into opcode on every request. An Opcache allows the opcode to be stored in shared memory in which subsequent requests will be able to pull from, opposed to having […]

May 20

MySQL Master-Slave Replication

MySQL replication is the act of actively cloning all changes made on one server (master) to another server(s) (slaves). This is commonly done to create backups of data as well as to add multiple servers in which applications can query against. This becomes advantageous in high read environments where there is concern for bogging down […]

Blog Powered By Wordpress
<<< Prev