Close-up of a modern server room with blinking indicator lights and cables, system administrator managing servers on a laptop.

PHP-FPM تەڭشەش: TTFB ئۈنۈمنى ئاشۇرۇش ئۈچۈن جەريان باشقۇرغۇچى كونفىگۇراتسىيىسى

PHP-FPM نى چۈشىنىش ۋە ئۇنىڭ بىرىنچى بايتقا ۋاقىت (TTFB) نى قىسقارتتىشىدىكى رولى

PHP-FPM (PHP FastCGI Process Manager) زامانىۋى PHP قوللىنىشلىرىنىڭ ئىجرا سىستېمىسىدىكى مۇھىم قىسمىدۇر. ئۇ PHP سىكرىپت ئىجرا قىلىشنى ئۈنۈملۈك باشقۇرۇش ئۈچۈن خىزمەتچى جەريانلار توپلىمىنى باشقۇرغۇچى رولىنى ئوينايدۇ، بۇ خىزمەتچى جەريانلار تور تەلەپلىرىگە جاۋاب قايتۇرىدۇ. ئەڭ ئەتىرەت CGI دىن پەرقلىق، PHP-FPM ھەر بىر تەلەپ ئۈچۈن يېڭى جەريان قوزغىتىشتىن كېلىپ چىقىدىغان يۈكنى ئازايتىش ئۈچۈن داۋاملىق PHP جەريانلىرىنى ساقلاشقا لايىھەلەنگەن. بۇ داۋاملىق جەريان باشقۇرۇش PHP كودىنىڭ تېز ئىجرا بولۇشىغا ۋە تور قوللىنىشلىرىنىڭ جاۋاب قايتۇرۇش سۈرئىتىنىڭ ياخشىلاشقا سەۋەپ بولىدۇ.

بىرىنچى بايتقا ۋاقىت (TTFB) دېگەن مەنىسى، مۇلازىمىتىچى HTTP تەلەپ يوللىغان ۋاقىتتىن باشلاپ، مۇلازىمەتچىدىن جاۋابنىڭ بىرىنچى بايتىنى قوبۇل قىلىش ئارىلىقىدىكى ۋاقىتنى بىلدۈرىدۇ. TTFB تور ئىجرا سۈپىتىنى ئۆلچەشتىكى مۇھىم كۆرسەتكۈچ بولۇپ، ئۇ بىۋاسىتە قوللىنىشچىلار تەجرىبىسى ۋە ئىزدەش ماتورى رېتىڭىغا تەسىر كۆرسىتىدۇ. تۆۋەن TTFB بەتنىڭ باشلىنىش سۈرئىتىنى تېزلىتىپ، قوللىنىشچىلارنىڭ تەسىر قىلىش سۈرئىتىنى ياخشىلايدۇ. SEO ئۈچۈن TTFB نى ئۈنۈملۈك قىلىش مۇھىم، چۈنكى ئىزدەش ماتورلىرى تېز مەزمۇن يەتكۈزۈشنى ياخشى كۆرىدۇ.

PHP-FPM نىڭ PHP خىزمەتچى جەريانلىرىنى باشقۇرۇش ئىقتىدارى TTFB نى ئۈنۈملۈك قىلىشتا مۇھىم رول ئوينايدۇ. تور مۇلازىمىتىچى PHP تەلەپ قوبۇل قىلغاندا، PHP-FPM سىكرىپت ئىجرا قىلىش ئۈچۈن بىر خىزمەتچى جەريان تەيىنلەيدۇ. ئەگەر PHP-FPM توغرا تەڭشەلگەن بولمىسا، خىزمەتچى جەريانلار يېتىشمەسلىكى سەۋەبىدىن تەلەپلەر قۇرۇلۇپ قالىشى ۋە كېچىكىش ئاشىشى مۇمكىن. بەكسىچە، بەك كۆپ بوش خىزمەتچى جەريانلار سىستېما بايلىقلىرىنى بوشقا ئىستېمال قىلىدۇ. شۇڭا، جەريان باشقۇرۇش PHP سىكرىپتلارنىڭ قانچىلىك تېز باشلىنىشىغا بىۋاسىتە تەسىر كۆرسىتىدۇ، بۇ TTFB غا تەسىر قىلىدۇ.

يوقى، مودرن داتا سينتر ۾ تورن جي هاءِ پرفارمنس ويب سرور ريڪ، روشن حالت واريون روشنيون، PHP-FPM ورڪ پروسيس منيجمنٽ، تيز رفتار ۽ وسيلن جي بهتر استعمال جو ڏيک.

PHP-FPM نىڭ ئۈچ خىل ئاساسلىق جەريان باشقۇرۇش رېژىملىرى بار — static، dynamic ۋە ondemand — ھەر بىرىنىڭ پەرقلىق خۇسۇسىيەتلىرى ۋە ئىجرا سۈپىتىگە تەسىرى بار:

