Ravindra BagaleCourses & study guides English

Linux Performance Tuning: vmstat, iostat, sar, free, lsof, strace आणि sysctl सोप्या भाषेत

Users 'server slow आहे' म्हणतात तेव्हा अंदाज नाही, facts हवेत. Slowness चार ठिकाणांहून येते: CPU, memory, disk आणि network. हा chapter प्रत्येक दाखवणारी tools शिकवतो: load साठी uptime आणि top, पूर्ण picture साठी vmstat, memory साठी free, disks साठी iostat, history साठी sar, open files साठी lsof, process काय करतो ते बघायला strace, आणि kernel tune करायला sysctl. प्रत्येक column step by step वाचायला शिकाल.

या chapter मध्ये तुम्ही काय शिकाल

  • Load average आणि CPU states वाचा
  • vmstat, free आणि iostat बरोबर वापरा
  • sar ने history शोधा
  • lsof ने open files आणि ports बघा
  • strace ने अडकलेला process trace करा
  • sysctl ने kernel settings tune आणि persist करा

1. रोजचं उदाहरण: गर्दीचं railway station

हे का लागतं?

सकाळी 9 ला Pune station slow आहे. Ticket windows कमी (CPU), benches कमी म्हणून लोक corridor मधे उभे (memory), luggage belt अडकला (disk), की बाहेर trains late (network)? चांगला station master staff वर ओरडण्याआधी प्रत्येक तपासतो.

हे काय आहे?

Ticket windows = CPU cores. Queue = load average. Benches = RAM; corridor = swap. Luggage belt = disk I/O wait. Trains = network. Station master ची वही = sar history.

कसं करायचं (step by step)

60-second performance checkuptime: load vs coresvmstat 1 5: r, b, si/so, wafree -h: available memory आणि swapiostat -xz 1 3: %util आणि awaittop किंवा pidstat: कोणता processsar: काल पण slow होतं का?
आधी मोजा, एक गोष्ट बदला, परत मोजा.

2. uptime आणि load average

हे का लागतं?

Load average हा सगळे पहिला सांगतात तो number, आणि बहुतेक चुकीचा वाचला जातो.

हे काय आहे?

uptime 1, 5 आणि 15 minutes चा load. Load म्हणजे चालणारे किंवा थांबलेले (CPU किंवा disk साठी) tasks. nproc शी तुलना: 4 cores वर load 4 म्हणजे full; 4 cores वर 12 म्हणजे queue. 15-minute पेक्षा 1-minute वाढत असेल तर बिघडतंय.

कसं करायचं (step by step)

  1. Load तपासा.
uptime

Output:

21:40:12 up 12 days,  3 users,  load average: 7.92, 4.10, 2.05

याचा अर्थ: पटकन वाढतोय.

  1. किती cores?
nproc

Output:

4

याचा अर्थ: 4 cores वर 7.9 = queue.

  1. /proc मधून.
cat /proc/loadavg

Output:

7.92 4.10 2.05 9/412 22811

याचा अर्थ: 412 पैकी 9 running.

3. top आणि htop: CPU कोण वापरतो

हे का लागतं?

Load नंतर process नाव हवं.

हे काय आहे?

top header: us (user), sy (kernel), wa (disk ची वाट), st (hypervisor ने चोरलेलं), id (idle). CPU नुसार P, memory नुसार M, per-core 1, kill k. Scripts साठी top -b -n 1 snapshot. htop जास्त friendly.

कसं करायचं (step by step)

  1. Snapshot.
top -b -n 1 | head -12

Output:

%Cpu(s): 92.1 us, 3.0 sy, 0.0 wa, 0.0 st, 4.9 id
  PID USER  %CPU %MEM COMMAND
 3011 app   381  12.0 java

याचा अर्थ: Java ~4 cores वापरतो.

  1. Memory जास्त वापरणारे.
ps aux --sort=-%mem | head -5

Output:

