Load Average in Linux Servers – Confusion Solved

With Linux distributions acting as servers for majority of web applications and Software as a Service, Infrastructure as a Service, etc. platforms, managing Load on the installations is one of the most important tasks for system admins, SRE’s and technical support teams

How is Load measured

In linux load is measured in two dimensions

CPU Load : it is a measurement of CPU over / under utilization,

Load Average : it is the average system load over a period of time.

Lets see this in detail

Load Average can be found by running top command or uptime command as shown below

There are many misconceptions / doubts on how we understand the Load Average as shown in Linux

  • What is load average as shown in top command ?
  • What this values represent ? 
  • When it will be high, when low ?
  • When to consider it as critical ? 
  • In which scenarios it can increase ? 

In this Blog we will talk about the answers of all these  . 

What are these three values shown in above image  ? 

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 . 

Now before getting into what is good value, what is bad value , what are the reasons which can affect these values  , We will understand these on  a machine with one single-core processor. 

The traffic analogy

A single-core CPU is like a single lane of traffic. Imagine you are a bridge operator … sometimes your bridge is so busy there are cars lined up to cross. You want to let folks know how traffic is moving on your bridge. A decent metric would be how many cars are waiting at a particular time. If no cars are waiting, incoming drivers know they can drive across right away. If cars are backed up, drivers know they’re in for delays.

So, Bridge Operator, what numbering system are you going to use? How about:

  • 0.00 means there’s no traffic on the bridge at all. In fact, between 0.00 and 1.00 means there’s no hold up, and an arriving car will just go right on.
  • 1.00 means the bridge is exactly at capacity. All is still good, but if traffic gets a little heavier, things are going to slow down.
  • over 1.00 means there’s holdup. How much? Well, 2.00 means that there are two lanes worth of cars total — one lane’s worth on the bridge, and one lane’s worth waiting. 3.00 means there are three lanes worth total — one lane’s worth on the bridge, and two lanes’ worth waiting. Etc.

Like the bridge operator, you’d like your cars/processes to never be waiting. So, your CPU load should ideally stay below 1.00. Also, like the bridge operator, you are still ok if you get some temporary spikes above 1.00 … but when you’re consistently above 1.00, you need to worry.

So you’re saying the ideal load is 1.00?

Well, not exactly. The problem with a load of 1.00 is that you have no headroom. In practice, many sysadmins will draw a line at 0.70:

But now a days we many multiple cores systems or multiple processors system  .

Got a quad-processor system? It’s still healthy with a load of 3.00.

On a multi-processor system, the load is relative to the number of processor cores available. The “100% utilization” mark is 1.00 on a single-core system, 2.00, on a dual-core, 4.00 on a quad-core, etc.

If we go back to the bridge analogy, the “1.00” really means “one lane’s worth of traffic”. On a one-lane bridge, that means it’s filled up. On a two-lane bridge, a load of 1.00 means it’s at 50% capacity — only one lane is full, so there’s another whole lane that can be filled.

Same with CPUs: a load of 1.00 is 100% CPU utilization on a single-core box. On a dual-core box, a load of 2.00 is 100% CPU utilization.

Which leads us to two new Rules of Thumb:

  • The “number of cores = max load” Rule of Thumb: on a multicore system, your load should not exceed the number of cores available.
  • The “cores is cores” Rule of Thumb: How the cores are spread out over CPUs doesn’t matter. Two quad-cores == four dual-cores == eight single-cores. It’s all eight cores for these purposes.

What if the load goes beyond the number of cores

But What to extract from here that if load is going beyond number of Cores , Are we in crunch of Cores ? 

Well  Not exactly , For this we need to further debug or analyse TOP command data to come to a conclusion.

Impact of User Process and System Process

In above output , This coloured part shows CPU used by

  • user process(us) and
  • system process(sy) .

Now if these values are around 99-100%, it means there is crunch of cpu cores on your system or some process is consuming more CPU . So, in this case either increase cores or optimize you application which is consuming more CPU . 

Now let’s take another scenario : 

Impact of disk read / write speed

In above image  , coloured parts shows amount of time CPU is waiting in doing Input/Output(I/O) .  So say if this values is going above say 80% ,then also load average on server will increase  . It means either

  1. you disk read/write speed is slow  or
  2. your applications is reading/writing too much on your system beyond system capability .

In this case either diagnose your hard disk read/write speed or check why your application is reading/writing so much . 

Now let’s take one more scenario :

Impact of softirq’s

If values Above coloured output goes beyond certain limit , it means softirq(si) are consuming cpu. It can be due to network/disk interrupts . Either they are not getting enough CPU   or there is some misconfiguration in you ethernet ports due to which  interrupts are not able to handle packets receiving or transmitting  . These types of problem occurs more on VM environment rather than physical machine.

Now , Lest take one last scenario : 

Impact of CPU Steal Time

This above part will help you in case of Virtual Machine Environment  . 

If %st increases to certain limit say it is remaining more than 50% , it means that you are getting half of CPU time from base machine and someone else is consuming you CPU time as you may be on shared CPU infra  . In above case also Load can increase .

Summary

I hope it covers all major scenarios in which load average can increase . Understanding different parameters from the output for top command can help you understand the performance of your linux server better.

