Mālama ʻIkepili Paʻa a me nā API Kōnae Linux

ʻO wau, ke noiʻi nei i ke kūpaʻa o ka mālama ʻana i ka ʻikepili i nā ʻōnaehana kapua, ua hoʻoholo wau e hoʻāʻo iaʻu iho, e ʻike maopopo iaʻu i nā mea kumu. I hoʻomaka ma ka heluhelu ʻana i ka spec NVMe no ka hoʻomaopopo ʻana i nā mea e hōʻoiaʻiʻo ai e pili ana i ka hoʻomau ʻana o ka ʻikepili (ʻo ia hoʻi, e hōʻoiaʻiʻo e loaʻa ka ʻikepili ma hope o ka pau ʻole o ka ʻōnaehana) hāʻawi iā mākou i nā disks NMVe. Ua hana au i kēia mau manaʻo nui: pono ʻoe e noʻonoʻo i ka ʻikepili i hōʻino ʻia mai ka manawa i hāʻawi ʻia ai ke kauoha kākau ʻikepili, a hiki i ka manawa i kākau ʻia ai lākou i ka waihona mālama. Eia nō naʻe, ma ka hapa nui o nā polokalamu, hoʻohana palekana ʻia nā kelepona ʻōnaehana e kākau i ka ʻikepili.

Ma kēia ʻatikala, ʻimi au i nā hana hoʻomau i hāʻawi ʻia e nā API file Linux. Me he mea lā e maʻalahi nā mea a pau ma ʻaneʻi: kāhea ka papahana i ke kauoha write(), a ma hope o ka pau ʻana o ka hana o kēia kauoha, e mālama paʻa ʻia ka ʻikepili ma ka disk. Akā write() kope wale i ka ʻikepili noi i ka cache kernel aia ma RAM. I mea e koi ai i ka ʻōnaehana e kākau i ka ʻikepili i ka disk, pono e hoʻohana ʻia kekahi mau hana hou.

Mālama ʻIkepili Paʻa a me nā API Kōnae Linux

Ma keʻano laulā, he pūʻulu memo kēia e pili ana i nā mea aʻu i aʻo ai ma kahi kumuhana hoihoi iaʻu. Inā mākou e kamaʻilio pōkole loa e pili ana i ka mea nui loa, ʻike ʻia i mea e hoʻonohonoho ai i ka mālama ʻikepili hoʻomau, pono ʻoe e hoʻohana i ke kauoha. fdatasync() a wehe paha i nā faila me ka hae O_DSYNC. Inā makemake ʻoe e aʻo hou aʻe e pili ana i ka hopena o ka ʻikepili ma ke ala mai ke code a i ka disk, e nānā kēia ʻatikala.

Nā hiʻohiʻona o ka hoʻohana ʻana i ka hana kākau ().

Kāhea pūnaewele write() i wehewehe ʻia ma ka maʻamau IEEE POSIX ma ke ʻano he hoʻāʻo e kākau i ka ʻikepili i kahi wehewehe faila. Ma hope o ka pau ʻana o ka hana write() Pono nā hana heluhelu ʻikepili e hoʻihoʻi pololei i nā bytes i kākau mua ʻia, e hana ana inā ʻoiai ke komo ʻia ka ʻikepili mai nā kaʻina hana a i ʻole nā ​​kaula (aia hoʻi ʻāpana kūpono o ka maʻamau POSIX). he mea, ma ka ʻāpana e pili ana i ka pili ʻana o nā kaula me nā hana faila maʻamau, aia kahi leka e ʻōlelo ana inā ʻelua mau kaula i kapa ʻia i kēia mau hana, a laila pono kēlā me kēia kelepona e ʻike i nā hopena i hōʻike ʻia e alakaʻi ʻia ai ka hoʻokō ʻana i ke kelepona ʻē aʻe, a i ʻole. ʻaʻole ʻike iki i nā hopena. Ke alakaʻi nei kēia i ka hopena e pono e paʻa nā hana I/O a pau i kahi laka ma ka kumuwaiwai e hana ʻia nei.