Үч сервер процесси иши көрүнүшү, статик, динамик масштабтоо жана талап боюнча процесстер, маалымат борбору чөйрөсүндө.
  • Static رېژىمى بەلگىلەنگەن ساندا خىزمەتچى جەريانلارنى ئالدىن تەييارلايدۇ. بۇ ئۇسۇل تەلەپ كۆپ بولغاندا TTFB نى ئازايتىشقا كاپالەتلىك قىلىدۇ، ئەمما تۆۋەن تىرافىك ۋاقىتلىرىدا بايلىقنى بوشقا ئىستېمال قىلىشى مۇمكىن.

  • Dynamic رېژىمى خىزمەتچى جەريانلارنىڭ سانىنى بەلگىلەنگەن ئەڭ تۆۋەن ۋە ئەڭ يۇقىرى چەك ئارىلىقى


TTFB نى ئۈنۈملۈك قىلىشتا مۇھىم بولغان PHP-FPM جەريان باشقۇرغۇچى تەڭشەش پارامېتىرلىرى

pm (جەريان باشقۇرغۇچى) رېژىملىرىنىڭ تەپسىلىي چۈشەندۈرلىشى: Static، Dynamic، Ondemand

pm پارامېتىرى PHP-FPM نىڭ خىزمەتچى جەريانلىرىنى قانداق باشقۇرۇشىنى بەلگىلەيدۇ، بۇ تور مۇلازىمىتىچىنىڭ جاۋاب قايتۇرۇش سۈرئىتى ۋە TTFB غا بىۋاسىتە تەسىر كۆرسىتىدۇ. توغرا رېژىم تاللاش تىرافىك ئەھۋالى، مۇلازىمىتىچى بايلىقلىرى ۋە ئىجرا مەقسەتلىرىگە باغلىق.

  • Static رېژىمى: خىزمەتچى جەريانلارنىڭ سانى pm.max_children ئارقىلىق بەلگىلەنگەن ھالدا مۇقىم بولۇپ قالىدۇ. بۇ تەڭشەش PHP-FPM نىڭ ھەر ۋاقىت تەلەپ قوبۇل قىلىشقا تەييار خىزمەتچى جەريانلار سانىغا ئىگە بولۇشىنى كاپالەتلەيدۇ، بۇ يۇقىرى تىرافىك ۋە ئالدىن بىلىنەلەيدىغان ئىشلىتىش ئەھۋالىدا پايدىلىق. ئەمما، تۆۋەن تىرافىك ۋاقىتلىرىدا ئىشلىتىلمەيدىغان خىزمەتچى جەريانلار سەۋەبىدىن CPU ۋە خاتىرىنى بوشقا ئىستېمال قىلىشى مۇمكىن.

  • Dynamic رېژىمى: PHP-FPM غا خىزمەتچى جەريانلار سانىنى pm.min_spare_servers بىلەن pm.max_spare_servers ئارىسىدا ئۆزگەرتىش ئىمكانىيىتىنى بېرىدۇ، pm.start_servers باشلانغۇچ جەريان سانىنى بەلگىلەيدۇ. بۇ رېژىم كىرگەن تەلەپلەر مىقدارىغا قاراپ خىزمەتچى جەريانلارنى ماسلاشتۇرۇپ، بايلىق ئىستېمالى بىلەن جاۋاب قايتۇرۇش سۈرئىتىنى مۇۋاپىق تەڭپۇڭلايدۇ، بۇ TTFB نى تۈرلۈك يۈك شەرتلىرىدە تۆۋەن ساقلاشقا ياردەم بېرىدۇ.

  • Ondemand رېژىمى: باشلىنىشدا خىزمەتچى جەريانلار يوق بولۇپ، تەلەپلەر كەلگەندەلا يېڭى جەريانلار قوزغىتىلىدۇ. خىزمەتچى جەريانلار pm.process_idle_timeout ئارقىلىق بەلگىلەنگەن ۋاقىت ئىچىدە ئىشسىز قالسا توختىتىلىدۇ، بۇ سىستېما بايلىقلىرىنى تىجارەتسىز ۋاقىتتا ساقلاشقا ياردەم بېرىدۇ. بايلىقنى تېجەش جەھەتتىن پايدىلىق بولسىمۇ، جەريانلار قوزغىتىلغاندا تەلەپ قوبۇل قىلىشقا بىرىنچى قېتىمدا بىر ئاز كېچىكىش يۈز بېرىشى مۇمكىن، بۇ TTFB نىڭ ئاشىشىغا سەۋەپ بولۇشى مۇمكىن، شۇڭا دىققەت بىلەن تەڭشەش تەلەپ قىلىنىدۇ.

توغرا رېژىم تاللاش بايلىق ئىستېمالى ۋە جاۋاب قايتۇرۇش ۋاقتى ئارىسىدىكى مۇۋاپىقلىقنى ساقلاشنى تەلەپ قىلىدۇ، ئالاھىدە TTFB نى ئۈنۈملۈك قىلىش مەقسىتىدە.