USER PID %CPU %MEM ... COMMAND
mysql 1200 20 48.1 ... mysqld

याचा अर्थ: MySQL अर्धी RAM.

  1. वेळेनुसार process.
pidstat -u 2 3

Output:

Average: UID PID %usr %system %CPU Command
Average: 1001 3011 370 8 378 java

याचा अर्थ: sysstat मधून.

4. vmstat: पूर्ण picture

हे का लागतं?

एका command मधे CPU queue, memory, swap आणि disk wait एकत्र.

हे काय आहे?

vmstat 1 5 दर second line, 5 वेळा; पहिली line (boot पासून) ignore. r = runnable (cores पेक्षा जास्त = CPU busy). b = I/O वर blocked. si/so = swap in/out (0 हवं). wa = I/O wait. us/sy/id/st = CPU split. cs = context switches.

Columnअर्थकाळजी कधी
rCPU ची वाट> cores
bDisk ची वाट> 0 बहुतेक
si/soSwapping> 0
waI/O wait %> 20
stचोरलेला CPUcloud वर > 10

कसं करायचं (step by step)

  1. CPU bound.
vmstat 1 5

Output:

r b swpd free  si so  bi  bo  us sy id wa st
9 0 0    812M  0  0   2   40  93  4  3  0  0

याचा अर्थ: 4 cores वर r=9.

  1. Disk bound.
vmstat 2 3

Output:

r b  si so   bi    bo  us sy id wa
1 6  0  0  52000  800  5  3 40 52

याचा अर्थ: b=6, wa=52: disk.

  1. Memory pressure.
vmstat -S M 1 3

Output:

r b swpd free si  so
2 1 1800 60   950 1200

याचा अर्थ: जोरदार swapping.

5. free: memory सोप्या शब्दांत

हे का लागतं?

'free' कमी दिसलं की लोक घाबरतात, पण Linux spare RAM मुद्दाम cache म्हणून वापरतो.

हे काय आहे?

free -h total, used, free, buff/cache आणि available. available बघा: apps ना अजून मिळू शकणारी. Swap used आणि vmstat मधे si/so म्हणजे खरं pressure. OOM killer messages dmesg किंवा journalctl -k मधे.

कसं करायचं (step by step)

  1. Healthy.
free -h

Output:

       total used free shared buff/cache available
Mem:    15Gi 4.1Gi 310Mi 12Mi 11Gi  10Gi
Swap:   2.0Gi  0B  2.0Gi

याचा अर्थ: free कमी पण 10G available: ठीक.

  1. Pressure मधे.
free -m

Output:

Mem: 7821 7600 90 ... available 140
Swap: 2047 1980 67

याचा अर्थ: लवकरच memory संपेल.

  1. कोण killed?
journalctl -k | grep -i 'out of memory'

Output:

Out of memory: Killed process 3011 (java)

याचा अर्थ: OOM killer.

6. iostat: disk problem आहे का?

हे का लागतं?

vmstat मधे जास्त wa किंवा b disk कडे बोट दाखवतो; iostat कोणती disk आणि किती वाईट ते सांगतो.

हे काय आहे?

sysstat install. iostat -xz 1 3: -x extended, -z idle disks लपवा. r/s w/s = operations, rkB/s wkB/s = throughput, r_await w_await = request ला ms, aqu-sz = queue, %util = busy वेळ. SSD/EBS वर %util पेक्षा await जास्त महत्त्वाचं. कोणता process I/O करतो ते iotop.

कसं करायचं (step by step)

  1. Extended.
iostat -xz 1 3

Output:

Device r/s  w/s  rkB/s wkB/s r_await w_await aqu-sz %util
nvme1n1 20 2900  80   46000  0.4    38.0    110   99.8

याचा अर्थ: Writes 38 ms थांबतात.

  1. कोणता process?
sudo iotop -oPa

Output:

PID  USER  DISK WRITE COMMAND
1200 mysql 1.9 G     mysqld