ʻO kēia ke ʻano o ka hana write() he atomika? Mai ka ʻike loea, ʻae. Pono e hoʻihoʻi nā hana heluhelu ʻikepili i nā mea a pau a i ʻole kekahi o nā mea i kākau ʻia me write(). Akā ʻo ka hana write(), e like me ka maʻamau, ʻaʻole pono e hoʻopau, ua kākau i nā mea a pau i noi ʻia iā ia e kākau. Ua ʻae ʻia e kākau i kahi hapa wale nō o ka ʻikepili. No ka laʻana, loaʻa paha iā mākou ʻelua kahawai e hoʻopili ana i 1024 bytes i kahi faila i wehewehe ʻia e ka mea wehewehe waihona like. Mai ka manaʻo o ka maʻamau, e ʻae ʻia ka hopena inā hiki i kēlā me kēia o nā hana kākau ke hoʻopili i hoʻokahi wale nō byte i ka faila. E mau ana kēia mau hana i ka atomic, akā ma hope o ka pau ʻana, e huikau ʻia ka ʻikepili a lākou e kākau ai i ka faila. ʻaneʻi Kūkākūkā hoihoi loa ma kēia kumuhana ma Stack Overflow.

fsync() a me fdatasync() hana

ʻO ke ala maʻalahi e holoi i ka ʻikepili i ka disk ʻo ke kāhea ʻana i ka hana fsync(). Nīnau kēia hana i ka ʻōnaehana hana e hoʻoneʻe i nā poloka i hoʻololi ʻia mai ka cache i ka disk. Loaʻa kēia i nā metadata āpau o ka faila (manawa komo, manawa hoʻololi faila, a pēlā aku). Manaʻo wau ʻaʻole pono kēia metadata, no laila inā ʻike ʻoe ʻaʻole ia he mea nui iā ʻoe, hiki iā ʻoe ke hoʻohana i ka hana fdatasync(). ka kokua ma fdatasync() ʻōlelo ia i ka wā o ka hana ʻana o kēia hana, mālama ʻia ka nui o ka metadata i ka disk, ʻo ia ka "pono ​​no ka hoʻokō pono ʻana i nā hana heluhelu ʻikepili." A ʻo kēia ka mea e mālama ai ka hapa nui o nā noi.

ʻO kekahi pilikia e hiki mai ana ma ʻaneʻi, ʻaʻole hōʻoia kēia mau hana i ka loaʻa ʻana o ka faila ma hope o ka hiki ʻole. ʻO ka mea nui, ke hana ʻia kahi faila hou, pono e kāhea kekahi fsync() no ka papa kuhikuhi i loko o ia mea. A i ʻole, ma hope o ka hāʻule ʻana, ʻike ʻia ʻaʻole i loaʻa kēia faila. ʻO ke kumu o kēia ma lalo o UNIX, ma muli o ka hoʻohana ʻana i nā loulou paʻakikī, hiki i kahi faila ke noho ma nā papa kuhikuhi he nui. No laila, i ke kāhea ʻana fsync() ʻAʻohe ala e ʻike ai kahi faila i ka ʻikepili papa kuhikuhi e hoʻolele ʻia i ka disk (maanei hiki iā ʻoe ke heluhelu hou aʻe e pili ana i kēia). Me he mea lā hiki i ka ext4 file system ke hiki lolika pili fsync() i nā papa kuhikuhi i loaʻa nā faila pili, akā ʻaʻole paha kēia me nā ʻōnaehana faila ʻē aʻe.