pm.max_children نى تەڭشەش ئارقىلىق بىر ۋاقىتتا ئىجرا بولالايدىغان جەريان سانى ۋە بايلىق چەكلىمىسىنى مۇۋاپىقلاشتۇرۇش

pm.max_children كۆرسەتكۈچى PHP-FPM نىڭ

Dynamic رېژىمىدە pm.start_servers، pm.min_spare_servers ۋە pm.max_spare_servers نى تەڭشەش

Dynamic رېژىمىدە بۇ پارامېتىرلار PHP-FPM نىڭ خىزمەتچى جەريانلارنى قانداق ئۆلچەمدە كۆپەيتىش ياكى ئازايتىشنى تەپسىلىي تەڭشەيدۇ:

  • pm.start_servers: باشلىنىشدا قۇرۇلغان خىزمەتچى جەريانلار سانى. بۇنى ئوتتۇرىچە كۈتۈلگەن بىر ۋاقىتتا بولىدىغان تەلەپلەر سانىغا يېقىن قىممەتتە بەلگىلەش، خىزمەتچى جەريانلارنىڭ دەرىھال بار بولۇشىنى كاپالەتلەيدۇ، بۇ باشلىنىش تەلەپلەرنىڭ كېچىكىشىنى ۋە TTFB نى ئازايتىدۇ.

  • pm.min_spare_servers: ئىشسىز خىزمەتچى جەريانلارنىڭ ئەڭ تۆۋەن سانى. يېتەرلىك مىقداردا ئىشسىز جەريانلارنى ساقلاش، توختاپ قالغان جەريانلارنى قايتا قوزغىتىش سەۋەبىدىن كېچىكىشنىڭ ئالدىنى ئالىدۇ.

  • pm.max_spare_servers: ئىشسىز خىزمەتچى جەريانلارنىڭ ئەڭ يۇقىرى چەكى. بۇنى بەك يۇقىرى بەلگىلەش بايلىقنى بوشقا ئىستېمال قىلىشقا، بەك تۆۋەن بەلگىلەش بولسا يۈك يۇقىرى بولغاندا خىزمەتچى جەريانلارنىڭ يېتىشمەسلىكىگە سەۋەپ بولىدۇ.

بۇ پارامېتىرلارنى مۇۋاپىق تەڭشەش PHP-FPM نىڭ تەلەپلەرگە تېز ماسلىشىشىغا، جاۋاب قايتۇرۇش سۈرئىتىنى ساقلاپ، بايلىق ئىستېمالىنى ئۈنۈملۈك باشقۇرۇشقا ياردەم بېرىدۇ.

Ondemand رېژىمىدە pm.process_idle_timeout نى تەڭشەش ئارقىلىق ئىشسىز جەريانلار ۋە بايلىق بوشقا ئىستېمالىنى ئازايتىش

Ondemand رېژىمىدە pm.process_idle_timeout ئىشسىز خىزمەتچى جەرياننىڭ قانچە ۋاقىتتىن كېيىن توختىتىلىدىغانلىقىنى بەلگىلەيدۇ. بۇ ۋاقىتنى مۇۋاپىق تەڭشەش مۇھىم:

  • بەك قىسقا ۋاقىت جەريانلارنىڭ كۆپ قېتىم توختىتىلىشى ۋە قايتا قوزغىتىلىشىغا سەۋەپ بولۇپ، جەريان باشلىنىش كېچىكىشى ئارقىلىق TTFB نىڭ ئاشىشىغا ئالاقىدار.

  • بەك ئۇزۇن ۋاقىت بولسا، ئىشسىز جەريانلارنىڭ بوشقا بايلىق ئىستېمال قىلىشىغا سەۋەپ بولىدۇ.

ئادەتتە 10 دىن 20 سېكۇنتقىچە بولغان ۋاقىت بىلەن باشلاش، تىرافىك ئەھۋالىغا قاراپ تەڭشەش تەۋسىيە قىلىنىدۇ. بۇ پارامېتىرنى مۇۋاپىق تەڭشەش بايلىق تېجەش بىلەن جاۋاب قايتۇرۇش سۈرئىتىنى تۆۋەن ساقلاش ئارىسىدا مۇۋاپ

ھەر خىل خىزمەتچى يۈكلىرى ئۈچۈن ئادەتتىكى تەڭشەش مىساللىرى

  • تۆۋەن تىرافىكلىق سېرۋېر (مەسىلەن، كىچىك بلوگ ياكى شەخسىي تور بېتى):
pm = ondemand
pm.max_children = 5
pm.process_idle_timeout = 15s

بۇ تەڭشەش پەقەت تەلەپلەر بولغاندا خىزمەتچى جەريانلارنى قوزغىتىپ، بايلىقنى تېجەيدۇ، نادىر تىرافىكقا ماس كېلىدۇ.

  • ئوتتۇرا تىرافىكلىق سېرۋېر (مەسىلەن، كىچىك كارخانا تور بېتى):
pm = dynamic
pm.max_children = 20
pm.start_servers = 5
pm.min_spare_servers = 3
pm.max_spare_servers = 10

