Yandex اعلان ڪيو اوپن سورس ڪوڊ جو پرفورٽر ٽول ڪٽ، تفصيلي ميٽرڪس جي مسلسل گڏ ڪرڻ لاءِ ڊزائين ڪيل ايپليڪيشنن جي آپريشن بابت معلومات سان گڏ ۽ وڏي ڪلسٽرز ۽ ڊيٽا سينٽرن ۾ استعمال لاءِ ڊزائين ڪيل. ٽول کٽ توهان کي حقيقي وقت ۾ ايپليڪيشنن جي آپريشن جو تجزيو ڪرڻ جي اجازت ڏئي ٿو، لينڪس سرورز تي وسيلن جي ورڇ جو جائزو وٺڻ ۽ سڀ کان وڌيڪ وسيلن جي گنجائش واري ايپليڪيشنن جي سڃاڻپ ڪرڻ جي اجازت ڏئي ٿي. ڪوڊ C++ ۾ لکيل آهي ۽ MIT لائسنس تحت ورهايو ويو آهي (EBPF پروگرام GPLv2 تحت).
Yandex Perforator 10 کان وڌيڪ نوڊس جي ڪلسٽر ۾ مقرر ڪيو ويو آهي ۽ مختلف خدمتن ۾ ڪارڪردگي جي مسئلن کي سڃاڻڻ ۽ حل ڪرڻ لاءِ استعمال ڪيو ويندو آهي، جنهن ۾ Yandex Search ۽ Yandex Advertising شامل آهن. Perforator کي رڪاوٽن کي ختم ڪرڻ ۽ وسيلن تي ٻڌل ڪمپيوٽنگ کي بهتر بڻائڻ جو ڪريڊٽ ڏنو ويو آهي، جنهن جي ڪري Yandex پنهنجي قيمتن کي 20٪ گهٽائي سگهي ٿو. سرورز.
بيان ڪيل صلاحيتون:
- لينڪس ڪرنل حصن ۽ يوزر اسپيس ايپليڪيشنن جي آپريشن بابت معلومات گڏ ڪرڻ لاءِ eBPF ڪرنل سب سسٽم ۽ perf_events API استعمال ڪندي. ميٽرڪس گڏ ڪرڻ جي اوور هيڊ جي نتيجي ۾ تقريبن 0.1٪ جي ڪارڪردگي جي سزا آهي. صرف x86-64 آرڪيٽيڪچر وارا سسٽم سپورٽ ٿيل آهن.
- اسڪيلبل ڪارڪردگي پروفائل اسٽوريج. ڪلڪ هائوس ڊي بي ايم ايس پروفائل ميٽا ڊيٽا کي ذخيرو ڪرڻ لاءِ استعمال ڪيو ويندو آهي، پوسٽگري ايس ڪيو ايل بائنري ميٽا ڊيٽا کي ذخيرو ڪرڻ لاءِ استعمال ڪيو ويندو آهي، ۽ ايميزون ايس 3 سان مطابقت رکندڙ ڪا به اسٽوريج خام پروفائلز ۽ بائنري ڊيٽا کي ذخيرو ڪرڻ لاءِ استعمال ڪيو ويندو آهي.
- پروگرام ٺاهڻ وقت ڊيبگ علامتن ۽ -fno-omit-frame-pointer آپشن کي فعال ڪرڻ کان سواءِ ڪال اسٽيڪ کي کولڻ جي صلاحيت (ريٽرن ايڊريس ۽ فنڪشن متغيرن تي مشتمل اسٽيڪ فريم ڏانهن پوائنٽر محفوظ ڪري ٿو).
- ايپليڪيشن هلائڻ دوران سي پي يو لوڊ جي چڪاس لاءِ سوال جي ٻولي ۽ ويب انٽرفيس جي دستيابي.

- بصري طور تي مشڪلاتن جو جائزو وٺڻ لاء، FlameGraph انداز ۾ بصري استعمال ڪيو ويندو آهي.

- مختلف ٻولين ۽ رن ٽائمز کي استعمال ڪندي پروجيڪٽ جي پروفائيل ڪرڻ جي صلاحيت بغير اسيمبلي جي عملن ۾ تبديليون ڪرڻ ۽ پروگرامن کي ٻيهر ترتيب ڏيڻ کان سواءِ. پروگرامنگ ٻولين C++، Go، Rust، Java، Python ۽ JavaScript/Node.js لاءِ اعلان ڪيل سپورٽ.
- ڪوڊ پروفائلنگ (PGO - پروفائل-هدايت ٿيل اصلاح) جي نتيجن جي بنياد تي اصلاح سان ايپليڪيشنن جي بعد ۾ اسيمبلي لاءِ sPGO پروفائلز پيدا ڪرڻ جي صلاحيت، جيڪا پروگرام جي عمل درآمد جي خاصيتن جي تجزيي جي بنياد تي وڌيڪ بهترين ڪوڊ پيدا ڪرڻ جي اجازت ڏئي ٿي.
- لينڪس تي perf ٽول ڪٽ لاءِ متبادل طور استعمال لاءِ سپورٽ.
- ڪبرنيٽس تي ٻڌل ڪلسٽرز ۾ خودڪار تعیناتي. هر نوڊ هڪ وقف ٿيل ايجنٽ هلائي ٿو جيڪو ڪارڪردگي ڊيٽا گڏ ڪري ٿو، گڏ ڪري ٿو، دٻائي ٿو، ۽ منتقل ڪري ٿو. ڊيٽا ايجنٽن پاران pprof-compatible فارميٽ ۾ gRPC ذريعي مائڪرو سروسز ڏانهن منتقل ڪيو ويندو آهي جيڪي گڏ ڪرڻ، ذخيرو ڪرڻ، تجزيو ڪرڻ، علامت ڏيڻ (پتين کي فنڪشن نالن ۽ ڪوڊ ۾ پوزيشن ۾ تبديل ڪرڻ) ۽ پروفائلز ۽ ايگزيڪيوٽوبلز (اسٽيڪ ان وائنڊنگ لاءِ ضروري) جي ذميوار آهن.


جو ذريعو: opennet.ru