Hiki ke hoʻokō ʻokoʻa kēia mīkini i nā ʻōnaehana faila like ʻole. Ua hoʻohana au blktrace e aʻo e pili ana i nā hana disk i hoʻohana ʻia i nā ʻōnaehana faila ext4 a me XFS. Hoʻopuka nā mea ʻelua i nā kauoha kākau maʻamau i ka disk no nā mea ʻelua o nā faila a me ka waihona ʻōnaehana waihona, holoi i ka huna huna a puka i waho ma ka hana ʻana i kahi FUA (Force Unit Access, kākau pololei i ka ʻikepili i ka disk, kaʻe ʻana i ka cache) e kākau i ka puke pai. Hana paha lākou pēlā i mea e hōʻoia ai i ka ʻoiaʻiʻo o ke kālepa. Ma nā kaʻa ʻaʻole kākoʻo i ka FUA, hoʻoulu kēia i ʻelua mau kahe huna. Ua hōʻike kaʻu mau hoʻokolohua i kēlā fdatasync() ʻoi aku ka wikiwiki iki fsync(). Mea hoohana blktrace hōʻike i kēlā fdatasync() kākau pinepine i ka ʻikepili liʻiliʻi i ka disk (ma ext4 fsync() kakau 20 KiB, a fdatasync() - 16 KiB). Eia kekahi, ua ʻike au ua ʻoi aku ka wikiwiki o XFS ma mua o ext4. A maanei me ke kokua blktrace ua hiki ke ike i kela fdatasync() e hoʻolei i ka ʻikepili liʻiliʻi i ka disk (4 KiB ma XFS).

Nā kūlana pohihihi i ka hoʻohana ʻana iā fsync()

Hiki iaʻu ke noʻonoʻo i ʻekolu mau kūlana pohihihi e pili ana fsync()aʻu i ʻike ai ma ka hana.

ʻO ka mea mua i hana ʻia ma 2008. I kēlā manawa, "hoʻomaloʻo" ka Firefox 3 inā he nui nā faila i kākau ʻia i ka disk. ʻO ka pilikia, ʻo ka hoʻokō ʻana o ka interface i hoʻohana i kahi waihona SQLite e mālama i ka ʻike e pili ana i kona mokuʻāina. Ma hope o kēlā me kēia hoʻololi i hana ʻia ma ka interface, ua kāhea ʻia ka hana fsync(), i hāʻawi i nā hōʻoia maikaʻi o ka mālama ʻana i ka ʻikepili paʻa. Ma ka ʻōnaehana faila ext3 i hoʻohana ʻia, ka hana fsync() Holoi ʻia i ka diski i nā ʻaoʻao "palapala" āpau o ka ʻōnaehana, ʻaʻole wale nā ​​mea pili i ka faila pili. ʻO ke kaomi ʻana i kahi pihi ma Firefox hiki ke hana i nā megabytes o ka ʻikepili i kākau ʻia i kahi disk magnetic, hiki ke lawe i nā kekona he nui. ʻO ka hopena o ka pilikia, e like me kaʻu i hoʻomaopopo ai ia mea, e hoʻoneʻe i ka hana me ka waihona i nā hana asynchronous hope. ʻO ia hoʻi, ua hoʻohana ʻo Firefox i ka hoʻokō ʻana i nā koi koʻikoʻi o ka mālama ʻana ma mua o ka mea e pono ai, a ʻo nā hiʻohiʻona ext3 filesystem i hoʻonui i kēia pilikia.

