ශ්‍රී ලංකාවේ නවතම තාක්ෂණික පුවත් 2026-07-24, Friday
💻 ක්‍රමලේඛනය · 🕒 කියවීමට විනාඩි 2 · 👁 1

අඩු වශයෙන් VPS එකේ ClickHouse ඉඩ නොමැතිව 11 මිලියන පේළි එක්කම එකතු කරයි!

අඩු වශයෙන් VPS එකේ ClickHouse ඉඩ නොමැතිව 11 මිලියන පේළි එක්කම එකතු කරයි!

මම මාගේ දෙකේ අඩු-වියළි VPS එකක (2 CPU, 2 GB RAM, 20 GB SSD) තනි observability මෙවලමක් ඩොකර් කන්ටේනර තුල ධාවනය කරයි. එහි Go යෙදුම, PostgreSQL, ClickHouse යන තුන් කන්ටේනර වේ.

එක් රාත්‍රියේ Docker stats පෙන්වූයේ ClickHouse 1 GB සීමාවේ 880 MB භාවිතා කරමින්, පද්ධතිය swap වෙමින්, නව සිදුවීම් කිසිවක් නොලැබෙන්නේය. මම පළමුවම පරීක්ෂා කළේ යෙදුම සුරකින ලද දත්ත හා ClickHouse තමන්ගේම ගබඩා කරන දත්ත අතර ප්‍රමාණයයි.

යෙදුමේ දත්ත: 543 KB, 16 k පේළි
ClickHouse පද්ධති දත්ත: 579 MB, 46.3 M පේළි

එක්කෝ 12 GB භාවිතා වූ SSD හි, යථාර්ථය 0.5 MB telemetry පමණයි. ගැටලුව ClickHouse හි system logs වලට TTL (Time‑to‑Live) සැකසූ නොමැතිකම නිසා, ඒවා අඛණ්ඩව වැඩිවීමයි. ප්‍රධාන ලොග් වර්ග:

  • trace_log – 404 MB, 26 M පේළි (පැයකින් එක් වරක් සම්පූර්ණ query profiler)
  • asynchronous_metric_log – 16.6 M පේළි
  • text_log – 132 MB
  • query_log, latency_log – TTL නොමැත

30 තත්පරකදී ඇතුළත් වේගය:

  • trace_log – 227 rows/s
  • asynchronous_metric_log – 157 rows/s
  • text_log – 44 rows/s
  • යෙදුම – 5 rows/s

එසේම, 30 තත්පර තුළ ලේඛන 16,222 ක් ඇතුළත් වුවත්, ClickHouse 11,007,643 පේළි merge කර තිබුණි. ඒ කියන්නේ එක් පේළියක් ලියන විට 678 පේළි නැවත ලියනවා වගේ.

MergeTree යාන්ත්‍රණය තනි insert එකක් වෙනත් data part එකකට තබා, පසුකාලීනව ඒවාව එකතු කරයි. කුඩා වගුවකට මෙය අඩු පිරිවැයක්, නමුත් 26 M පේළි ඇති විශාල වගුවක නිතර insert කරන විට I/O වැඩිවෙයි. ඒ නිසා CPU 60 % පමණ භාවිතා වීමේ “idle app” රහස මෙයයි.

ශ්‍රී ලංකාවට ඇති වැදගත්කම

ශ්‍රී ලාංකීය සංවර්ධකයින්, විශ්වවිද්‍යාල සිසුන්, සහ කුඩා ව්‍යාපාරිකයන්ට මේ සිදුවීමෙන් ඉගෙන ගත යුතු කරුණු කිහිපයක් ඇත:

  • TTL සැකසීම අත්‍යවශ්‍යයි: system logs වලට TTL එකක් දී නැතිවීමෙන් ඩිස්ක් ඉක්මනින් පිරෙයි.
  • MergeTree හැසිරීම හොඳින් දැනගන්න: නිතර insert කරන විට merge ගණන වැඩිවීම නිසා I/O bottleneck උදාවේ.
  • Docker stats වල CPU ප්‍රතිශතය සම්පූර්ණ යන්ත්‍රයට නොව එක core එකට අදාලයි: 2‑core VPS එකේ 60 % කියන්නේ සම්පූර්ණ CPU වල 30 % පමණයි.
  • ලොකු සම්පත් අවශ්‍ය නොවන සේවාවන්ට නිවැරදි සකස්කිරීම: background_pool_size, mark_cache_size වැනි පරාමිතීන් කුඩා මැෂින් වලට අනුකූලව සකස් කළ යුතුය.

මෙම සකස්කිරීම් නිසා merge ගණන අඩු වී, ඩිස්ක් හි 2.7 GB පමණ ඉවත් විය, CPU භාවිතය 69 % සිට 61 % දක්වා අඩුවිය.

අවසානයේ, ClickHouse “අඩු VPS එකේ අඩු වැඩ” ලෙස පෙනුන නමුත්, නිරීක්ෂණය නොකළ ලොග් හා වැරදි මට්ටමේ merge නිසා එය බරපතළ බව පැහැදිලි විය. නිවැරදි TTL, සරල logging, සහ සුදුසු pool සැකසීම් ඔබේ සේවාදායකය ඉක්මනින්, ආරක්ෂිතව, හා අඩු පිරිවැයෙන් පවත්වා ගැනීමට උපකාරී වේ.

💡 ඔබේ සේවාදායකය හොඳින් පවත්වා ගැනීමට අදම සැකසුම් සකසන්න!
මූලාශ්‍රය මෙම ලිපිය AI මගින් රචිත මුල් සාරාංශයකි. සම්පූර්ණ වාර්තාව කියවන්න:
Dev.to ↗
#ClickHouse #Performance #VPS #Database #SriLanka