{"id":1899,"date":"2017-10-01T15:17:35","date_gmt":"2017-10-01T12:17:35","guid":{"rendered":"http:\/\/blog.profelis.com.tr\/?p=1899"},"modified":"2023-02-01T10:58:00","modified_gmt":"2023-02-01T07:58:00","slug":"power-sistemler-uzerinde-postgresql-optimizasyonu","status":"publish","type":"post","link":"https:\/\/profelis.com.tr\/en\/2017\/10\/01\/power-sistemler-uzerinde-postgresql-optimizasyonu\/","title":{"rendered":"Power Sistemler \u00dczerinde PostgreSQL Optimizasyonu"},"content":{"rendered":"<h2>Power Sistemler \u00dczerinde PostgreSQL Optimizasyonu<\/h2>\n<p><strong>EnterpriseDB<\/strong> ve <strong>IBM<\/strong> aras\u0131nda yap\u0131lan bir i\u015fbirli\u011fi sonucu, 9.4 s\u00fcr\u00fcm\u00fcnden itibaren (<em>September 30, 2016<\/em>) IBM Power8 i\u015flemcilerin \u00fczerinde PostgreSQL ve EDB Postgres Advanced Server (PAS) kullan\u0131m\u0131 m\u00fcmk\u00fcn hale gelmi\u015fti. Geldi\u011fimiz 9.6 s\u00fcr\u00fcm\u00fcnde bu i\u015fbirli\u011finin sonu\u00e7lar\u0131 ve etkisi b\u00fcy\u00fck oldu.<\/p>\n<p><a href=\"https:\/\/www.enterprisedb.com\/downloads\/postgres-postgresql-downloads\" target=\"_blank\" rel=\"noopener\">EDB Postgres Advanced Server<\/a> (PAS) ile PostgreSQL ayn\u0131 kod taban\u0131na sahip olmakla beraber aras\u0131ndaki temel fark, EDB PAS&#8217;\u0131n<\/p>\n<ul>\n<li>Art\u0131r\u0131lm\u0131\u015f performans,<\/li>\n<li>Oracle\/MSSQL uyumlulu\u011fu,<\/li>\n<li>G\u00fcvenlik,<\/li>\n<li>Kurumsal Y\u00f6netim Ara\u00e7lar\u0131<\/li>\n<\/ul>\n<p>\u00d6zellikle bu 4 fark, Oracle \u00fczerinde geli\u015ftirilmi\u015f veya ko\u015fmakta olan herhangi bir uygulaman\u0131n kolayca EDB PAS \u00fczerinde \u00e7al\u0131\u015ft\u0131r\u0131larak i\u015fletmenin b\u00fcy\u00fck maliyet tasarrufu ve ek performans sa\u011flamas\u0131 anlam\u0131na gelir. EDB PAS&#8217;\u0131n desteklemekte oldu\u011fu mimariler i\u00e7in g\u00fcncel bilgiye\u00a0https:\/\/www.enterprisedb.com\/services\/edb-supported-products-and-platforms adresinden ula\u015fabilirsiniz. PostgreSQL 9.6 S\u00fcr\u00fcm\u00fc itibariyle EDB PAS IBM Power \u00fczerinde i\u015fletim sistemi olarak sadece RedHat 7 (Little Endian) ile destekleniyor.<\/p>\n<h2>Power Mimaride PostgreSQL Kullan\u0131m\u0131nda Dikkat Edilmesi Gerekenler<\/h2>\n<p>\u00d6ncelikli olarak <a href=\"https:\/\/profelis.com.tr\/en\/\">EDB Performans ve Optimizasyon Rehberine<\/a> g\u00f6z atman\u0131zda fayda var.\u00a0 Ayr\u0131ca EDB Postgres Enterprise Manager i\u00e7erisinde bir Tuning Wizard mevcuttur. Kurumsal aboneli\u011finiz (subscription) yoksa, en az\u0131ndan 60 g\u00fcnl\u00fck <a href=\"https:\/\/www.enterprisedb.com\/software-downloads-postgres\" target=\"_blank\" rel=\"noopener\">deneme s\u00fcr\u00fcm\u00fcn\u00fc indirip<\/a> kullanabilirsiniz.<\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone wp-image-16679 size-full\" src=\"http:\/\/dev.profelis.net\/wp-content\/uploads\/2017\/10\/image96.png\" alt=\"EDB PEM Tuning Wizard\" width=\"642\" height=\"421\" title=\"\" srcset=\"https:\/\/profelis.com.tr\/wp-content\/uploads\/2017\/10\/image96.png 642w, https:\/\/profelis.com.tr\/wp-content\/uploads\/2017\/10\/image96-300x197.png 300w\" sizes=\"(max-width: 642px) 100vw, 642px\" \/><\/p>\n<p><img decoding=\"async\" class=\"alignnone wp-image-16680 size-full\" src=\"http:\/\/dev.profelis.net\/wp-content\/uploads\/2017\/10\/image97.png\" alt=\"EDB PEM Tuning Wizard\" width=\"642\" height=\"421\" title=\"\"><\/p>\n<p>EDB PEM i\u00e7erisinde yer alan Performans Sihirbaz\u0131 geli\u015fmi\u015f sistem ayarlar\u0131n\u0131 otomatik olarak yapacak \u015fekilde dizayn edilmi\u015ftir. Sistem \u00fczerinde yer alan i\u015flemci, bellek gibi donan\u0131m \u00f6zellikleri, kullan\u0131m amac\u0131 gibi de\u011fi\u015fkenlere g\u00f6re sistemi yeniden ayarlayabilir ve raporlayabilir.<\/p>\n<h3>Gereksinimler<\/h3>\n<p>EDB PAS Power Sistemler \u00fczerinde RedHat 7 (Little Endian) ile desteklenmektedir. YUM reposunun \u00f6nceden ayarlanmas\u0131 gerekir. EDB Yum repolar\u0131n\u0131n ayarlanmas\u0131 sonras\u0131 EDB Postgres Advanced Server kurulumu yap\u0131labilir.<\/p>\n<p>E\u011fer community PostgreSQL kullanacak iseniz IBM PowerLinux i\u00e7in geli\u015ftirilmi\u015f <a href=\"https:\/\/developer.ibm.com\/linuxonpower\/advance-toolchain\/\" target=\"_blank\" rel=\"noopener\">IBM Advanced Toolchain<\/a> ara\u00e7lar\u0131n\u0131 y\u00fcklemelisiniz. Bu ara\u00e7lar, Power \u00fczerinde \u00e7al\u0131\u015fan Linux i\u015fletim sistemi ve uygulamalar\u0131n\u0131n Power mimariden daha fazla faydalanmas\u0131n\u0131 sa\u011flayacak olan bir tak\u0131m a\u00e7\u0131k kaynakl\u0131 derleyicileri, i\u015fletim k\u00fct\u00fcphanelerini ve geli\u015ftirme ara\u00e7lar\u0131n\u0131 i\u00e7erir.<\/p>\n<p>Performans\u0131n en y\u00fcksek seviyede optimizasyonu i\u00e7in bu durumda PostgreSQL kodlar\u0131 indirilerek sisteme \u00f6zel bir derleme i\u015flemi yap\u0131lmal\u0131d\u0131r. EDB Postgres Advanced Server yum binary paketleri zaten bu ara\u00e7lar kullan\u0131larak optimize edilmi\u015ftir ve gerek yoktur.<\/p>\n<p>\u00d6rnek olarak CFLAGS, CPPFLAGS, ve LDFLAGS, mimari \u00f6zellikleri vb.\u00a0\u00a0<em>configure<\/em> komutuna parametre olarak verilmelidir:<\/p>\n<pre><code class=\"bash\">.\/configure CPPFLAGS='-Wl, -q -mcpu=power8 -mtune=power8 -O3 -m64' CFLAGS='-Wl,-q -mcpu=power8 -mtune=power8 -O3 -m64' LDFLAGS='-Wl,-q -mcpu=power8 -mtune=power8 -O3 -m64'\n<\/code><\/pre>\n<h3>Power Sistem Ayarlar\u0131<\/h3>\n<p>Biz sistemi bir benchmark i\u00e7in haz\u0131rlad\u0131\u011f\u0131m\u0131zdan dolay\u0131 tek bir partition modunu kulland\u0131k, yani tek bir Sanalla\u015ft\u0131r\u0131lmam\u0131\u015f Mant\u0131ksal Birim (LPAR) kullanarak t\u00fcm mevcut CPU \u00e7ekirdeklerini bu tek birime atad\u0131k. Bu birimi ayarlayabilmek i\u00e7in \u00f6ncelikle bir HMC (Hardware Management Console) kurulumu yapmak gerekli.<\/p>\n<p>Genel ama\u00e7l\u0131 veritaban\u0131 kullan\u0131m\u0131 i\u00e7in g\u00fc\u00e7 tasarrufu \u00f6zellikleri devre d\u0131\u015f\u0131 b\u0131rak\u0131lmal\u0131 veya uygun \u015fekilde ayarlanmal\u0131. \u00d6nerimiz <em>Idle Power Saver<\/em>\u00a0kapat\u0131lmal\u0131 ve <em>Dynamic Power Saver<\/em> modu a\u00e7\u0131lmal\u0131. Bu ayarlara HMC kullanarak ASMI (<em>Advanced System Management Interface<\/em>) \u00fczerinden eri\u015febilirsiniz. Bu se\u00e7enekler PowerVM harici bir firmware kullan\u0131m\u0131nda farkl\u0131 olabilir. Bu durumlarda RHEL veya hangi Linux da\u011f\u0131t\u0131m\u0131n\u0131 kullan\u0131yorsan\u0131z, komut sat\u0131r\u0131 \u00fczerinden <a href=\"https:\/\/manpages.debian.org\/stretch\/linux-cpupower\/cpupower-frequency-set.1.en.html\" target=\"_blank\" rel=\"noopener\">cpupower<\/a> komutu ile d\u00fczenlenmelidir.<\/p>\n<pre><code>cpupower frequency-set --governor performance<\/code><\/pre>\n<p><em>governor<\/em> se\u00e7ene\u011fi <em>performans<\/em> i\u00e7in ayarlan\u0131yor yukar\u0131daki komutta. Daha geli\u015fmi\u015f ve kompleks i\u015f y\u00fckleri, raporlama sunucular\u0131 veya peak time ya\u015fayan sistemlerde governor se\u00e7ene\u011fi zamanlamal\u0131 g\u00f6revler arac\u0131l\u0131\u011f\u0131 ile farkl\u0131 \u015fekilde ayarlanarak performans optimizasyonu i\u015f zamanlamalar\u0131na, g\u00fcn, tarih, saate g\u00f6re de\u011fi\u015fken olarak d\u00fczenlenebilir. Daha detayl\u0131 bilgiyi RedHat i\u00e7in (CPUFREQ) veya kulland\u0131\u011f\u0131n\u0131z da\u011f\u0131t\u0131m\u0131n belgelendirmesinden edinebilirsiniz.<\/p>\n<h3>\u00c7ekirdek Ayarlar\u0131 ve \u0130\u015fletim Sistemi Seviyesinde Ayarlar<\/h3>\n<p>Community PostgreSQL bir pos cihaz\u0131n\u0131n \u00fczerinde dahi \u00e7al\u0131\u015fabilecek \u015fekilde en temel yap\u0131land\u0131rma ile sunulmakta, kurumsal kullan\u0131m ihtiya\u00e7lar\u0131n\u0131 kar\u015f\u0131layabilmesi i\u00e7in yeniden yap\u0131land\u0131rmaya ve performans ayarlamas\u0131na kesinlikle ihtiya\u00e7 duymaktad\u0131r. Performans optimizasyonu temelde i\u015fletim sistemi ile \u00e7ok ili\u015fkili \u00e7al\u0131\u015fan PostgreSQL i\u00e7in sadece donan\u0131m ve veritaban\u0131 seviyesinde de\u011fil ayn\u0131 zamanda i\u015fletim sistemi ve \u00e7ekirdek seviyesinde de yap\u0131lmal\u0131d\u0131r.<\/p>\n<p>PostgreSQL i\u015fletim sistemi ile birlikte \u00e7al\u0131\u015fan, performans\u0131 ve \u00e7al\u0131\u015fma yap\u0131s\u0131 i\u015fletim sistemi seviyesindeki ayarlarla \u00e7ok ili\u015fkili bir veritaban\u0131 sistemidir. \u00d6rne\u011fin Oracle bu konuda daha izole \u00e7al\u0131\u015fmakta, MSSQL ise i\u015fletim sistemi parametrelerini kendisi istedi\u011fi gibi ayarlamaktad\u0131r. Dolay\u0131s\u0131 ile PostgreSQL optimizasyonu yap\u0131lmak istendi\u011finde sadece veritaban\u0131 parametrelerinin d\u00fczenlenmesi yeterli olmayacakt\u0131r.<\/p>\n<p>En az\u0131ndan a\u015fa\u011f\u0131daki \u00e7ekirdek parametrelerinin \u00fczerinden ge\u00e7ilmesi ve ayarlanmas\u0131 gerekir.<\/p>\n<h4>\u00c7ekirdek Ayarlar\u0131<\/h4>\n<ul class=\"ibm-bullet-list\">\n<li>fs.file-max<\/li>\n<li>vm.dirty_background_bytes<\/li>\n<li>vm.dirty_ratio<\/li>\n<li>vm.dirty_background_ratio<\/li>\n<li>vm.hugetlb_shm_group<\/li>\n<li>vm.dirty_bytes<\/li>\n<li>vm.swappiness<\/li>\n<li>vm.hugepages_treat_as_movable<\/li>\n<li>vm.zone_reclaim_mode<\/li>\n<li>vm.drop_caches<\/li>\n<li>kernel.sched_migration_cost<\/li>\n<li>kernel.sched_autogroup_enabled<\/li>\n<li>kernel.numa_balancing<\/li>\n<li>vm.zone_reclaim_mode<\/li>\n<\/ul>\n<p>Mevcut donan\u0131m \u00f6zelliklerine g\u00f6re ayarlanmas\u0131 gereken \u00f6zellikler:<\/p>\n<ul>\n<li>shmall<\/li>\n<li>shmmax<\/li>\n<\/ul>\n<h4>\u0130\u015fletim Sistemi Ayarlar\u0131<\/h4>\n<ul>\n<li>SMT Snooze Delay daha y\u00fcksek bir de\u011fere \u00e7ekilmelidir (Sadece Power7 ve Power7+ \u00fczerinde, Power8 ve sonras\u0131 i\u00e7in gerekli de\u011fildir). Varsay\u0131lan de\u011fer 100&#8217;d\u00fcr.<\/li>\n<li>I\/O \u00d6nceliklendirmesi (preemption), \u00f6ncelik zamanlay\u0131c\u0131n\u0131n, \u00f6nceli\u011fi y\u00fcksek olarak ayarlanm\u0131\u015f g\u00f6revlerin i\u015fletilmesinden sonraki i\u015flemcinin serbest b\u0131rak\u0131lmas\u0131 zaman ayar\u0131na ili\u015fkin tan\u0131m\u0131 yapar. Sistem \u00fczerindeki veritaban\u0131n\u0131n kullan\u0131m amac\u0131na g\u00f6re sistem m\u00fchendisin karar\u0131na ve sonras\u0131ndaki <strong>pgbench<\/strong> de\u011ferlerine g\u00f6re yeniden d\u00fczenlemeyi gerektirebilir. Bazen bu gecikme s\u00fcresi tamamen kald\u0131r\u0131l\u0131r, bazen yar\u0131ya d\u00fc\u015f\u00fcr\u00fcl\u00fcr veya pgbench ile i\u015f y\u00fck\u00fcn\u00fcn yap\u0131s\u0131na g\u00f6re hesaplanarak belirlenir. Mevcut sunucumuzda varsay\u0131lan veya atanm\u0131\u015f olan de\u011fer\u00a00.012 saniye veya 12000000 nano saniye olarak belirlenmi\u015fti (\/proc\/sys\/kernel\/sched_latency_ns).<\/li>\n<li>Donan\u0131msal Veri \u00d6nbelleklendirmesi (hardware data prefetch) i\u015f y\u00fck\u00fcn\u00fcn yap\u0131s\u0131na g\u00f6re a\u00e7\u0131labilir veya kapat\u0131labilir.<\/li>\n<\/ul>\n<h4>PostgreSQL Community s\u00fcr\u00fcm\u00fcne y\u00f6nelik Power Ayarlar\u0131<\/h4>\n<p>Community PostgreSQL kaynak kodunda baz\u0131 de\u011ferler Intel mimarisine g\u00f6re d\u00fczenlenmi\u015f ve optimum de\u011ferler ve\/veya maksimum olarak belirlenmi\u015ftir. Buna \u00f6rnek olarak B\u00fcy\u00fck Sayfa Boyutu dedi\u011fimiz (Huge Page Size) 2MB olarak belirlenmi\u015ftir (<a href=\"https:\/\/doxygen.postgresql.org\/sysv__shmem_8c_source.html\" target=\"_blank\" rel=\"noopener\">sysv_shmem.c<\/a>: sat\u0131r 402). Bu de\u011fer IBM Power mimarisi i\u00e7in 16MB olarak d\u00fczenlenip postgresql yeniden derlenmelidir.<\/p>\n<p>Ayr\u0131ca \u00e7ekirdek de\u011ferleri postgresql.org ayarlar\u0131nda<\/p>\n<pre><code>vm.nr_hugepages=2000\nvm.nr_overcommit_hugepages=512<\/code><\/pre>\n<p>ayarland\u0131ktan sonra, postgresql.conf dosyas\u0131nda Postgres&#8217;e huge page kullan\u0131m\u0131n\u0131 devreye almas\u0131 belirtilmelidir.<\/p>\n<pre><code>#huge_page = try #it will use huge pages if exists\nhuge_page=on #it will force to use huge pages<\/code><\/pre>\n<div class=\"alert alert-secondary\"><strong>G\u00fcncelleme: <\/strong>Kodda yap\u0131lan de\u011fi\u015fiklik ile, <a class=\"alert-link\" href=\"https:\/\/github.com\/postgres\/postgres\/commit\/cb775768e3e37d466d69b7177a92508b81c1c204#diff-4c166b485c1170b97ad5630d4f2a5349\" target=\"_blank\" rel=\"noopener noreferrer\">bu problem giderilmi\u015f<\/a>, hugepagesize&#8217;\u0131n varsay\u0131lan kabul\u00fc yerine i\u015fletim sistemi \u00fczerinden gerekli de\u011feri almas\u0131 i\u00e7in bir yap\u0131 kurulmu\u015ftur. Dolay\u0131s\u0131 ile bu konuda bir de\u011fi\u015fiklik yapmaya veya yeniden derlemeye gerek kalmamaktad\u0131r.<\/div>\n<h4>EDB Postgres Advanced Server i\u00e7in Power Ayarlar\u0131<\/h4>\n<p>\u0130\u015fletim sistemi taraf\u0131nda EDB\/Postgres kullan\u0131c\u0131s\u0131 i\u00e7in limitler d\u00fczenlenmelidir (<em>\/etc\/security\/limits.conf<\/em>). Bu dosyada soft ve hard bellek de\u011ferleri d\u00fczenlenebilir. Bu limit kullan\u0131c\u0131n\u0131n bellek \u00fczerinde korumal\u0131 alan olarak kilitleyebilece\u011fi maksimum alan\u0131 ifade eder, dolay\u0131s\u0131 ile bu ayar sistem m\u00fchendisi taraf\u0131ndan donan\u0131ma ve kullan\u0131ma g\u00f6re hesaplanarak belirlenir.<\/p>\n<pre><code>kullan\u0131c\u0131_adi soft memlock xxxxxxxxxxx\nkullan\u0131c\u0131_adi hard memlock xxxxxxxxxxx<\/code><\/pre>\n<p>EDB PAS i\u00e7in huge page ayar\u0131 kullan\u0131c\u0131n\u0131n \u00e7evresel de\u011fi\u015fkenleri \u00fczerinden ayarlanabilir.<\/p>\n<pre><code>HUGETLB_SHM=yes\nLD_PRELOAD='\/usr\/lib64\/libhugetlbfs.so'\nexport HUGETLB_SHM\nexport LD_PRELOAD<\/code><\/pre>\n<p>EDB PAS Power paketleri kurumsal kullan\u0131ma y\u00f6nelik olarak d\u00fczenlendi\u011fi i\u00e7in, kaynak kod \u00fczerindeki 2MB olan hugepage de\u011feri zaten 16MB olarak ayarlanm\u0131\u015f durumdad\u0131r.<\/p>\n<h3>Notlar<\/h3>\n<p>Yap\u0131lan optimizasyon de\u011fi\u015fiklikleri sistem m\u00fchendisi taraf\u0131ndan yap\u0131lacak olan bir dizi benchmark ile onaylanmal\u0131 (validation) gerekirse de\u011ferler \u00fczerinde de\u011fi\u015fiklikler yap\u0131lmal\u0131d\u0131r. Bu yaz\u0131 i\u00e7erisinde yer alan optimizasyon konular\u0131 donan\u0131m\u0131n t\u00fcm bile\u015fenlerini, a\u011f, dosya sistemi ve depolama donan\u0131m\u0131 vb. ile ilgili konular\u0131 kapsamamaktad\u0131r.<\/p>\n<p>Yaz\u0131 i\u00e7erisinde performans optimizasyonu yap\u0131lmak \u00fczere ele al\u0131nan de\u011fi\u015fkenlere ait de\u011ferler \u00f6zellikle verilmemi\u015ftir. Bunun sebebi sistem kullan\u0131m amac\u0131, veritaban\u0131 s\u00fcr\u00fcm\u00fc, donan\u0131m gibi de\u011fi\u015fkenlere ba\u011fl\u0131 olarak yap\u0131lmalar\u0131d\u0131r.<\/p>\n<p><strong>pgbench<\/strong> arac\u0131 PostgreSQL Community S\u00fcr\u00fcm kaynak kodunu indirdi\u011finizde, contrib dizini alt\u0131nda yer almaktad\u0131r. Standart make &amp;&amp; make install komutlari iler derlenip y\u00fcklenebilir.<\/p>\n<p><em>IBM, IBM Power Architecture, Power8,\u00a0Oracle, MSSQL, Red Hat ilgili firmalar\u0131n tescilli markalar\u0131d\u0131r.<\/em><\/p>","protected":false},"excerpt":{"rendered":"<p>Community PostgreSQL bir pos cihaz\u0131n\u0131n \u00fczerinde dahi \u00e7al\u0131\u015fabilecek \u015fekilde en temel yap\u0131land\u0131rma ile sunulmakta, kurumsal kullan\u0131m ihtiya\u00e7lar\u0131n\u0131 kar\u015f\u0131layabilmesi i\u00e7in yeniden yap\u0131land\u0131rmaya ve performans ayarlamas\u0131na kesinlikle ihtiya\u00e7 duymaktad\u0131r. Performans optimizasyonu temelde i\u015fletim sistemi ile \u00e7ok ili\u015fkili \u00e7al\u0131\u015fan PostgreSQL i\u00e7in sadece donan\u0131m ve veritaban\u0131 seviyesinde de\u011fil ayn\u0131 zamanda i\u015fletim sistemi ve \u00e7ekirdek seviyesinde de yap\u0131lmal\u0131d\u0131r.<\/p>","protected":false},"author":3,"featured_media":1927,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[76,75,45],"tags":[48,61,60],"class_list":["post-1899","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux","category-postgresql","category-yazi","tag-enterprisedb","tag-linux","tag-postgresql"],"_links":{"self":[{"href":"https:\/\/profelis.com.tr\/en\/wp-json\/wp\/v2\/posts\/1899","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/profelis.com.tr\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/profelis.com.tr\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/profelis.com.tr\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/profelis.com.tr\/en\/wp-json\/wp\/v2\/comments?post=1899"}],"version-history":[{"count":0,"href":"https:\/\/profelis.com.tr\/en\/wp-json\/wp\/v2\/posts\/1899\/revisions"}],"wp:attachment":[{"href":"https:\/\/profelis.com.tr\/en\/wp-json\/wp\/v2\/media?parent=1899"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/profelis.com.tr\/en\/wp-json\/wp\/v2\/categories?post=1899"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/profelis.com.tr\/en\/wp-json\/wp\/v2\/tags?post=1899"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}