Ua loaʻa ka pilikia ʻelua i ka makahiki 2009. A laila, ma hope o ka hāʻule ʻana o ka ʻōnaehana, ʻike nā mea hoʻohana o ka ʻōnaehana faila ext4 hou he nui nā faila hou i hana ʻole i ka lōʻihi, akā ʻaʻole i loaʻa kēia me ka ʻōnaehana faila ext3 kahiko. Ma ka paukū mua, ua kamaʻilio wau e pili ana i ka hoʻolei ʻana o ext3 i ka ʻikepili i ka disk, kahi i hoʻolōʻihi i nā mea. fsync(). No ka hoʻomaikaʻi ʻana i ke kūlana, hoʻoheheʻe ʻo ext4 i nā ʻaoʻao "palapala" i pili i kahi faila. A mau ka ʻikepili o nā faila ʻē aʻe i ka hoʻomanaʻo no ka manawa lōʻihi ma mua o ext3. Ua hana ʻia kēia e hoʻomaikaʻi i ka hana (ma ka maʻamau, noho ka ʻikepili i kēia mokuʻāina no 30 kekona, hiki iā ʻoe ke hoʻonohonoho i kēia me ka hoʻohana ʻana dirty_expire_centisecs; maanei hiki iā ʻoe ke ʻike i ka ʻike hou aku e pili ana i kēia). 'O ia ho'i, hiki ke nalowale ka nui o ka 'ikepili ma hope o ka hā'ule 'ana. ʻO ka hoʻonā i kēia pilikia e hoʻohana fsync() i nā noi e pono ai e hoʻolako i ka mālama ʻana i ka ʻikepili paʻa a pale iā lākou e like me ka hiki mai nā hopena o nā hemahema. Hana fsync() ʻoi aku ka maikaʻi o ka hana me ext4 ma mua o ext3. ʻO ka hemahema o kēia ala ʻo ia ka hoʻohana ʻana, e like me ka wā ma mua, e hoʻolōʻihi i kekahi mau hana, e like me ke kau ʻana i nā polokalamu. E ʻike i nā kikoʻī e pili ana i kēia maanei и maanei.

ʻO ke kolu o ka pilikia e pili ana fsync(), i hoʻomaka i ka makahiki 2018. A laila, i loko o ka hoʻolālā o ka papahana PostgreSQL, ua ʻike ʻia inā ʻo ka hana fsync() loaʻa i kahi hewa, hōʻailona ia i nā ʻaoʻao "palapala" ma ke ʻano he "maʻemaʻe". ʻO ka hopena, kāhea kēia mau mea fsync() ʻAʻohe hana me ia ʻaoʻao. Ma muli o kēia, mālama ʻia nā ʻaoʻao i hoʻololi ʻia i ka hoʻomanaʻo a ʻaʻole i kākau ʻia i ka disk. He pōʻino maoli kēia, no ka mea, e manaʻo ka noi ua kākau ʻia kekahi mau ʻikepili i ka disk, akā ʻaʻole ia. ʻO ia mau hemahema fsync() ʻAʻole hiki ke hana i kahi mea e pale aku ai i ka pilikia. I kēia mau lā, ke hana ʻia kēia, hāʻule ka PostgreSQL a me nā noi ʻē aʻe. he mea, i loko o ka ʻatikala "Hiki i nā noi ke hoʻihoʻi hou mai ka fsync Failures?", ʻike ʻia kēia pilikia me ka kikoʻī. ʻO ka hopena maikaʻi loa i kēia pilikia ʻo ka hoʻohana ʻana i Direct I/O me ka hae O_SYNC a me ka hae O_DSYNC. Me kēia ala, e hōʻike ka ʻōnaehana i nā hewa e hiki mai ana i ka wā e hana ana i nā hana kākau ʻikepili kikoʻī, akā pono kēia ala i ka noi e hoʻokele i nā pale ponoʻī. E heluhelu hou e pili ana ia mea maanei и maanei.

Ke wehe nei i nā faila me ka hoʻohana ʻana i nā hae O_SYNC a me O_DSYNC