याचा अर्थ: MySQL writes.

  1. Per process.
pidstat -d 2 2

Output:

Average: PID kB_rd/s kB_wr/s Command
Average: 1200 0 45000 mysqld

याचा अर्थ: Confirms.

7. sar: काल रात्री काय झालं

हे का लागतं?

Problem रात्री 3 ला होता; सकाळी सगळं ठीक दिसतं. sar history ठेवतो.

हे काय आहे?

sysstat enable (systemctl enable --now sysstat); दर 10 minutes /var/log/sa (RHEL) किंवा /var/log/sysstat (Ubuntu) मधे save. sar -u CPU, -r memory, -b I/O, -d disks, -n DEV network, -q load. -f FILE दुसरा दिवस, -s/-e वेळ window.

कसं करायचं (step by step)

  1. चालू करा.
sudo systemctl enable --now sysstat

Output:

Created symlink ... sysstat.service

याचा अर्थ: History सुरू.

  1. काल रात्रीचा CPU.
sar -u -s 02:00:00 -e 04:00:00

Output:

02:50:01 all  12.1 3.0 41.2 ...
03:00:01 all  10.0 2.9 55.8 ...

याचा अर्थ: रात्री 3 ला जास्त iowait.

  1. दुसरा दिवस.
sar -q -f /var/log/sa/sa24

Output:

runq-sz plist-sz ldavg-1 ldavg-5
   14      420      12.4    9.8

याचा अर्थ: 24 तारखेचा load.

  1. Network.
sar -n DEV 1 3

Output:

IFACE rxkB/s txkB/s
ens5  9200   88000

याचा अर्थ: मोठे uploads.

8. lsof: कोणती file कोणी उघडली

हे का लागतं?

'Too many open files', busy mount किंवा वापरात port सगळ्यांना lsof हवं.

हे काय आहे?

lsof -p PID process च्या files. lsof -u USER user नुसार. lsof -i :PORT port कोण वापरतो. lsof FILE file कोणी उघडली. lsof -p PID | wc -l ने मोजा आणि ulimit -n किंवा /proc/PID/limits शी तुलना.

कसं करायचं (step by step)

  1. Port owner.
sudo lsof -i :8080

Output:

COMMAND PID USER FD TYPE NODE NAME
java   3011 app 112u IPv6 TCP *:8080 (LISTEN)

याचा अर्थ: Java listen करतो.

  1. Files मोजा.
sudo lsof -p 3011 | wc -l

Output:

65480

याचा अर्थ: Limit जवळ?

  1. Limit तपासा.
grep 'open files' /proc/3011/limits

Output:

Max open files 65536 65536 files

याचा अर्थ: जवळजवळ full: LimitNOFILE वाढवा.

9. strace: process काय करतो?

हे का लागतं?

Process logs शिवाय 'अडकला'. strace तो आत्ता करत असलेले system calls दाखवतो.

हे काय आहे?

strace -p PID चालू process ला attach. -f threads/children follow. -e trace=network,file calls मर्यादित. -c summary count. -T प्रत्येक call चा वेळ. Process slow करतो, म्हणून production मधे थोडा वेळच.

कसं करायचं (step by step)

  1. Network वर अडकला.
sudo strace -p 4410

Output:

