Recent Posts

The All-New Naukri iOS App (6.0)

Naukri iOS team is always on the lookout to keep its mobile app most updated with industry. Swift technology & new user interactions gave us a chance to pick up a major revamp. The passion of doing the best in performance (as per our mobile design principles for memory, size, network and speed) kept the engineering team motivated even more. The latest Naukri iOS app release (v6.0) bundles new features and lots of technical improvements. [caption id="attachment_4461" align="alignnone" width="476"] Naukri iOS App[/caption]   Key Improvements: From Objective C to... Read More

Understanding Disk I/O – when should you be worried?

Monitoring and analyzing performance is an important task for any System Administrators. Disk I/O bottlenecks can bring applications to a crawl. Some of the common questions for anyone embarking on a disk I/O analysis What are IOPS? Should I use SATA, SAS, or SSD? What RAID level should I use? Is my system read or write-heavy?   Disclaimer: I do not consider myself an expert in storage or anything for that matter. This is just how I have done I/O analysis in the past. I welcome additions and corrections   What are IOPS? They are input-output (I/O)... Read More

Understanding Linux CPU Load – when should you be worried?

Understanding Linux CPU Load - when one should be worried? All must be familiar with Linux load averages. Load averages are the three numbers shown with the uptime and top commands - it looks like this: load average: 0.09, 0.05, 0.01 Most administrators have a notion of what the load averages mean are the three numbers represent averages over progressively longer periods of time (one, five, and fifteen-minute averages), and that lower numbers are better. Higher numbers represent a problem or an overloaded machine. But, what's the threshold? What constitutes "good" and "bad"... Read More

Use of “Kill” & “Kill -9”

Folks normally have the practice to use “kill -9 ”; to terminate any process. Many times this creates zombies process and this is true!!! My 1 cent request is to use “kill -9 ” command carefully. I’m sharing a brief difference on "Kill" & "Kill -9". Hopefully, this will be useful. “kill” command sends a kill signal to terminate any process gracefully when attached with a pid or a processname. This is the default and safest way to kill/terminate a or set of processes. “kill <pid> / <processname>” sends SIGTERM (15) – Termination signal. However, this... Read More

Garbage Collection in Elasticsearch and the G1GC

garbage collection We have been using Elasticsearch as the storage and analysis tool for our centralized logging in addition to various full text search needs in different applications. The cluster being used for centralized logs handles a heavy load, indexing nearly 1.5 billion documents a day and going to about 50k documents per second during peak hours. The same cluster bears the load for searches to handle alerts and provide data to kibana dashboards. Hence the cluster performs large amount of aggregation queries in addition to document indexing. With heavy loads the cluster started having performance... Read More

Centralizing logs at Naukri.com with Kafka and ELK stack

Logs are important part of any system as they give deep insight into what is happening with the system. They also helps in figuring out what went wrong when something unexpected happens.  Most applications generates logs in one form or the other and they are generally written into files on the local disk. A web application consists of various components and each of them generates logs. Few of them are mentioned below. Access logs from web servers like Nginx, Apache Logs from back end applications (Java, PHP, python etc.) Logs from Database, Cache system, Queues etc. System... Read More

Testing on our private mobile device farm using STF

Naukri focuses on providing the best customer experience to the user irrespective of whatever platform he is using. In the field of mobile app testing, we have to make sure that testing of apps is done on maximum possible mobile devices (especially the Android mobiles having a large user base of Naukri). As there are thousands of Android devices in the market today, one of the biggest challenges we faced while testing the mobile applications is the selection and management of these devices. While the selection is done based on the number of users we have on different screen resolutions and... Read More

Progressive Web App at Naukri.com

Progressive Web App at Naukri.com In today’s world where lives are internet driven, it is essential to provide faster and seamless web experience to our users. Also, it is important to realize that installing and keeping every native app is not feasible for users due to storage limitations. Following the same notion, Naukri.com decided to introduce Naukri Lite its own progressive web app. What is a Progressive Web App? A Progressive Web App is: Progressive - Works for every user, regardless of browser choice because it's built with progressive enhancement as a core tenet. ... Read More

Managing Relations with Elasticsearch

1. Introduction Elasticsearch is a search engine. It provides a distributed full-text search engine over schema-free JSON documents. As we all know Elasticsearch is a great product to index and search through a large number of documents. It supports various functionality like term and range queries, full-text search and aggregations on large data sets that are very fast and powerful. It is built over Lucene which is a high-performance, full-featured text search engine library written in Java. When we are indexing data, the world is rarely simple as an independent data existing in... Read More

Symfony Vs Phalcon: Which framework to use for building REST APIS?

There are a number of frameworks and micro-frameworks available in PHP for building REST APIS each with its pros and cons. While some provide more performance benefits some are rich in community interaction and 3rd party bundles. We had quite an expertize in symfony and its related components, so we decided to go for a comparison of symfony with the fastest PHP framework available i.e, phalcon. No doubt phalcon is faster but we wanted to know how much performance gain is achieved via phalcon so that we can let go of  symfony which provides many bundles easing our development and reducing our... Read More