E hoʻi kāua i ke kūkākūkā o nā mīkini Linux e hāʻawi i ka mālama ʻikepili mau. ʻO ia, ke kamaʻilio nei mākou e pili ana i ka hoʻohana ʻana i ka hae O_SYNC a i ʻole hae O_DSYNC i ka wehe ʻana i nā faila me ka hoʻohana ʻana i ka system call wehe (). Me kēia ala, hana ʻia kēlā me kēia hana kākau ʻikepili me he mea lā ma hope o kēlā me kēia kauoha write() hāʻawi ʻia ka ʻōnaehana, kēlā me kēia, kauoha fsync() и fdatasync(). ka Nā kikoʻī POSIX kapa ʻia kēia ʻo "Synchronized I/O File Integrity Completion" a me "Data Integrity Completion". ʻO ka pōmaikaʻi nui o kēia ala, ʻo ia hoʻokahi wale nō kelepona ʻōnaehana pono e hoʻokō e hōʻoia i ka pono o ka ʻikepili, ʻaʻole ʻelua (e laʻa - write() и fdatasync()). ʻO ka hemahema nui o kēia ala, ʻo ia ka hoʻonohonoho ʻana i nā hana kākau āpau me ka hoʻohana ʻana i ka wehewehe faila e pili ana, hiki ke kaupalena i ka hiki ke hoʻonohonoho i ke code noi.

Ke hoʻohana nei i Direct I/O me ka hae O_DIRECT

Kāhea pūnaewele open() kākoʻo i ka hae O_DIRECT, i hoʻolālā ʻia e kāpae i ka cache ʻōnaehana hana, hana i nā hana I / O, e launa pū me ka disk. ʻO kēia, i nā manawa he nui, ʻo ia ka mea e unuhi pololei ʻia nā kauoha kākau i hoʻopuka ʻia e ka papahana i nā kauoha e pili ana i ka hana ʻana me ka disk. Akā, ma ka laulā, ʻaʻole kēia ʻano hana i pani no nā hana fsync() ai ole ia, fdatasync(). ʻO ka ʻoiaʻiʻo hiki i ka disk iā ia iho lohi a hūnā paha nā kauoha kūpono no ke kākau ʻana i ka ʻikepili. A ʻoi aku ka maikaʻi, i kekahi mau hihia kūikawā, hana ʻia nā hana I / O i ka wā e hoʻohana ai i ka hae O_DIRECT, hoolaha i loko o nā hana kuʻuna buffered. ʻO ke ala maʻalahi e hoʻoponopono ai i kēia pilikia, ʻo ia ka hoʻohana ʻana i ka hae e wehe i nā faila O_DSYNC, ʻo ia hoʻi, e ukali ʻia kēlā me kēia hana kākau e kahi kelepona fdatasync().

Ua hoʻololi ʻia ua hoʻohui hou ʻo XFS filesystem i kahi "ala wikiwiki" no O_DIRECT|O_DSYNC-ʻikepili moʻolelo. Inā kākau ʻia ka poloka me ka hoʻohana ʻana O_DIRECT|O_DSYNC, a laila ʻo XFS, ma kahi o ka holoi ʻana i ka cache, e hoʻokō i ke kauoha kākau FUA inā kākoʻo ka hāmeʻa iā ia. Ua hōʻoia au i kēia me ka hoʻohana ʻana i ka pono blktrace ma kahi ʻōnaehana Linux 5.4/Ubuntu 20.04. Pono e ʻoi aku ka maikaʻi o kēia ala, no ka mea, kākau ʻo ia i ka liʻiliʻi o ka ʻikepili i ka disk a hoʻohana i hoʻokahi hana, ʻaʻole ʻelua (kākau a holoi i ka cache). Ua loaʻa iaʻu kahi loulou i popōna 2018 kernel e hoʻokō nei i kēia hana. Aia kekahi mau kūkākūkā e pili ana i ka hoʻohana ʻana i kēia optimization i nā filesystem ʻē aʻe, akā e like me kaʻu ʻike, ʻo XFS wale nō ka filesystem e kākoʻo nei i kēia manawa.

sync_file_range() hana