Stay tuned to know more about further analyzing and answering questions like how to check read/write speed, how to check which application is consuming more CPU and how to check which interrupts are causing problem.

Refrences : https://scoutapm.com/blog/understanding-load-averages

See Original Posts at hello-worlds

and at medium

..

..

Author

Sahil Aggarwal
Senior Software Engineer 3/Tech Lead at Ameyo

I am a Tech Professional working in IT industry from 10 years . I have worked on many technologies like java, databases, linux, netrowking, security and lot more . I generally believe in taking outside-in approach to any new product you are looking for . This behaviour helped me lot in debugging issues of new products or even issues of any other system throughout by journey. I like to write tech blogs and I have my personal blog sites also, I write on medium and dzone also . I am very adaptive working between Individual Contributor and as a Leader/Manager. Apart from technology, I like eating fast and junk food . I also like to listen and write shyari.

Practical grep commands examples useful in real-world debugging

While troubleshooting any issue,  log analysis is the most important step.  Mostly the log files capture enormous amount of information, and reading those becomes a difficult and time consuming task. In our daily debugging we need to analyze logs files of various products.

 Analyzing the logs to isolate and resolving the issues, can be complex and requires special debugging skills which are gained through experience or by god’s grace .  During debugging we might need to extract some data from the log files, or we need to play with a log file which can not be done by just reading through the log file line by line , there is need for special commands to reduce the overall efforts and provide the specific information we seek.

There are many commands in linux which are used by debuggers like grep, awk, sed, wc, taskset, ps, sort, uniq, cut, xargs etc .

In this blog we will see some examples of practical usage of <strong>grep</strong>,  useful in real world debugging&nbsp; in Linux . The examples which we will see in this blog are super basic but very useful in real life which a beginner should read to enhance the debugging skills

Grep (global search for regular expression and print out)</strong> is a linux command searches a file for a given pattern, and displays the lines which match the pattern.  The pattern is also referred to as regular expression.

Let’s Go to the Practical Part.

Lets say we have a file “”file1.log””, which has following lines.

root@localhost playground]# cat file1.log
hello
i am sahil
i am software engineer
Sahil is a software engineer
sahil is a software engineer

Search the lines which contains some particular word

root@localhost playground]# grep 'sahil' file1.log
i am sahil
sahil is a software engineer

Search number of lines matched for a particular word in a file

grep -c 'sahil' file1.log
2

Another way :

grep 'sahil' file1.log | wc -l
2

Search all the lines which contains some word (case insensitive)

root@localhost playground]# grep -i 'sahil' file1.log
i am sahil
Sahil is a software engineer
sahil is a software engineer

Search the lines in which either of two words are present in a file

root@localhost playground]# grep 'sahil|software' file1.log
i am sahil
i am software engineer
Sahil is a software engineer
sahil is a software engineer

Search lines in which two words are present

root@localhost playground]# grep 'sahil' file1.log | grep 'software'
sahil is a software engineer

Search lines excluding some word

root@localhost playground]# grep -v 'sahil' file1.log
hello
i am software engineer
Sahil is a software engineer

Exclude words case insensitively

root@localhost playground]# grep -iv 'sahil' file1.log
hello
i am software engineer

Search the lines that start with a string

root@localhost playground]# grep '^sahil' file1.log
sahil is a software engineer

Search the lines that end with a string

grep 'engineer$' file1.log
i am software engineer
Sahil is a software engineer
sahil is a software engineer

Getting n number of lines after each match

root@localhost playground]# grep 'hello' file1.log
hello

root@localhost playground]# grep -A 1 'hello' file1.log
hello
i am sahil

root@localhost playground]# grep -A 2 'hello' file1.log
hello
i am sahil
i am software engineer

Getting n number of lines before each match

root@localhost playground]# grep 'i am sahil' file1.log
i am sahil

root@localhost playground]# grep -B 1 'i am sahil' file1.log
hello
i am sahil

root@localhost playground]# grep -B 2 'i am sahil' file1.log
hello
i am sahil

in the second case only one line is printed as it is the only line before our pattern

Get n lines after and m lines before every match

root@localhost playground]# grep -A 2 -B 1 'i am sahil' file1.log
hello
i am sahil
i am software engineer
Sahil is a software engineer

Get some word in more than one file in current directory

For this purpose we will assume we also have a second file “”file2.log”” in the same directory

root@localhost playground]# cat file2.log
hello
i am sahil
i am tech blogger
Sahil is a tech blogger
sahil is a tech blogger

Grep can be used to search in more than one file or within a directory

root@localhost playground]# grep 'sahil' file1.log file2.log
file1.log:i am sahil
file1.log:sahil is a software engineer
file2.log:i am sahil
file2.log:sahil is a tech blogger

Grep some word in all files in current directory

root@localhost playground]# grep 'sahil' *
file1.log:i am sahil
file1.log:sahil is a software engineer
file2.log:i am sahil
file2.log:sahil is a tech blogger

Check how many lines matched in each file

root@localhost playground]# grep -c 'sahil' *
file1.log:2
file2.log:2
file.log:0

Note : the above output signifies, we have a third file in the directory “”file.log””, but it has no lines that have a word “”sahil””