بايلىق ئىستېمالى بىلەن جاۋاب قايتۇرۇش سۈرئىتىنى مۇۋاپىق تەڭشەش ئارقىلىق ئوتتۇرا دەرىجىدىكى تىرافىك ئۆزگىرىشلەرگە ماسلىشىدۇ.

  • يۇقىرى تىرافىكلىق سېرۋېر (مەسىلەن، مەشھۇر ئېلېكترونلۇق سودا ياكى خەۋەر تور بېتى):
pm = static
pm.max_children = 50

يۇقىرى كۆپ قېتىملىق تەلەپلەرنى قوبۇل قىلىش ئۈچۈن بەلگىلەنگەن ساندا خىزمەتچى جەريانلارنى ھەر دائىم تەييار تۇرىدۇ، كېچىكىشنى ئازايتىپ، ئېغىر يۈك شەraitىدە TTFB نى ياخشىلايدۇ.

بۇ پارامېتىرلارنى ھەقىقىي تىرافىك ۋە بايلىق ئەھۋالىغا ئاساسەن ناھايىتى تەپسىلىي تەڭشەش، ئەڭ ياخشى ئىجراچانلىقنى ساقلاش ۋە TTFB نى داۋاملىق تۆۋەن تۇتۇش ئۈچۈن مۇھىم.

PHP-FPM ئىجراچانلىقىنى كۆزىتىش ۋە باھالاش ئارقىلىق تەڭشەش قارارلىرىغا يول كۆرسىتىش

TTFB ۋە PHP-FPM ئىجراچانلىقىنى ئۆلچەش ئۈچۈن قوراللار ۋە ئۇسۇللار

بىرىنچى بايتقا يېتىش ۋاقتى (TTFB) ۋە PHP-FPM نىڭ ئومۇمىي ئىجراچانلىقىنى توغرا ئۆلچەش تەڭشەشنىڭ مۇھىم ئاساسىدۇر. ھەر خىل قوراللار تەرەققىياتچىلار ۋە سىستېما باشقۇرغۇچىلارغا بۇ ئۆلچەملەرنى ھەقىقىي ۋاقىتتا ياكى ئۇزۇن مۇددەتلىك مەزگىلدە باھالاش ۋە كۆزىتىش ئىمكانىيىتىنى بېرىدۇ:

  • ApacheBench (ab): HTTP تەلەپلەرنى تەقلىد قىلىش ۋە جاۋاب قايتۇرۇش ۋاقتىنى، جۈملىدىن TTFB نى ئۆلچەش ئۈچۈن ئاددىي ئەمما كۈچلۈك بولغان بۇيرۇق قۇرالى. PHP-FPM نىڭ بىر ۋاقىتتا قانچە تەلەپلەرنى قوبۇل قىلالايدىغانلىقى ۋە قانچىلىك تېز جاۋاب قايتۇرىدىغانلىقىنى بايقىغىلى بولىدۇ.

  • Siege: ApacheBench غا ئوخشاش، ئەمما كۆپ تىماقلىق يۈك سىناشنى قوللايدىغان ۋە ئۇزۇن مۇددەتلىك بېسىم سىناشقا ماسلىشىدىغان قۇرال بولۇپ، PHP-FPM نىڭ يۈك ئاستىدىكى مۇقىملىقى ھەققىدە چۈشىنىكلەرنى تەمىنلەيدۇ.

  • New Relic ۋە Datadog: بۇلار ئەپ ئىجراچانلىقىنى كۆزىتىش (APM) مۇلازىمىتى بولۇپ، PHP-FPM جەريانلىرىنىڭ تەپسىلىي كۆرۈنۈشىنى، تەلەپلەرنىڭ ئۇزۇنلۇقى، ئاستا ئىجرا بولغان ئالاقىلەر ۋە بايلىق ئىستېمالىنى كۆرسىتىدۇ. ئۇلار TTFB غا تەسىر كۆرسەتكەن تاقىلىش نۇقتىلىرىنى ئىشلەپچىقىرىش مۇھىتىدە ئېنىقلاشقا ياردەم بېرىدۇ.

  • تور كۆرگۈچ تەرەققىيات قوراللىرى: زامانىۋى تور كۆرگۈچلەر تور ئالاقە تاختىسىدا TTFB نى كۆرسىتىدۇ، تەرەققىيات ياكى مەسىلە ھەل قىلىشتا ۋاقىتلىق تەكشۈرۈش ئۈچۈن پايدىلىق.

بۇ قوراللارنى داۋاملىق ئىش

PHP-FPM ھالىتى بەت ئۆلچەملىرىنى قانداق چۈشەندۈرۈش كېرەك (pm.status_path)