He kelepona ʻōnaehana ko Linux sync_file_range(), hiki iā ʻoe ke holoi i kahi hapa o ka faila i ka disk, ʻaʻole i ka faila holoʻokoʻa. Hoʻomaka kēia kelepona i kahi flush asynchronous a ʻaʻole kali i ka pau ʻana. Akā ma ka kuhikuhi ʻana i sync_file_range() ʻōlelo ʻia kēia kauoha he "pilikia loa". ʻAʻole ʻōlelo ʻia e hoʻohana. Nā hiʻohiʻona a me nā pōʻino sync_file_range() wehewehe maikaʻi loa ma kēia mea waiwai. ʻO ka mea kūikawā, ʻike ʻia kēia kelepona e hoʻohana iā RocksDB e hoʻokele i ka wā e hoʻokuʻu ai ka kernel i ka ʻikepili "palapala" i ka disk. Akā i ka manawa like ma laila, e hōʻoia i ka mālama ʻana i ka ʻikepili paʻa, hoʻohana pū ʻia fdatasync(). ka pāʻālua Loaʻa iā RocksDB kekahi mau manaʻo hoihoi e pili ana i kēia kumuhana. No ka laʻana, ua like ia me ke kelepona sync_file_range() i ka hoʻohana ʻana iā ZFS ʻaʻole e hoʻolele i ka ʻikepili i ka disk. Hōʻike mai ka ʻike iaʻu e loaʻa i ka code kakaʻikahi i loaʻa nā pōpoki. No laila, ke aʻo aku nei au e kūʻē i ka hoʻohana ʻana i kēia kelepona ʻōnaehana inā ʻaʻole pono.

Kāhea pūnaewele e kōkua i ka hoʻomau ʻana o ka ʻikepili

Ua hoʻoholo wau aia ʻekolu ala e hiki ke hoʻohana ʻia e hana i nā hana I/O mau. Pono lākou a pau i kahi kelepona hana fsync() no ka papa kuhikuhi kahi i hana ʻia ai ka faila. ʻO kēia nā alahele:

  1. Kāhea hana fdatasync() ai ole ia, fsync() ma hope o ka hana write() (ʻoi aku ka maikaʻi o ka hoʻohana ʻana fdatasync()).
  2. Ua wehe ʻia ka hana me kahi wehewehe faila me ka hae O_DSYNC ai ole ia, O_SYNC (ʻoi aku ka maikaʻi - me ka hae O_DSYNC).
  3. Hoʻohana kauoha pwritev2() me ka hae RWF_DSYNC ai ole ia, RWF_SYNC (ʻoi aku ka maikaʻi me ka hae RWF_DSYNC).

Nā memo hana