Grep using regular expression

Regular expressions are patterns used to match character combinations in strings

Suppose the content of files are as follows

root@localhost playground]# cat file3.log
time taken by api is 1211 ms
time taken by api is 2000 ms
time taken by api is 3000 ms
time taken by api is 4000 ms
time taken by api is 50000 ms
time taken by api is 123 ms
time taken by api is 213 ms
time taken by api is 456 ms
time taken by api is 1000 ms

Now suppose we want to grep all the lines in which time taken by any api is more than 1 second or more than 1000 ms , it means it should have minimum 4 digit number, grep command for this will be as follows

root@localhost playground]# grep -P '[0-9]{4} ms' file3.log
time taken by api is 1211 ms
time taken by api is 2000 ms
time taken by api is 3000 ms
time taken by api is 4000 ms
time taken by api is 50000 ms
time taken by api is 1000 ms

If we want to get 5 digit number

root@localhost playground]# grep -P '[0-9]{5} ms' file3.log
time taken by api is 50000 ms

Recursively search in a directory and sub directories

root@localhost playground]# grep -R 'sahil' .
./dir1/file.log:i am sahil
./dir1/file.log:sahil is a software engineer
./file1.log:i am sahil
./file1.log:sahil is a software engineer
./file2.log:i am sahil
./file2.log:sahil is a tech blogger

All above are basic use cases of grep . One can mix all the command options of grep to achieve the complex use cases and one can also mix different grep commands using pipe operator to achieve complex use cases

In future blogs we will explain some complex use cases and example how to achieve that using linux commands which can ease logs debugging.

Stay Tuned . . .

See Original Posts at hello-worlds

and at medium

and at dzone

..

Author

Sahil Aggarwal
Senior Software Engineer 3/Tech Lead at Ameyo

I am a Tech Professional working in IT industry from 10 years . I have worked on many technologies like java, databases, linux, netrowking, security and lot more . I generally believe in taking outside-in approach to any new product you are looking for . This behaviour helped me lot in debugging issues of new products or even issues of any other system throughout by journey. I like to write tech blogs and I have my personal blog sites also, I write on medium and dzone also . I am very adaptive working between Individual Contributor and as a Leader/Manager. Apart from technology, I like eating fast and junk food . I also like to listen and write shyari.

Top 10 network commands and their uses

Today every computer is connected to some other computer through a network whether internally or externally to exchange some information. This network can be small as some computers connected in your home or office, or can be large or complicated as in large offices or the entire Internet.
Maintaining a system’s network is a task of the System/Network administrator.

Here is a list of 10 Networking commands that must be known to the network administrator/tech support engineer

  1. ifconfig
  2. ip
  3. ping
  4. traceroute
  5. netstat
  6. telnet
  7. dig
  8. netcat
  9. nmap
  10. Wireshark

1. ifconfig

ifconfig, will be one of the most used commands and for a long time it was the default command used to configure and troubleshoot network interface and issues on linux, ifconfig is a command-line interface tool for network interface configuration and is also used to initialize interfaces at system boot time.
It is also used to view the IP Address, Hardware / MAC address, as well as MTU (Maximum Transmission Unit) size of the currently active interfaces.

Running ifconfig without any arguments, lists all the interfaces which are currently in operation

ifconfig

To list all interfaces which are currently available, whether up or down, use the -a flag