pm.status_path نى تەڭشەپ PHP-FPM ھالىتى بەتنى قوزغاتقاندا، خىزمەتچى گۇرۇپپىسى ۋە تەلەپلەرنى باشقۇرۇش ھەققىدە ھەقىقىي ۋاقىتلىق ئۆلچەملەرنى ئالالايسىز:

  • active processes: ھازىر تەلەپلەرنى ئىجرا قىلىۋاتقان خىزمەتچىلەر سانى. pm.max_children غا يېقىن داۋاملىق يۇقىرى سان توشقۇنلۇق بارلىقىنى كۆرسىتىشى مۇمكىن.

  • idle processes: يېڭى تەلەپلەرنى كۈتۈپ تۇرغان خىزمەتچىلەر. چوڭ قېتىملىق ۋاقىتتا تۆۋەن بوش خىزمەتچى سانى يېتەرسىز خىزمەتچىلەر بارلىقىنى بىلدۈرۈپ، TTFB نىڭ ئاشقىنىغا سەۋەپ بولۇشى مۇمكىن.

  • listen queue: كۈتۈۋاتقان تەلەپلەر. نۆلدىن يۇقىرى بولغان قۇر سانى تەلەپلەرنىڭ كېچىكىشىنى بىلدۈرۈپ، بىۋاسىتە TTFB نى ئاشۇرىدۇ.

  • max listen queue: قوزغاتقاندىن بۇيان ئەڭ چوڭ قۇر ئۇزۇنلۇقى، ۋاقىتلىق توشقۇنلۇق نۇقتىلىرىنى بايقىشىغا ياردەم بېرىدۇ.

بۇ ئۆلچەملەرنى كۆزىتىش ئارقىلىق باشقۇرغۇچىلار پىروسېس باشقۇرغۇچى پارامېتىرلىرىنى ئالدىن كۆزىتىپ تەڭشەشنى ئاسانلاشتۇرىدۇ، كېرەكلىك بىر ۋاقىتتا بىر قانچە پىروسېس ئىجرا قىلىش ۋە جاۋاب قايتۇرۇش سۈپىتىنى ساقلاشقا كاپالەتلىك قىلىدۇ.

توشقۇنلۇق نۇقتىلىرىنى بايقىلاش ئۈچۈن خاتالىق خاتىرىلىرى ۋە ئاستا ئىجرا بولغان تەلەپلەرنى كۆزىتىش

PHP-FPM request_slowlog_timeout كۆرسەتكۈچى ئارقىلىق ئاستا ئىجرا بولغان تەلەپلەرنى خاتىرىلەشنى قوللايدۇ. بەلگىلەنگەن ۋاقىتتىن ئۇزۇن بولغان تەلەپلەرنىڭ ئارقا تىزىمى خاتىرىلىنىپ، كېچىكىش يۈز بېرىۋاتقان سىنارىيەلەر، مەسىلەن، مەسىللىك سىنارىيەلەر ياكى سانلىق مەلۇمات ئامبىرى سۇئالى قاتارلىقلارنى كۆرسىتىدۇ. خاتالىق خاتىرىلىرى ۋە كىرىش خاتىرىلىرى بىلەن بىرلىكتە، ئاستا ئىجرا بولغان تەلەپلەرنى كۆ

ھەقىقىي ھالەتتىكى مەسىلە: PHP-FPM پىروسېس باشقۇرغۇچى تەڭشەشتىن كېيىن TTFB نىڭ ئالدىن-كېيىن ياخشىلاشلىرى

دوه اړخیزه پرتله عکس د ای-کامرس سرور ډشبورډ، د اصلاح مخکې او وروسته، د ټیټ ځواب وختونه او ښه فعالیت ښیي، په مدرن IT مرکز کې.

ئوتتۇرا دەرىجىدىكى قاتناشچانلىققا ئىگە بىر ئېلېكترونلۇق سودا تور بېتىنى ئويلاپ بېقىڭ، بۇ تور بەتتە ۋاقىت-ۋاقىتتا قاتناشچانلىق ئېتىبارىدىن يۇقىرى كۆتۈرۈلۈش كۆرۈلىدۇ، بۇنىڭ نەتىجىسىدە چوڭ قېتىملىق ۋاقىتتا ئوتتۇراچە 600ms بولغان يۇقىرى TTFB كۆرۈلدى. باشلىنىشتىكى PHP-FPM تەڭشەشلىرى pm = dynamic نى ئىشلىتىپ، pm.max_children = 10، pm.start_servers = 2 ۋە بوش خىزمەتچىلەرنىڭ قىممەتلىرى ئۆزگىرىشچان يۈككە ماس كەلمەيدىغان دەرىجىدە تۆۋەن بولغان.

PHP-FPM ھالىتى بەتنى قوزغاتقان ۋە ئۆلچەملەرنى تەھلىل قىلغاندا، باشقۇرغۇچى تۆۋەندىكىلەرنى بايقىدى:

  • داۋاملىق چەككە يېتىپ بارغان pm.max_children چەكلىمىسىغا يېتىپ بارغان ئاكتىپ پىروسېسلار
  • نۆلدىن يۇقىرى بولغان كۈتۈش قۇرلىرى تەلەپلەرنىڭ كېچىكىشىنى كۆرسىتىدۇ
  • سانلىق مەلۇمات ئامبىرىغا باغلانغان سىنارىيەلەردىن كۆپ قېتىملىق ئاستا خاتىرە