connect(7, {sa_family=AF_INET, sin_port=htons(5432), sin_addr=inet_addr("10.0.3.9")}, 16

याचा अर्थ: DB ची वाट.

  1. File नाही.
strace -e trace=openat ./report.sh 2>&1 | grep ENOENT

Output:

openat(AT_FDCWD, "/etc/report.conf", O_RDONLY) = -1 ENOENT

याचा अर्थ: Config नाही.

  1. Summary.
sudo strace -c -f -p 3011

Output:

% time  calls syscall
 71.2   9021 futex
 20.1   4410 epoll_wait

याचा अर्थ: बहुतेक locks ची वाट.

10. sysctl: kernel tune

हे का लागतं?

काही limits (connections, swappiness, file handles) kernel मधे असतात आणि live बदलता येतात.

हे काय आहे?

sysctl KEY वाचतो, sysctl -w KEY=VAL reboot पर्यंत set. /etc/sysctl.d/99-app.conf मधे persist आणि sysctl --system ने load. सामान्य: vm.swappiness, fs.file-max, net.core.somaxconn, net.ipv4.ip_local_port_range, net.ipv4.tcp_tw_reuse. प्रत्येक key /proc/sys खाली file.

कसं करायचं (step by step)

  1. वाचा.
sysctl vm.swappiness

Output:

vm.swappiness = 60

याचा अर्थ: Default.

  1. Live set.
sudo sysctl -w net.core.somaxconn=4096

Output:

net.core.somaxconn = 4096

याचा अर्थ: Reboot पर्यंत.

  1. Persist.
echo 'vm.swappiness=10' | sudo tee /etc/sysctl.d/99-db.conf && sudo sysctl --system

Output:

* Applying /etc/sysctl.d/99-db.conf ...
vm.swappiness = 10

याचा अर्थ: Reboot नंतर टिकतं.

  1. /proc सारखंच.
cat /proc/sys/vm/swappiness

Output:

10

याचा अर्थ: Key = file.

11. ulimit आणि service limits

हे का लागतं?

'Too many open files' बहुतेक per-process limit, kernel नाही.

हे काय आहे?

ulimit -n तुमच्या shell चं open-file limit; ulimit -a सगळे. Users साठी /etc/security/limits.conf. systemd services साठी drop-in मधे LimitNOFILE= (systemctl edit), मग restart. Live value /proc/PID/limits मधे.

कसं करायचं (step by step)

  1. Shell limit.
ulimit -n

Output:

1024

याचा अर्थ: कमी default.

  1. Service drop-in.
sudo systemctl edit shop-api

Output:

[Service]
LimitNOFILE=200000

याचा अर्थ: मग restart.

  1. Verify.
grep 'open files' /proc/$(pgrep -f shop-api | head -1)/limits

Output:

Max open files 200000 200000 files

याचा अर्थ: लागू.

12. Slowness ची step-by-step पद्धत (USE)

हे का लागतं?

पद्धतीशिवाय tools मधे उड्या मारता आणि कारण चुकतं.

हे काय आहे?

USE = प्रत्येक resource साठी Utilisation, Saturation, Errors. CPU: top us/sy, vmstat r. Memory: free available, si/so, OOM. Disk: iostat %util/await, aqu-sz. Network: sar -n DEV, ss -s, ip -s link मधे drops. काहीही बदलण्याआधी वेळ आणि numbers लिहा.

कसं करायचं (step by step)

  1. Kernel log मधे errors.
dmesg -T | tail -5

Output:

[Sun Oct 25 21:41] nvme1n1: I/O error ...

याचा अर्थ: Hardware error.

  1. Network drops.
ip -s link show ens5 | grep -A1 RX

Output:

RX: bytes packets errors dropped
 9.1G 8120330 0 15422

याचा अर्थ: Drops दिसले.

  1. Steal time.
mpstat 1 3 | tail -1

Output:

Average: all 40.0 0 3.0 0 0 0 31.0 ...

याचा अर्थ: %steal 31: noisy host.

13. अनेक industries मधली खरी उदाहरणं

हे का लागतं?

तेच Linux skill प्रत्येक प्रकारच्या company मध्ये लागतं. वेगवेगळ्या ठिकाणी पाहिलं की लक्षात राहतं.

हे काय आहे?

प्रत्येक row म्हणजे एक काल्पनिक team. कोण हे वापरतं आणि कसं ते दाखवते.

कसं करायचं (step by step)

Team आणि शहरते कसं वापरतातCommand
Rohit, food delivery, PuneLunch rush ला CPU hog शोधतोtop -b -n 1
Grace, bank, LondonAudits साठी sar historysar -u -f /var/log/sa/sa24
Kenji, gaming, OsakaGame servers साठी somaxconnsysctl -w net.core.somaxconn=4096
Ayesha, hospital, DubaiDB disk waits fixiostat -xz 1 3
Lucas, SaaS, São PauloOpen-file limits वाढवतोLimitNOFILE=200000
Priya, ed-tech, NagpurHung worker stracestrace -p PID

14. नेहमीच्या errors आणि त्यांचे fixes

हे का लागतं?

हे errors सगळ्यांना येतात. कारण माहीत असलं की तास वाचतात.

हे काय आहे?

आधी नेमका message वाचा. मग खालच्या row शी जुळवा.

कसं करायचं (step by step)

दिसणारा errorका होतंFix कसा करायचा
Too many open filesProcess चं nofile limitLimitNOFILE किंवा ulimit वाढवा.
grep 'open files' /proc/PID/limits
Out of memory: Killed processRAM आणि swap संपलंMemory user शोधा; RAM किंवा limits.
journalctl -k | grep -i oom
iostat: command not foundsysstat नाहीsysstat install.
sudo dnf install -y sysstat
Cannot open /var/log/sa/sa25sysstat collect करत नाहीService enable.
sudo systemctl enable --now sysstat
strace: attach: ptrace(PTRACE_SEIZE): Operation not permittedRoot नाही किंवा ptrace blocksudo; yama ptrace_scope.
sysctl kernel.yama.ptrace_scope
sysctl: cannot stat /proc/sys/net/...: No such fileचुकीची key किंवा module नाहीSpelling, module load.
sysctl -a | grep somax
Setting lost after rebootफक्त -w ने set/etc/sysctl.d मधे.
sudo sysctl --system
High load but low CPUDisk वर blocked tasks (D state)iostat आणि D processes.
ps -eo state,pid,cmd | grep '^D'
%st high on cloud VMNoisy neighbour किंवा burst credits संपलेमोठा किंवा non-burst type.
mpstat 1 3
Connection drops under load: SYN backlog fullsomaxconn/backlog कमीsomaxconn आणि app backlog वाढवा.
sysctl net.core.somaxconn

15. Troubleshooting step by step

हे का लागतं?

Resource by resource जा; numbers आणि वेळ लिहा.

हे काय आहे?

वरून खाली जा. ज्या step ला problem दिसतो तिथे थांबा.

कसं करायचं (step by step)

  1. Load vs cores
uptime; nproc
  1. CPU, memory, disk एकत्र
vmstat 1 5
  1. Memory
free -h
  1. Disk
iostat -xz 1 3
  1. Process
top -b -n 1 | head -15
  1. History
sar -q
  1. Kernel errors
dmesg -T | tail

16. Lab 1: Load बनवा आणि पकडा

हे का लागतं?

CPU आणि disk load बनवा, मग vmstat, top आणि iostat ने शोधा.

हे काय आहे?

पूर्ण hands-on lab. प्रत्येक step test Linux machine वर करा (EC2 instance, VM किंवा WSL).

कसं करायचं (step by step)

  1. Tools install.
sudo dnf install -y sysstat stress-ng

Output:

Complete!
  1. CPU load.
stress-ng --cpu 4 --timeout 60s &

Output:

stress-ng: info: dispatching hogs: 4 cpu
  1. बघा.
vmstat 1 5

Output:

r 4-5, us ~100
  1. Disk load.
stress-ng --hdd 2 --timeout 60s &

Output:

dispatching hogs: 2 hdd
  1. Disk शोधा.
iostat -xz 1 3

Output:

%util high, w_await up

17. Lab 2: strace आणि sysctl

हे का लागतं?

थांबलेली command trace करा आणि kernel setting persist.

हे काय आहे?

पूर्ण hands-on lab. प्रत्येक step test Linux machine वर करा (EC2 instance, VM किंवा WSL).

कसं करायचं (step by step)

  1. थांबणारी command.
sleep 300 &

Output:

[1] 5120
  1. Trace.
sudo strace -p 5120

Output:

clock_nanosleep(...)
  1. थांबवा.
kill %1

Output:

Terminated
  1. Swappiness live.
sudo sysctl -w vm.swappiness=20

Output:

vm.swappiness = 20
  1. Persist.
echo 'vm.swappiness=20' | sudo tee /etc/sysctl.d/90-lab.conf && sudo sysctl --system

Output:

vm.swappiness = 20

Ravindra Bagale's Tip

Always start with vmstat 1 5. In one screen it tells you whether the problem is CPU (r high), memory (si/so not zero), or disk (b and wa high), so you pick the right next tool instead of guessing.

18. नेहमी विचारले जाणारे प्रश्न

प्र. Free memory कमी वाईट?

नाही. available बघा.

प्र. चांगला load किती?

Cores एवढा किंवा कमी.

प्र. iowait काय?

Disk ची वाट बघत CPU idle.

प्र. Prod मधे strace safe?

थोडा वेळ; process slow होतो.

प्र. sar data कुठे?

/var/log/sa किंवा /var/log/sysstat.

प्र. sysctl vs ulimit?

sysctl kernel-wide; ulimit per process.

प्र. Swappiness 0 ठेवू?

DB साठी बहुतेक 10; 0 ने OOM लवकर.

प्र. Steal time काय?

Hypervisor ने इतरांना दिलेला CPU.

19. मुलाखत प्रश्न आणि उत्तरं

Beginner level

प्र. Load average?

uptime.

प्र. Memory?

free -h.

प्र. Live process view?

top.

प्र. iostat install?

sysstat package.

Mid level level

प्र. vmstat r आणि b?

r CPU ची वाट, b I/O वर blocked.

प्र. Port 8080 कोण?

lsof -i :8080 किंवा ss -ltnp.

प्र. sysctl persist?

/etc/sysctl.d मधे file मग sysctl --system.

प्र. रात्री 3 ला slow, कसं?

-s आणि -e सह sar.

Senior level

प्र. Load जास्त, CPU idle: का?

Disk किंवा NFS वर D-state tasks; iostat आणि ps state.

प्र. USE method?

प्रत्येक resource चे Utilisation, Saturation, Errors.

प्र. App hang, logs नाहीत: steps?

strace -p, lsof -p, /proc/PID/stack, DB/network तपासा.

प्र. Busy web server kernel tune?

somaxconn, port range, tcp_tw_reuse, file-max; आधी आणि नंतर मोजा.

घरी करून बघा

  1. तुमच्या machine वर uptime, vmstat 1 5, free -h आणि iostat -xz 1 3 चालवा आणि प्रत्येकावर एक line लिहा.
  2. आज sysstat enable करा आणि उद्या sar ने कालचा CPU वाचा.

सराव Tasks

या scenario बद्दल

Maple Leaf Books हा टोरांटो मधला पुस्तक विक्री व्यवसाय आहे. Emily Tremblay त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे CAD मध्ये मोजले जातात आणि AWS resources ca-central-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.

0 / 17

सोपं Cores मोजा

का: Slow servers मुळे BIZ चे customers जातात.

काय करायचं: Emily Tremblay Maple Leaf Books मधे load ची CPUs शी तुलना करतो.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं vmstat 2x4

का: Slow servers मुळे BIZ चे customers जातात.

काय करायचं: vmstat दर 2 seconds, 4 वेळा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं GB मधे memory

का: Slow servers मुळे BIZ चे customers जातात.

काय करायचं: Memory gigabytes मधे.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं Memory history

का: Slow servers मुळे BIZ चे customers जातात.

काय करायचं: sar ने memory usage history.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं User च्या files

का: Slow servers मुळे BIZ चे customers जातात.

काय करायचं: User postgres च्या open files.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं file-max वाचा

का: Slow servers मुळे BIZ चे customers जातात.

काय करायचं: Kernel setting fs.file-max वाचा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं सगळे limits

का: Slow servers मुळे BIZ चे customers जातात.

काय करायचं: सगळे hard shell resource limits.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम vmstat MB मधे

का: Slow servers मुळे BIZ चे customers जातात.

काय करायचं: vmstat megabytes मधे, दर 3 seconds, 2 वेळा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम Totals सह memory

का: Slow servers मुळे BIZ चे customers जातात.

काय करायचं: Human-readable memory, total line सह.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम एक disk

का: Slow servers मुळे BIZ चे customers जातात.

काय करायचं: फक्त nvme1n1 चा extended iostat, दर 2 seconds, 5 वेळा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम Disk history

का: Slow servers मुळे BIZ चे customers जातात.

काय करायचं: sar ने block device history, 1 second, 2 वेळा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम Port 443 owner

का: Slow servers मुळे BIZ चे customers जातात.

काय करायचं: Port 443 कोणता process वापरतो.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम File opens trace

का: Slow servers मुळे BIZ चे customers जातात.

काय करायचं: PID 2210 चे फक्त file-related calls trace.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम Port range set

का: Slow servers मुळे BIZ चे customers जातात.

काय करायचं: net.ipv4.tcp_tw_reuse live 1 करा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

अवघड File मधून load

का: Slow servers मुळे BIZ चे customers जातात.

काय करायचं: /var/log/sa/sa20 मधून queue/load history.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

अवघड Syscall summary

का: Slow servers मुळे BIZ चे customers जातात.

काय करायचं: PID 2210 चे syscalls threads सह मोजा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

अवघड एक file load

का: Slow servers मुळे BIZ चे customers जातात.

काय करायचं: फक्त /etc/sysctl.d/80-web.conf मधून settings load.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

थोडक्यात सांगायचं तर

  1. Load vs cores queue आहे का ते सांगतं.
  2. vmstat: r, b, si/so, wa एका view मधे.
  3. free: free नाही, available बघा.
  4. iostat -xz: प्रत्येक disk चे await आणि %util.
  5. sar history ठेवतो; lsof आणि strace process आत बघतात.
  6. sysctl -w live, persist साठी /etc/sysctl.d.

उजळणी, तुलना आणि मुलाखत cards

हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.

4 steps मधे vmstat. Server slow आहे? r = run queue, b = blocked. wa जास्त = disk ची वाट. दर 2 seconds.
उजळणी card: 4 steps मधे vmstat · PNG download करा · Card page उघडा
iostat disk check. कोणती disk busy? -x extended stats. %util 100 जवळ = saturated. बघा.
उजळणी card: iostat disk check · PNG download करा · Card page उघडा
vmstat vs iostat. CPU, memory, run queue. / प्रत्येक disk चा I/O.
तुलना: vmstat vs iostat · PNG download करा · Card page उघडा
lsof vs strace. कोणत्या files आणि ports open. / आत्ता कोणते system calls.
तुलना: lsof vs strace · PNG download करा · Card page उघडा
Load जास्त पण CPU idle?. Load मधे D-state tasks पण. बहुतेक slow disk किंवा NFS. wa बघा.
मुलाखत card: Load जास्त पण CPU idle? · PNG download करा · Card page उघडा
free मधे कमी free memory?. Spare RAM cache साठी. free नाही, available बघा. Human view.
मुलाखत card: free मधे कमी free memory? · PNG download करा · Card page उघडा
App hang, logs नाहीत?. strace system calls दाखवतो. कुठे थांबलंय ते. Attach.
मुलाखत card: App hang, logs नाहीत? · PNG download करा · Card page उघडा
Kernel setting safe बदल?. आत्ता sysctl -w. Reboot साठी /etc/sysctl.d file. Reload.
मुलाखत card: Kernel setting safe बदल? · PNG download करा · Card page उघडा

अजून cards: Ravi Sir's Cards.