[centos@midas ~]$ ifconfig -a
enp3s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.1.152  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::da72:6a96:b4cc:b4d6  prefixlen 64  scopeid 0x20<link>
        ether 00:e0:4d:1e:b3:1c  txqueuelen 1000  (Ethernet)
        RX packets 1443  bytes 111527 (108.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 124  bytes 10010 (9.7 KiB)
        TX errors 8  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 144  bytes 12836 (12.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 144  bytes 12836 (12.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlp0s20u6: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.29.22  netmask 255.255.255.0  broadcast 192.168.29.255
        inet6 fe80::6ebc:877a:f6c0:885c  prefixlen 64  scopeid 0x20<link>
        inet6 2405:201:4019:91a2:d7c7:e3b2:ae40:468a  prefixlen 64  scopeid 0x0<global>
        ether 3c:33:00:60:48:f8  txqueuelen 1000  (Ethernet)
        RX packets 551536  bytes 105040791 (100.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 51404  bytes 5621067 (5.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Viewing the configuration of a specific interface

[centos@midas ~]$ ifconfig enp3s0
enp3s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.1.152  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::da72:6a96:b4cc:b4d6  prefixlen 64  scopeid 0x20<link>
        ether 00:e0:4d:1e:b3:1c  txqueuelen 1000  (Ethernet)
        RX packets 1443  bytes 111527 (108.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 124  bytes 10010 (9.7 KiB)
        TX errors 8  dropped 0 overruns 0  carrier 0  collisions 0

Configuring an interface

[root@midas ~]# ifconfig enp3s0  192.168.1.122 netmask 255.255.255.0 broadcast 192.168.1.255
[root@midas ~]# ifconfig enp3s0
enp3s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.1.122  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::da72:6a96:b4cc:b4d6  prefixlen 64  scopeid 0x20<link>
        ether 00:e0:4d:1e:b3:1c  txqueuelen 1000  (Ethernet)
        RX packets 1443  bytes 111527 (108.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 124  bytes 10010 (9.7 KiB)
        TX errors 8  dropped 0 overruns 0  carrier 0  collisions 0

2. IP

The IP command is the new default networking command for linux and has replaced ifconfig, it is a part of iproute2util package. IP command takes different flags and syntax than if config command. The ip command is more versatile and technically more efficient than ifconfig because it uses Netlink sockets, though the syntax can be more complex than ifconfig

To list all the all the interfaces we can use “”ip addr show”” or “”ip a”” for short

[root@midas ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether 00:e0:4d:1e:b3:1c brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.122/24 brd 192.168.1.255 scope global noprefixroute enp3s0
       valid_lft forever preferred_lft forever
    inet6 fe80::da72:6a96:b4cc:b4d6/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
3: wlp0s20u6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 3c:33:00:60:48:f8 brd ff:ff:ff:ff:ff:ff
    inet 192.168.29.22/24 brd 192.168.29.255 scope global dynamic noprefixroute wlp0s20u6
       valid_lft 15969sec preferred_lft 15969sec
    inet6 2405:201:4019:91a2:d7c7:e3b2:ae40:468a/64 scope global dynamic noprefixroute
       valid_lft 3596sec preferred_lft 3596sec
    inet6 fe80::6ebc:877a:f6c0:885c/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

Add IP address

[root@midas ~]# ip a add 192.168.1.152/24 dev enp3s0

[root@midas ~]# ip a show  enp3s0
2: enp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether 00:e0:4d:1e:b3:1c brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.122/24 brd 192.168.1.255 scope global noprefixroute enp3s0
       valid_lft forever preferred_lft forever
    inet 192.168.1.152/24 brd 192.168.1.255 scope global secondary noprefixroute enp3s0
       valid_lft forever preferred_lft forever
    inet6 fe80::da72:6a96:b4cc:b4d6/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

Enable or disable a network

ip commands uses the set sub command for this operation

ip link set enp3s0 up
ip link set enp3s0 down

3. Ping

Ping is a simple, widely used, cross-platform networking utility for testing if a host is reachable on an Internet Protocol (IP) network. It works by sending a series of Internet Control Message Protocol (ICMP)

ping is a very common and relatively simple command, but it also provides there are some great options and techniques that make the tool even better, to troubleshoot connectivity issues

[root@midas ~]# ping 192.168.29.1
PING 192.168.29.1 (192.168.29.1) 56(84) bytes of data.
64 bytes from 192.168.29.1: icmp_seq=1 ttl=64 time=1.59 ms
64 bytes from 192.168.29.1: icmp_seq=2 ttl=64 time=2.00 ms
64 bytes from 192.168.29.1: icmp_seq=3 ttl=64 time=1.30 ms
64 bytes from 192.168.29.1: icmp_seq=4 ttl=64 time=1.49 ms
^C
--- 192.168.29.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 1.303/1.592/1.995/0.253 ms

ping -a <host>, adds audible cue, giving a system sound whenever the pings are successful

ping -c <host>, lets you adjust the number of pings

ping <hostname> also lets you display the ip address of the hostname

Output from ping

  • ping output provides some useful insights into the quality of the network, the most important metrics are packet loss, time,
    • whether the target host is reachable (active) or not,
    • to measure the amount of time it takes for packets to get to the target host and back to your computer
    • the packet loss, expressed as a percentage.
  • timeout message indicates that your machine believes it sent successful ping queries to the destination but it did not receive the replies in the specified time
  • TTL means “”time to live””.  It is a value on an ICMP packet and this value is decreased every time a router touches the packet. If the TTL ever reaches zero, the packet is discarded. It is a measure of the number of hops the packet took to reach the destination, if your initial value was 64 and now you see a value of 28 there are 36 hops between the originated and final destination
  • Time metric can also be used to assess the quality of the network and it provides insights into latency and jitter in the network, a high response time signifies high latency, where as a fluctuating time value in response signifies jitter.

4. Traceroute

Traceroute is a command-line utility for tracing the full path from your local system to another network system. It prints a number of hops (router IPs) in that path you travel to reach the end server. It is an easy-to-use network troubleshooting utility after the ping command

5. Netstat (network statistics

netstat (network statistics) is the command-line tool for monitoring network connections both incoming and outgoing as well as viewing routing tables, interface statistics, etc. It can be used for troubleshooting and for configuration.

Listing all ports

Note : we have used more to control the output, it is not necessary

[root@midas ~]# netstat -a | more
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 localhost:ipp           0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN
tcp        0     96 midas.upspiroffice.:ssh 192.168.29.147:53980    ESTABLISHED
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN
tcp6       0      0 localhost:ipp           [::]:*                  LISTEN
udp        0      0 0.0.0.0:mdns            0.0.0.0:*
udp        0      0 0.0.0.0:47053           0.0.0.0:*
udp        0      0 midas.upspiroffi:bootpc reliance.relianc:bootps ESTABLISHED
udp        0      0 localhost:323           0.0.0.0:*
udp6       0      0 [::]:mdns               [::]:*

List only TCP port connections

For listing only TCP (Transmission Control Protocol) port connections using netstat -at.

[root@midas ~]# netstat -at
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 localhost:ipp           0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN
tcp        0    288 midas.upspiroffice.:ssh 192.168.29.147:53980    ESTABLISHED
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN
tcp6       0      0 localhost:ipp           [::]:*                  LISTEN
[root@midas ~]#

Listing all active listening ports netstat -l

Listing all active listening UDP ports by using option netstat -lu

Showing network interface packet transactions including both transferring and receiving packets with MTU size

[root@midas ~]# netstat -i
Kernel Interface table
Iface             MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
enp3s0           1500      133      0      0 0            38      5      0      0 BMRU
lo              65536       44      0      0 0            44      0      0      0 LRU
wlp0s20u6        1500      844      0      0 0           198      0      0      0 BMRU

6. Telnet

Telnet command is used to establish the connections between different machines. This command allows us to manage the remote devices using the CLI (command-line interface)

Open a connection with a remote host

[root@localhost centos]# telnet 192.168.1.22 80
Trying 192.168.29.22...
Connected to 192.168.29.22.
Escape character is '^]'.

If no port is specified, it uses TCP port 23 which is assigned to the telnet protocol

7. Nslookup

tool for testing and troubleshooting DNS servers (Domain Name Server). It is used to query specific DNS resource records (RR) as well

8. Dig (Domain Information Groper)

just like nslookup command, this command is used for querying and getting information of DNS (Domain Name System).

Dig stands for (Domain Information Groper) is a network administration command-line tool for querying Domain Name System (DNS) name servers.

[root@localhost centos]# dig yahoo.com

; <<>> DiG 9.16.23-RH <<>> yahoo.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26615
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;yahoo.com.                     IN      A

;; ANSWER SECTION:
yahoo.com.              561     IN      A       74.6.231.21
yahoo.com.              561     IN      A       74.6.231.20
yahoo.com.              561     IN      A       74.6.143.25
yahoo.com.              561     IN      A       98.137.11.163
yahoo.com.              561     IN      A       98.137.11.164
yahoo.com.              561     IN      A       74.6.143.26

;; Query time: 2 msec
;; SERVER: 192.168.29.1#53(192.168.29.1)
;; WHEN: Thu Sep 29 15:27:37 IST 2022
;; MSG SIZE  rcvd: 123

Dig command reads the /etc/resolv.conf file and querying the DNS servers listed there   

To query domain “A” record with +short

[root@localhost centos]# dig yahoo.com +short
98.137.11.164
74.6.143.26
74.6.231.21
74.6.231.20
74.6.143.25
98.137.11.163

9. Netcat

Netcat (or nc in short) is a simple yet powerful networking command-line tool used for performing any operation in Linux related to TCP, UDP, or UNIX-domain sockets.

Netcat can be used for port redirection, as a port listener (for incoming connections); it can also be used to open remote connections and so many other things. Besides, you can use it as a backdoor to gain access to a target server.

Here is an example, the -z option sets nc to simply scan for listening daemons, without actually sending any data to them. The -v option enables verbose mode and -w specifies a timeout for connection that can not be established.

10. Nmap

Network Mapper is an open-source and a very versatile tool for Linux system/network administrators. Nmap is used for exploring networks, performing security scans, network audit,s and finding open ports on the remote machine

Nmap allows you to scan your network, to discover not only what is connected to it but also a host of other information like what devices are listening on which ports, it comes with a large number of scanning techniques and filters.

Scan a System with Hostname and IP Address

to find out all open ports, services and MAC addresses on the system.

nmap hostname
nmap ipaddress
[root@midas centos]# nmap 192.168.29.44
Starting Nmap 7.91 ( https://nmap.org ) at 2022-09-29 15:42 IST
Nmap scan report for 192.168.29.44
Host is up (0.021s latency).
Not shown: 997 filtered ports
PORT     STATE  SERVICE
22/tcp   open   ssh
2049/tcp open   nfs
MAC Address: 80:86:F2:47:E4:C4 (Intel Corporate)

Nmap done: 1 IP address (1 host up) scanned in 10.53 seconds

….

…..

Author

Pravin Tewari
Senior Manager, Application and Cloud Support

Pravin is a visionary professional with over 11 years of experience in Technical Support, Cloud Infrastructure Management, and Customer Experience. He has hands-on experience in working across the lifecycle of project delivery and deployment, solution consulting, and support. He has deep experience in managing cloud deployments and implementing DevOps tools for automation to provide better uptime. Pravin has successfully led large product & cloud support teams, and coached & mentored a high-performing team that delivers high-quality service to customers.

10 best entry level tech jobs and skills required to get hired

In today’s world of technology, IT is the most flourishing field. In fact, industry body NASSCOM has recently pointed out that before the pandemic, Indian IT companies were reporting annual growth rates of around 6-7%, which have now increased to around 15-20%. [1]

IT industry is one sector which is growing very fast worldwide. It helps to provide jobs and opportunities for professional success. It can really be a source of quick employment, opportunities in all sectors, numerous career paths, and well-paid salaries. Here we describe the 10 entry-level IT positions while you search for a job.

It is important to note that some roles do provide entry-level positions but some of these are specialized roles and generally companies do look for knowledge of systems and networks as well as prior experience, so it is a good idea to start with roles 1-5 and then opt for the other roles based on your interests and experience.

1. Help Desk Technician

Help Desk technician forms the first level of IT support, a help desk technician provides technical support/assistance, whether on the phone /in-person/ or remotely. When an employee/computer user (within the organization or at a client’s end) has problems with hardware, software, or a network, they call on a help desk to assist. As a help desk technician, your main responsibility is to receive the requests and be responsible for responding to email, chat, or phone queries, and offering technical support to customers using the tools available.

The title for the role may vary, help desk technicians may also be called, help desk analysts, desktop support, service desk technicians, etc. collectively referred to as help desk positions. Many IT professionals start their career in help desk roles, it is a good position to consider if you don’t know where to start in IT, you get the necessary exposure to the domain and as you gain experience and knowledge you can further decide your career path.

Skills required: Help desk roles need basic IT / Troubleshooting skills, normally organizations don’t as for certifications. Even non-IT graduates are eligible for these roles. You will need good communication and process handling skills for these roles.

2. Technical Support / IT Technician

Technical Support roles are similar to help desk technician in way that they also support the technical issues faced by end users, but while help desk job is to support user issues, technical support works on actual technical issues that cause the problem. Technical support is a trained person who has the knowledge of operating systems and networks and is able to troubleshoot the issues that arise due to them.

IT technicians can also be called IT associates, IT analysts, or IT specialists. Some companies may have IT technicians do help desk work as well. This position is a very good start to enter in IT sector jobs and later when you gain experience, you can enter other fields such as network administrator, DBA, or IT security specialist.

Skills required: Technical Support / IT technician roles need to be from IT background, companies seek good knowledge of operating systems, Networking, and in some cases SQL as well. Good communication skills and troubleshooting skills are also needed for this role.

3. Application Support Engineer

Application support engineer role is similar to IT Technician, as they also need to work on technical issues, but in this case in addition to the general operating system and network issues they actually support the applications issues as well which is a product of the company or for which company offers the services.

Here in addition to the operating system and network knowledge, additional knowledge on SQL, HTML, and Scripting may also be required, the organizations also provide product-specific training to those who join in these roles. Similar to IT Technician, this position is a very good start to enter in IT sector jobs as this provides the necessary exposure and once you gain experience, you can enter other fields such as network administrator, DBA or IT security specialist.

Skills required: Companies look for candidates from IT backgrounds with good knowledge of the operating system, Networking, and SQL. Apart from these companies also seek knowledge in web technologiesGood communication skills and troubleshooting skills are also needed for this role.

4. System Administrator

System Administrator is a very important person in the organization as he is responsible for the smooth working of the IT systems on day-to-day basis. He looks after servers, network performance, security tools, operating systems etc. Unlike tech support roles system administrator roles are more specialized in ensuring systems within the organization function smoothly. Their roles can overlap with the Network Administrators.

System Administrator’s should have full knowledge about hardware and software and have plans to resolve any issue. They should also have good communication with management employees so that they can reach out to them whenever required. This role also provides opportunities to grow, as you gain experience and expand your skill set you can advance to roles like systems engineer or systems architect. 

Skills required: Companies look for candidates from IT backgrounds with experience and sound knowledge of networking. Companies look for certifications and associated degrees. Good communication skills and troubleshooting skills are also needed for this role.

5. Network Engineer / Network Support Engineer

Network Engineer / Network support engineer role is similar to technical support role, but the focus here is limited to networking knowledge and troubleshooting of network / “network device” related issues, In a way, this is a more specialized role.

Here you need limited knowledge of operating systems, and hardware but sound knowledge of networking concepts and specialized certification for any of network hardware vendors like cisco is needed., and they support the technical issues in the network or network devices.

Skills required: Companies look for candidates from IT backgrounds with experience and sound knowledge of networking. Companies look for certifications and associated degrees. Good communication skills and troubleshooting skills are also needed for this role.

6. Database Administrator

Database Administrator is responsible for the business aspects of the organization. They manage and maintain company databases. They monitor the database performance and take corrective action, address any issues related to the database, and ensure security and backup of databases as per company policies.

It is a specialized role generally companies look for experience candidates, basic knowledge of operating systems, networking, etc is also required as databases are also a part of the systems. Database is offered by different vendors ( MS SQL, Oracle etc or NoSQL databases or opensource database like mysql and postgresql). Companies either look for skills in a specific database technology or in some cases general skills across databases.

Skills required: Again, this is a specialized role and companies do look for experience and IT background with solid knowledge of systems, operating systems, servers, cloud technologies, and networking. Apart from this companies look for the ability to program in high-level languages like python, knowledge of microservice architecture (Docker, Kubernetes) ability use Devops / CICD tools

8. Information Security Analyst

In this era when everything is online and tech-based, a lot of companies have faced the problem of breaches. An Information Security Analyst is a person who helps to protect you from such issues.

Their job is to detect the different aspects of security like network security and software security. He also makes sure that data is available to the authorized people in the company. They conduct security audits, are responsible for conducting security assessment tests, and coordinate with key stakeholders to ensure remediation activities are performed.

Skills required: This is a specialized role and companies do look for experience and IT background with strong knowledge of systems, operating systems, servers, cloud technologies, and networking. Apart from this companies look for a sound knowledge of penetration testing principles, tools and techniques, knowledge system and application security threats and vulnerabilities, and skills in scripting languages.

9. Cloud Engineer

Cloud Engineer is someone who deals with cloud computing. This includes managing, planning, architecting, and monitoring cloud systems. He should also know how to implement the best practices to deploy an application on the cloud.

Sometime back cloud computing was considered a luxury but today it has become a necessity. There is a lot of scope and high salary in this field.

Skills required: This is a specialized role and companies do look for experience and companies not only look for skills in cloud technologies (AWS, Azure, Oracle) but also the knowledge of operating systems, networking, and fundamentals of hardware (cpu, storage, RAM etc)

10. Web Developer / Software Developer / Mobile Developer

Requirements: Ability to program / Experience with programming languages. Associate, bachelor’s, or master’s degrees may be requested.

Web Developers / Software Developers need programming skills, and depending upon the role the expertise may wary. Web developer roles in generally attributed to those building websites, whereas software developers build the applications/ software products and applications, with a lot of businesses having their web portals as their prime products these roles also overlap.

Skills required: Companies look for skills in front end technologies, back end technologies or full stack developers, with proficiency in programming languages. For web development, you will need skills in HTML, CSS, and Javascript while for backend you will need skills in python, Ruby or PHP. For software development, you will need skills in programming languages like Java, C++ etc . While for mobile development you will need skills in specific mobile app development languages

References
1 – https://www.business-standard.com/article/companies/indian-it-crosses-200-bn-revenue-mark-hits-227-bn-in-fy22-nasscom-122021500828_1.html

How a Tech Support job can lead you to multiple career options

When we start our careers, many of us aspire to become programmers or move straight into specialized roles like DevOps or database administrators. These are high-demand jobs that offer good salaries, so it’s understandable why we would want to pursue them. However, if you’re unable to break into these fields right away, don’t let that discourage you from building a strong career in tech support.

Tech support is a great way to get your foot in the door of the tech industry and learn about different technologies. It’s also a great way to develop your problem-solving and customer service skills, which are essential in any tech role. In addition, tech support can be a stepping stone to other, more specialized roles in the future.

So if you’re not sure where to start your tech career, don’t rule out tech support. It could be the perfect way to launch your journey into the world of technology.

What is a technical support engineer profile?

A technical support engineer is a professional who provides technical support to customers and users of software, hardware, and other technology. They troubleshoot problems, provide advice, and help customers resolve issues. Technical support engineers work in a variety of industries, including IT, telecom, healthcare, and finance.

From job opportunities point of view, the great part is that almost every medium and large company have its own IT or support department either providing technical support to the organization or its employees or providing support to the clients on the product and services offered by the organization

Responsibilities of a Technical Support Engineer

The responsibilities of a technical support engineer vary depending on the specific role and industry. However, some common responsibilities include:

  • Troubleshooting and resolving technical issues
  • Providing technical support to customers and users
  • Documenting and tracking technical issues
  • Keeping up-to-date on new technologies
  • Developing and maintaining relationships with customers and users
The roles range from helpdesk to L3,  Organizations also have different roles with similar job specifications like tech support engineer, application support engineer, support engineer, system administrator, system engineer etc.

Skills and Qualifications for a Technical Support Engineer

The skills and qualifications required for a technical support engineer role vary depending on the specific role and industry. You can read more about 10 best entry level tech jobs and skills required to get hired. However, some common skills and qualifications include:

  • Strong technical knowledge
  • Excellent problem-solving skills
  • Excellent communication skills
  • Ability to work independently and as part of a team
  • Ability to work under pressure

Benefits of a Career in Technical Support

Tech support provides multiple career options

Working in a technical support role can provide you with the opportunity to learn about different technologies, processes, and practices. If you are focused and willing to put in the effort, you can become an expert in any of these areas and build a strong career.

For example, if you are providing support for a particular application, you will gain experience working on the daily issues that users face. You will also learn how to resolve these issues and coordinate with customers to understand their pain points. This experience can give you the opportunity to grow into a consultant or product manager role in the future.

Even if you don’t choose another career path,  you can expect to advance to the senior technical support level in 1-2 years. With continued experience, you can then grow to become a technical lead, manager, or other senior-level position.

If you are technically inclined, you can grow into roles such as tech lead, solutions engineer, QA engineer, or software developer. You can also build your career in DevOps or SRE roles. If you enjoy interacting with people and coordinating with customers, you can grow into roles such as customer success manager, account manager, or solution consultant. The possibilities are truly limitless.

How to Get Started in a Career in Technical Support

There are a few things you can do to get started in a career in technical support:

  • Get a degree in computer science or a related field
  • Get certified in a technical field
  • Gain experience working in a technical support role
  • Network with people in the tech industry

If you’re interested in a career in technical support, I encourage you to learn more about the field and explore your options. It could be the perfect way to launch your journey into the world of technology.

At Upspir we are on a mission to help young professionals build a successful career in tech support domain,  Our programs train candidates on both technical and non-technical skills to prepare them for the jobs and interviews. 

We have partnered with leading companies in India’s thriving tech market, and we can help you get hired in one of these companies.

In case you are interested in exploring our programs please feel free to fill the inquiry form here. 

We will be happy to hear from you and address your queries.

Tech support role - Challenges

Yes, initially starting in a tech support role is challenging and so is learning and growing in these career paths. The role itself can be challenging and will need a lot of patience and belief to sustain in these roles. Learning on the job will be the key, and you will have to put additional effort in building your skills while at work to get the chances to progress further.

While you select your strength area, you will again have to put additional effort into enhancing your skills and knowledge and putting your strengths to work. Apart from the effort, you will also need a to have a career plan and a process (within the organization or outside) in place for you, to follow the career plan, and a support mechanism that pushes you to follow the same.

..

Author
Nikhil Kumar Ahluwalia
Founder Upspir

Nikhil has over 16years of experience in the industry, before starting UPSPIR he was heading the support, services, and delivery function at Ameyo/Exotel as vice-president, and he has vast experience in managing and leading technical support and delivery teams, With Upspir he aims to take his passion of developing and mentoring people to next level by sharing his experiences and learning with those who want to build their career in the tech support domain.

Building a strong career journey starting in tech support

Whenever we think of a great career in tech the focus is on software engineering / programming jobs,  which is true and recently with rapid need of digitization and strong SAAS product ecosystem the opportunities for these roles and demand have increased multi-fold. 

But with this advancement, the doors have also opened for people who are not in core development profiles,  as the words move towards the digital era post covid, more and more opportunities are also available for someone starting their career in the tech support career path.

A career in tech is not linear, you start as an individual contributor, working as a team member, as you grow and gain experience, either you grow as subject matter expert or consultant or solution architect, and remain an individual contributor (IC), or you grow as team lead, manager and so on. An IC role will require building depth in your core domain, where as a people manager role requires more breadth and people skills. Tech support also allows you to move in different domains so apart from above you also get a choice to to choose your stream

Where do you start and the journey
Developing your career working in tech support has its challenges, one of the most important expects is to start strong, which means having the right fundamentals and knowledge about the work that you do, tech support itself is not same in every organization it can take multiple forms like

  • Helpdesk Engineer
  • L1 Engineer
  • L2 Engineer / Technical Support Desk
  • Desktop Engineer
  • Network Engineer
  • System Administrator

Your organization and environment also play a major role how you develop, learn and grow in your roles, large organizations have refined processes, and very well defined roles, that need specific and documented actions on your daily tasks, at times limiting your ability to learn more, but they provide a good exposure to processes and practices, on the other hand smaller organizations and startups provide a dynamic environment where you have to go beyond your defined tasks and deliver, this promotes lot of exposure on the technologies and gaining new skills in short amount time.

Which ever place you are in the start, it is important to have clear concepts, understand your daily tasks and focus on them, at the same time understanding your organizations policies around growth and promotions, this will give you an idea around the skills you need to acquire to move ahead. In case you feel restricted by the opportunities available in your organization then you should be able to assess the other organization to understand the areas of focus.

Importance of functional and soft skills
At times these skills are undervalued, your ability to communicate effectively has an immense influence on your growth, your ability to think critically about say your own career and positoin will determine your actions, your ability to write a correct email and document an incident or proposal will influence your seniors and other stakeholders to judge your capability and position you for promotions and opportunities. Lacking these skills slows down your growth much much more than you can imagine. At jobs we work in teams, even for an IC role, interpersonal communication becomes huge factor in our success, similarly it also becomes a huge factor when some one considers us for a team lead role in future, so even if you are good in technical skills but not so good in these skills you will find it challenging to grow beyond a certain level. You do develop these skills as you gain experinece but it is important to develop them. These skills become more and more important as we reach senior levels,

Choosing the right stream for growth
As mentioned above tech support role will allow you to gain the breadth of the technical landscape, as well allow you to developer customer handling skills, it is very important to assess your skills and fit, and decide the domains where you can grow further. It is very important to note that you will get more opportunities to grow as you gain more experience and knowledge and this journey just continues.

Summary
Working in this industry for the last 16 years gave me firsthand experience where people who joined as tech support were able to grow into strong project managers,  technical managers, and as well as product managers,  
A career in itself is not just about starting it is about how you build after you start. Growing in your career doesn’t only mean your proficiency in functional skills but as you reach senior levels it will also need building soft skills, managerial skills etc, as you go along.
All this will need introspection, identifying the knowledge and skills that you will need, and then acquiring it,  today knowledge and also self-help material are available online almost free of cost.
Finally, things like discipline, consistency, and taking responsibility for your work, will also matter,  so your seniors can depend on you and want to take you ahead will also be required.

Author
Nikhil Kumar Ahluwalia
Founder Upspir

Nikhil has over 16years of experience in the industry, before starting UPSPIR he was heading the support, services, and delivery function at Ameyo/Exotel as vice-president, and he has vast experience in managing and leading technical support and delivery teams, With Upspir he aims to take his passion of developing and mentoring people to next level by sharing his experiences and learning with those who want to build their career in the tech support domain.