تەڭشەش باسقۇچلىرى تۆۋەندىكىچە بولدى:

  1. pm.max_children نى 30 غا كۆتۈرۈپ، بىر ۋاقىتتا كۆپ پىروسېس ئىجرا قىلىشنى ياخشىلاش.
  2. pm.start_servers نى 10 غا، بوش خىزمەتچىلەرنى pm.min_spare_servers = 5 ۋە pm.max_spare_servers = 15 غا تەڭشەپ، ماسلىشىشنى ئىلغارلاشتۇرۇش.
  3. ئاستا خاتىرە قىلىنغان سىنارىيەلەرنى ئوبدانلاشتۇرۇش.
  4. تەسىرنى باھالاش ئۈچۈن Datadog ئارقىلىق داۋاملىق كۆزىتىش.

تەڭشەشتىن كېيىن، تور بەتنىڭ چوڭ قېتىملىق قاتناشچانلىقىدا ئوتتۇراچە <

ئاساسلىق پىروسېس باشقۇرغۇچى تەڭشەشلىرىدىن سىرتقى ئىلغار PHP-FPM تەڭشەش ئۇسۇلى

TTFB غا تەسىر كۆرسىتىدىغان ئۇزۇن مۇددەتلىك سىنارىيەلەرنى باشقۇرۇش ئۈچۈن request_terminate_timeout ۋە request_slowlog_timeout نى تەڭشەش

ئۇزۇن مۇددەتلىك PHP سىنارىيەلەر ئىشلىتىش ۋاقتىدا خىزمەتچى پىروسېسلارنى ئۇزۇن ۋاقىت بويى مەشغۇلاتتا تۇتۇپ، باشقا كەلگەن تەلەپلەرگە دەرىھال مۇلازىمەت قىلىشقا توسالغۇ بولىدۇ، بۇ بولسا بىرنجى بايتقا قەدەر بولغان ۋاقىت (TTFB) نىڭ زور دەرىجىدە ئاشقىلىشىغا سەۋەپ بولىدۇ. request_terminate_timeout ۋە request_slowlog_timeout دېگەن كۆرسەتكۈچلەر بۇ مەسىلىنى يەڭگىللەشتۈرۈش ئۈچۈن كۈچلۈك قوراللار.

  • request_terminate_timeout ھەر بىر PHP تەلەپلەرگە PHP-FPM خىزمەتچىلىرى تەرىپىدىن بەلگىلەنگەن ئەڭ چوڭ ئىجرا ۋاقىتنى بەلگىلەيدۇ. ئەگەر بىر سىنارىيە بۇ چەكنى ئاشسا، PHP-FPM ئۇنى مەجبۇرىي توختىتىدۇ. بۇ يامان ياكى سامارىسىز سىنارىيەلەرنىڭ چەكسىز رېسۇرستلاردىن پايدىلىنىشىنى توختىتىپ، تەلەپلەرنىڭ قۇرۇلۇپ قالىشى ۋە TTFB نىڭ ئاشىشىنىڭ ئالدىنى ئالىدۇ.

  • request_slowlog_timeout بەلگىلەنگەن ۋاقىتتىن ئارتۇق ئىجرا بولغان سىنارىيەلەرنىڭ خاتىرىسىنى ساقلاشنى قوزغىتىدۇ، بۇ ئارقىلىق ئىجرا سۈرئىتىنىڭ تۆۋەنلىشىگە سەۋەپ بولغان مەسىلىلەرنى بايقىغىلى بولىدۇ. ئاستا خاتىرە قىلىنغان خاتىرە تەتقىقاتى ئارقىلىق، تەرەققىياتچىلار جاۋاب قايتۇرۇش ۋاقتىنى كېچىكتۈرگەن كود يوللىرىنى تاپالايدۇ ۋە ئۈنۈمنى ئاشۇرالايدۇ.

بۇ ۋاقىت چەكلەرنى تەڭشەش، ھوقۇقى بار ئۇزۇن مۇددەتلىك پىروسېسلارغا يول قويۇش بىلەن بىر ۋاقىتتا ئۇلارنىڭ

rlimit_files ۋە rlimit_core نى ئىشلىتىپ PHP-FPM خىزمەتچىلىرىنىڭ رېسۇرستلاردىكى چەكلەرنى ئوپتىماللاشتۇرۇش