ʻAʻole au i hana i kahi ana hoʻokō piha o nā ʻano hana like ʻole aʻu i ʻimi ai. ʻO nā ʻokoʻa aʻu i ʻike ai i ka wikiwiki o kā lākou hana he liʻiliʻi loa. ʻO ia ke ʻano hiki iaʻu ke hewa, a ma nā kūlana ʻē aʻe hiki ke hōʻike i nā hopena like ʻole. ʻO ka mea mua, e kamaʻilio wau e pili ana i ka mea e pili ana i ka hana, a laila, e pili ana i ka mea e emi ai ka hana.

  1. ʻOi aku ka wikiwiki o ke kākau ʻana i ka ʻikepili waihona ma mua o ka hoʻopili ʻana i ka ʻikepili i kahi faila (hiki i ka loaʻa ʻana o ka hana ke 2-100%). Pono ka hoʻopili ʻana i ka ʻikepili i kahi faila i nā loli hou i ka metadata o ka faila, ʻoiai ma hope o ke kelepona ʻana o ka ʻōnaehana fallocate(), akā ʻokoʻa paha ka nui o kēia hopena. Paipai au, no ka hana maikaʻi loa, e kelepona fallocate() e hoʻokaʻawale mua i ka wahi i makemake ʻia. A laila pono e hoʻopiha piha ʻia kēia wahi me nā zeros a kāhea ʻia fsync(). ʻO kēia ka mea e hōʻailona ʻia ai nā poloka pili i ka ʻōnaehana faila ma ke ʻano he "hoʻokaʻawale ʻia" ma mua o ka "unallocated". Hāʻawi kēia i kahi liʻiliʻi (ma kahi o 2%) ka hoʻomaikaʻi ʻana i ka hana. Eia kekahi, ʻoi aku ka lohi o kekahi mau disks ma mua o nā mea ʻē aʻe. ʻO ke ʻano o ka hoʻopiha ʻana i ka hakahaka me nā zeros hiki ke alakaʻi i kahi hoʻomaikaʻi nui (ma kahi o 100%). ʻO ka mea nui, hiki ke hana kēia me nā disks. AWS EBS (ʻo kēia ka ʻikepili kūhelu ʻole, ʻaʻole hiki iaʻu ke hōʻoia iā lākou). Pela no ka waiho ana. Kāpae Paʻa GCP (a ʻo kēia ka ʻike kūhelu, hōʻoia ʻia e nā hoʻokolohua). Ua hana like nā poʻe akamai ʻē aʻe ka nānā ʻanapili i nā diski like ʻole.
  2. ʻO ka liʻiliʻi o nā kelepona pūnaewele, ʻoi aku ka kiʻekiʻe o ka hana (hiki ke loaʻa ma kahi o 5%). Me he mea lā he kelepona open() me ka hae O_DSYNC a kelepona paha pwritev2() me ka hae RWF_SYNC kelepona wikiwiki fdatasync(). Manaʻo wau ʻo ka manaʻo ma ʻaneʻi ʻo ia me kēia ala, ʻo ka liʻiliʻi o nā kelepona ʻōnaehana pono e hana ʻia e hoʻoponopono i ka hana like (hoʻokahi kelepona ma mua o ʻelua) ke kuleana. Akā liʻiliʻi loa ka ʻokoʻa o ka hana, no laila hiki iā ʻoe ke haʻalele iā ia a hoʻohana i kekahi mea i loko o ka noi ʻaʻole e alakaʻi i ka hoʻopiʻi ʻana o kāna loiloi.

Inā makemake ʻoe i ke kumuhana o ka mālama ʻikepili hoʻomau, eia kekahi mau mea pono:

  • ʻO nā ala komo I/O - kahi ʻike o nā kumu kumu o nā mīkini hoʻokomo / puka.
  • E hōʻoia i ka ʻikepili i hiki i ka disk - he moʻolelo e pili ana i ka hopena o ka ʻikepili ma ke ala mai ka noi i ka disk.
  • I ka manawa hea ʻoe e fsync i ka papa kuhikuhi - ka pane i ka nīnau o ka wā e noi ai fsync() no nā papa kuhikuhi. Ma kahi pōkole, ʻike ʻia he pono ʻoe e hana i kēia i ka wā e hana ai i kahi faila hou, a ʻo ke kumu o kēia ʻōlelo ʻana ʻo ia ma Linux hiki ke nui nā kuhikuhi i ka faila hoʻokahi.
  • SQL Server ma Linux: FUA Kuloko - eia ka wehewehe ʻana i ka hoʻokō ʻia ʻana o ka mālama ʻikepili hoʻomau ma SQL Server ma ke kahua Linux. Aia kekahi mau hoʻohālikelike hoihoi ma waena o nā kelepona ʻōnaehana Windows a me Linux ma aneʻi. Aneane maopopo iaʻu ua mahalo ʻia kēia mea aʻu i aʻo ai e pili ana i ka FUA optimization o XFS.

Ua nalowale paha ʻoe i ka ʻikepili āu i manaʻo ai ua mālama paʻa ʻia ma ka disk?

Mālama ʻIkepili Paʻa a me nā API Kōnae Linux

Mālama ʻIkepili Paʻa a me nā API Kōnae Linux

Source: www.habr.com