PHP-FPM خىزمەتچىلىرى سىستېما تەرىپىدىن قويۇلغان رېسۇرست چەكلەرگە دۇچ كېلىدۇ، بۇلار ئۇلارنىڭ مۇقىملىقى ۋە ئىجرا سۈرئىتىگە تەسىر كۆرسىتىشى مۇمكىن. rlimit_files ۋە rlimit_core دېگەن كۆرسەتكۈچلەر بۇ چەكلەرنى PHP-FPM پولى دەرىجىسىدە تەڭشەيدۇ:

  • rlimit_files بىر خىزمەتچىنىڭ بىر ۋاقىتتا ئاچالايدىغان ھۆججەت كۆرسەتكۈچلىرىنىڭ ئەڭ چوڭ سانىنى بەلگىلەيدۇ. بۇ قىممەتنى ئاشۇرۇش، كۆپ ھۆججەت ياكى تور I/O ئىشلىتىدىغان قوللىنىشچان پروگراممىلار ئۈچۈن مۇھىم بولۇپ، PHP-FPM نىڭ بىر ۋاقىتتا كۆپ رېسۇرستلاردىن پايدىلىنىشىغا يول قويۇپ، سىستېما چەكلەرگە دۇچ كېلىپ پىروسېسلارنىڭ توختاپ قېلىشى ۋە TTFB نىڭ ئاشىشىنىڭ ئالدىنى ئالىدۇ.

  • rlimit_core خىزمەتچىنىڭ توختاپ قالغاندا يارىتىلىدىغان core dump ھۆججەتلىرىنىڭ ئەڭ چوڭ چوڭلۇقىنى بەلگىلەيدۇ. بۇ بىۋاسىتە ئىجرا سۈرئىتىگە تەسىر قىلمايدىغان بولسىمۇ، مەسىلىلەرنى تەتقىق قىلىشتا ياردەم بېرىدۇ، بۇ ئارقىلىق PHP-FPM نىڭ جاۋاب قايتۇرۇش سۈرئىتىگە بىۋاسىتە بولمىغان تەسىرلەرنى ھەل قىلىشقا ئىشلىتىلىدۇ.

بۇ چەكلەرنى توغرا تەڭشەش، PHP-FPM خىزمەتچىلىرىنىڭ يۈك ئاستىدا مۇقىم ئىجرا قىلىشىنى تەمىنلەيدۇ، كۈتۈلمىگەن خاتالىقلار ۋە كېچىكى

PHP-FPM نى تەڭشەش بىلەن بىرلىكتە Opcode كاشلاش (مەسىلەن، OPcache) نى ئىشلىتىپ PHP نىڭ تېز ئىجرا بولۇشىنى تەمىنلەش

Opcode كاشلاش PHP-FPM نى تەڭشەش ئۈچۈن مۇھىم قوشۇمچە بولۇپ، OPcache ئالدىن تەييارلانغان PHP بایتكودىنى ئورتاق ساقلاش xatirəsində ساقلاپ، ھەر بىر تەلەپتە سىكرىپتلارنى پارسلاش ۋە كومپىللاش ئۈچۈن كېرەك بولغان ۋاقىتنى زور دەرىجىدە ئازايتىدۇ.

ياخشى تەڭشەلگەن PHP-FPM پىروسېس باشقۇرۇش بىلەن بىرلىكتە ئىشلىتىلگەندە، OPcache سىكرىپت ئىجرا ۋاقتىنى ۋە TTFB نى ئەھمىيەتلىك دەرىجىدە تۆۋەنلىتەلىيدۇ. ئەڭ ياخشى تەجرىبىلەرگە تۆۋەندىكىلەر كىرەيدۇ:

  • OPcache نى ماس كېلىدىغان ساقلاش xatirəsi بۆلۈش (opcache.memory_consumption) بىلەن قوزغاتماق، كاشنىڭ چىقىرىۋىتىلىشىنىڭ ئالدىنى ئېلىش ئۈچۈن.
  • OPcache نىڭ سىكرىپت ئۆزگىرىشلەرنى قاچان تەكشۈرۈشىنى كونترول قىلىش ئۈچۈن opcache.validate_timestamps نى تەڭشەش، ئىجرا سۈرئىتى بىلەن تەرەققىيات تېزلىكىنى مۇۋاپىقلاشتۇرۇش.
  • OPcache نىڭ ئۇتۇش نىسبىتىنى كۆزىتىپ، كاشنىڭ يوقىتىلىشى كۆپەيسە قايتا تەڭشەش.

PHP-FPM نى تەڭشەش بىلەن opcode كاشلاش بىرلىكتە PHP قوللىنىشچان پروگراممىلارنىڭ ئۈنۈملۈك يەتكۈزۈلۈشى ئۈچۈن مۇقىم پايالانما ھاسىل قىلىدۇ.

كۆپ يادرولۇق ياكى يۇقىرى ساقلاش xatirəsi بار سېرۋېرلاردا PHP-FPM نى تېزلىتىش ۋە كېچىكىشنى ئازايتىش ئۈچۈن تەڭشەش ھەققىدىكى ئويلاشتۇرۇشلار

ھازىرقى زامان سېرۋېرلىرى كۆپ يادرولۇق CPU ۋە كۆپ ساقلاش xatirəsi بىلەن تەمىنلەنگەن بولۇپ، PHP-FPM نى تېزلىتىش ۋە TTFB نى تۆۋەنلىتىش ئۈچۈن پۇرسەتلەرنى تەمىنلەيدۇ:

  • pm.max_children نى كېڭەيتىش: كۆپ يادرولۇق سىستېمىلاردا PHP-FPM ئىشچى سانىنى ئاشۇرۇش ئارقىلىق تەلەپلىرىنى بىر ۋاقىتتا ئىجرا قىلىشقا بولىدۇ، ئەمما بۇ ساقلاش xatirəsi چەكلىمىسىگە ماس كېلىشى كېرەك، ئەكسىچە سىستېما سىۋاپقا (swapping) يول قويۇشى مۇمكىن.

  • ئاففىنىتى ۋە CPU نى بەلگىلەش: ئىشچى پىروسېسلارنى CPU يادرولىرىغا بەلگىلەش، كونتېكست ئالماشتۇرۇش ۋە كاش يېتىشمەسلىك مەسىلىلىرىنى ئازايتىپ، كېچىكىش ۋە تېزلىكنى ياخشىلىيدۇ.

  • ساقلاش xatirəsi ئوپتىماللاش: يۇقىرى ساقلاش xatirəsi بار سېرۋېرلاردا pm.max_children نى چوڭراق قىممەتكە تەڭشەش ۋە چوڭ OPcache كۆلىمىدىن پايدىلىنىش ئارقىلىق بىر ۋاقىتتا كۆپ ئىشنى ئىجرا قىلىش ۋە سۈرئەتنى ئاشۇرۇشقا بولىدۇ.

  • ئارتۇقچە ئىشچى قوشۇشتىن ساقلىنىش: ئىشچى سانى بەك كۆپ بولسا، رېسۇرستلەر ئۈچۈن رىقابەت پەيدا بولىدۇ، شۇڭا تەڭشەشنى كۆزىتىش قوراللىرى ۋە سىناق نەتىجىلىرىگە ئاساسەن ئەڭ مۇۋاپىق بىر ۋاقىتتا ئىجرا قىلىش دەرىجىسىنى تاپقان ياخشى.

PHP-FPM نى سېرۋ

PHP-FPM ئىشچى پىروسېسلارنىڭ خۇسۇسىيىتى ۋە ئىجرا سۈرئىتىگە تەسىر كۆرسىتىدىغان مۇھىت ئۆزگەرگۈچلىرى ۋە PHP كۆرسەتمىلىرىنى تەڭشەش

ئاساسىي پىروسېس باشقۇرغۇچ پارامېتىرلىرىدىن باشقا، مۇھىت ئۆزگەرگۈچلىرى ۋە PHP كۆرسەتمىلىرى PHP-FPM ئىشچى پىروسېسلارنىڭ ئىجرا سۈرئىتىگە تەسىر كۆرسىتىدۇ:

  • پول كونفىگۇراتسىيىسىدە env ئۆزگەرگۈچلىرىنى بەلگىلەش ئارقىلىق PHP سىكرىپتلارغا زۆرۈر مۇھىت ئۇچۇرىنى، مەسىلەن سانلىق مەلۇمات بېسىش ئۇچۇرى ياكى API ئاچقۇچلىرىنى، قوشۇمچە يۈكسىز يوللاشقا بولىدۇ.

  • memory_limit، max_execution_time ۋە max_input_vars قاتارلىق PHP كۆرسەتمىلىرى سىكرىپتنىڭ خۇسۇسىيىتى ۋە رېسۇرستلەرنى ئىستېمال قىلىشىنى كونترول قىلىدۇ. بۇلارنى توغرا تەڭشەش ئارقىلىق جاۋاب قايتۇرۇش سۈرئىتىنى تۆۋەنلىتىدىغان ۋە TTFB نى ئاشۇرىدىغان چۈشۈپ كەتكەن سىكرىپتلارنىڭ ئالدىنى ئېلىشقا بولىدۇ.

  • realpath_cache_size ۋە realpath_cache_ttl نى قوزغاتقاندا ھۆججەت سىستېمىسىگە بولغان ئىزدەشنى ئازايتىپ، سىكرىپت ئىجرا سۈرئىتىنى تېزلىتىشكە ياردەم بېرىدۇ.

  • error_log ۋە log_level نى تەڭشەش ئارقىلىق ئىجرا سۈرئىتىدىكى مەسىلىلەرنى بايقىغىلى بولىدۇ، ئەمما ساقلاش ياكى ئىشلەش سىستېمىسىغا ئارتۇقچە يۈك كەلتۈرمەيدۇ.

بۇ تەڭشەشلىرىنى PHP-FPM پىروسېس باشقۇرۇش بىلەن ماسلاشتۇرۇپ ئىشلەتكەندە مۇھىتنىڭ مۇقىملىقى ۋە جاۋاب قايتۇرۇش سۈرئىتى تېزلىشىدۇ.


بۇ ئالدىنقى دەرىجىدىكى تەڭشەش ئۇسۇلىلار پەقەت پىروسېس باشقۇرغۇچ تەڭشەشتىن ئاشقان بولۇپ، PHP-FPM نىڭ تېخىمۇ چو

Leave a Comment