Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Webサーバ拡張における排他制御のパフォーマンスチューニング /performance_tun...
Search
Takuma Kume
November 08, 2017
Technology
2.8k
7
Share
Webサーバ拡張における排他制御のパフォーマンスチューニング /performance_tuning_of_exclusive_control in_web_server extension
第10回ペパボテックカンファレンス~インフラエンジニアがもっとおもしろくできる!~
https://pepabo.connpass.com/event/69866/
Takuma Kume
November 08, 2017
More Decks by Takuma Kume
See All by Takuma Kume
SRE/インフラエンジニアの市場価値とキャリアパス/Market value and career path for SRE-infrastructure engineers
takumakume
2
1.5k
【新卒研修】共通言語としてのSRE/SRE as a common language
takumakume
0
270
DDoSとの終わりなき戦い2025/endless_battle_with_ddos_attack_2025
takumakume
3
180
事業部CTOの現在地(パネルディスカッション)/Current-location-of-Division-CTO
takumakume
0
210
ロリポップ! for Gamersを支えるインフラ/lolipop for gamers infrastructure
takumakume
0
1.5k
ロリポップ! for Gamersの立ち上げ/lolipop for gamers launch
takumakume
0
2.9k
ホモグラフドメインを検出してみた/detect homograph domain
takumakume
0
790
ソフトウェアの継続的アップデートをコンテナ化によって加速させる/Accelerate continuous software updates with containerization
takumakume
0
5.6k
KubernetesにおけるSBOMを利用した脆弱性管理/Vulnerability_Management_with_SBOM_in_Kubernetes
takumakume
2
3.1k
Other Decks in Technology
See All in Technology
自作エディターをOSSにして分かった、一人に刺さる開発が世界を動かす理由
shinyasaita
1
450
「使われるデータ基盤」を目指してデータアナリストとワークショップをやった話
jackojacko_
2
910
自称宇宙最速で不合格となったAIP-C01にリベンジを果たすべくAIで問題集アプリを作ってみた。
yama3133
0
230
海外カンファレンス「JavaOne」参加レポート ユーザー系IT企業における目的・成果/JavaOne Report Purpose and Results in the User IT Company
muit
0
100
AI とサービス・デザイン / AI and Service Design
ks91
PRO
0
180
基礎から解説!Icebergで紐解くSnowflake×Databricks連携の現在地
cm_yasuhara
0
350
AI時代に改めて考える、ドメイン駆動設計 - モデリングが「AIへの共通言語」になる
littlehands
8
2.7k
20260528_生成AIを専属DSに_Howの次にすべきことを考える
doradora09
PRO
0
230
開発を止めない CI/CD ~CI Visibilityによる継続的最適化~
pensuke628
0
140
Agentic AI時代における メルカリのAIガバナンスとガードレール実装
naoichihara
16
16k
Claude Codeですべての日常業務を爆速化しよう!
minorun365
PRO
16
15k
GitHub Copilot CLI の Rubber Duck 機能を使ってコーディングの品質をあげよう #techbaton_findy
stefafafan
2
1.2k
Featured
See All Featured
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
1
110
Chasing Engaging Ingredients in Design
codingconduct
0
200
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
370
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
260
[SF Ruby Conf 2025] Rails X
palkan
2
1.1k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
130
A designer walks into a library…
pauljervisheath
211
24k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Code Review Best Practice
trishagee
74
20k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
Faster Mobile Websites
deanohume
310
31k
Producing Creativity
orderedlist
PRO
348
40k
Transcript
ٱถഅ(.01&1"#0JOD ୈճϖύϘςοΫΧϯϑΝϨϯε 8FCαʔό֦ுʹ͓͚Δഉଞ੍ޚͷ ύϑΥʔϚϯενϡʔχϯά
ٱถഅ!UBLVNBLVNF Ԭࢧࣾ ϗεςΟϯάࣄۀ෦ΠϯϑϥΤϯδχΞ ߴଔʙؒΠϯλʔωοταʔϏεϓϩόΠμͰۈ ɾ؆୯ͳωοτϫʔΫɺαʔόͷߏங ɾϓϦηʔϧεΤϯδχΞ ݄͔ΒϖύϘʹೖࣾ ɾΠϯϑϥΤϯδχΞ झຯɿڕΓ
Γ෦͋ΔΑʂʂʂ
None
ֹ݄ԁ͔Βར༻Ͱ͖Δʂ ສαΠτҎ্ӡ༻தʂ ඵؒສઍϦΫΤετΛॲཧʂ
࣍ ɾϩϦϙοϓʂͷ8FCαʔόߏͱػೳ֦ுͷྫ ɾ8FCαʔόͷػೳ֦ுʹ͓͚Δഉଞ੍ޚͷඞཁੑ ɾഉଞ੍ޚͷύϑΥʔϚϯενϡʔχϯάͷϙΠϯτ ɾ·ͱΊ
ϩϦϙοϓʂͷ 8FCαʔόߏͱػೳ֦ுͷྫ
ϩϦϙοϓʂͷ8FCαʔόߏ ϦόʔεϓϩΩγ 8FCαʔό
ϩϦϙοϓʂͷ8FCαʔόߏ ϦόʔεϓϩΩγ 8FCαʔό ʴ ngx_mruby ʴ mod_mruby
ϩϦϙοϓʂͷ8FCαʔόߏ ϦόʔεϓϩΩγ 8FCαʔό ʴ ngx_mruby ʴ mod_mruby ฐࣾͷ!NBUTVNPUPSZ͕։ൃ͍ͯ͠Δ OHJOYIUUQEΛNSVCZΛ੍ͬͯޚͰ͖Δ
NSVCZͱɿলϝϞϦͷΈࠐΈ͚ͷ3VCZ ௨ৗOHJOYIUUQEͷػೳ֦ுΛ͢Δ߹ $ݴޠͰϞδϡʔϧΛ։ൃ͢Δඞཁ͕͋ͬͨ ϓϩηεͷىಈ࣌ɺΞΫηεॲཧ࣌ͳͲɺ༷ʑ ͳλΠϛϯάͰNSVCZͷεΫϦϓτΛ࣮ߦ͢Δ ػೳ͕͋Δ ngx_mruby/mod_mruby
ϩϦϙοϓʂͷ8FCαʔόߏ 8FCαʔό ʴ ngx_mruby ʴ mod_mruby ϦόʔεϓϩΩγ υϝΠϯʹԠͨ͡8FCαʔόͷબ υϝΠϯʹԠͨ͡44-ূ໌ॻͷબ
߈ܸ͔Βͷޚ Webαʔό υϝΠϯΞΧϯτຖͷಉ࣌ଓͷ੍ޚ DHSPVQʹΑΔಈతͳ$16੍ޚ
ϩϦϙοϓʂͷ8FCαʔόߏ 8FCαʔό ʴ ngx_mruby ʴ mod_mruby ϦόʔεϓϩΩγ υϝΠϯʹԠͨ͡8FCαʔόͷબ υϝΠϯʹԠͨ͡44-ূ໌ॻͷબ
߈ܸ͔Βͷޚ Webαʔό Ϧιʔεཧ υϝΠϯຖͷಉ࣌ଓͷ੍ޚ DHSPVQʹΑΔಈతͳ$16੍ޚ ϖύϘͰɺΜʹ8FCαʔόͷ ػೳ֦ு͕ߦΘΕ͍ͯΔʂ
8FCαʔόػೳ֦ுʹ͓͚Δ ഉଞ੍ޚͷඞཁੑΛ ࣮ྫΛݩʹઆ໌͍͖ͯ͠·͢ʂ
ʲྫʳ ΞΫηεΛ,74Λͬͯ Χϯτ͢Δ࣮
,74 ΞΫηε ΞΫηε ΞΫηε ΧϯτΞοϓॲཧ ,FZ 7BMVF DPVOUFS XPSLFS
XPSLFS XPSLFS
,74 ΞΫηε ΞΫηε ΞΫηε ΧϯτΞοϓॲཧ ,FZ 7BMVF DPVOUFS XPSLFS
XPSLFS XPSLFS ͨͩɺΧϯτΞοϓ͢Δ͚ͩͰ ਖ਼ৗͳʹͳΒͳ͍ɻ
ϨʔείϯσΟγϣϯ ʢڝ߹ঢ়ଶʣ
ΞΫηε ΞΫηε ΞΫηε ΧϯτΞοϓॲཧ ,FZ 7BMVF DPVOUFS XPSLFS XPSLFS
,74 XPSLFS ΧϯτΞοϓॲཧ
ΧϯτΞοϓॲཧ ,FZ 7BMVF DPVOUFS ,74 XPSLFS
ΧϯτΞοϓॲཧ ,74 ᶃݱࡏΛऔಘ XPSLFS ,FZ 7BMVF DPVOUFS
ΧϯτΞοϓॲཧ ,74 ᶃݱࡏΛऔಘ ᶄݱࡏʴ̍ XPSLFS ,FZ 7BMVF DPVOUFS
ΧϯτΞοϓॲཧ ,74 ᶃݱࡏΛऔಘ ᶅܭࢉ݁ՌΛॻ͖ࠐΈ ᶄݱࡏʴ̍ XPSLFS ,FZ 7BMVF DPVOUFS
ΧϯτΞοϓॲཧ ,74 ᶃݱࡏΛऔಘ ᶅܭࢉ݁ՌΛॻ͖ࠐΈ ᶄݱࡏʴ̍ XPSLFS ,FZ 7BMVF DPVOUFS
ฒྻ࣮ߦ͞Εͨ߹
ΧϯτΞοϓॲཧ ,74 ,FZ 7BMVF DPVOUFS ᶃݱࡏΛऔಘ XPSLFS
ΧϯτΞοϓॲཧ ,74 ᶄݱࡏʴ̍ ,FZ 7BMVF DPVOUFS ᶃݱࡏΛऔಘ
XPSLFS
ΧϯτΞοϓॲཧ ,74 ᶃݱࡏΛऔಘ ᶄݱࡏʴ̍ ,FZ 7BMVF DPVOUFS ผͷ8PSLFS͔Β
ॻ͖ࠐΈ͕ൃੜ XPSLFS XPSLFS
ΧϯτΞοϓॲཧ ,74 ᶃݱࡏΛऔಘ ᶄݱࡏʴ̍ ,FZ 7BMVF DPVOUFS
ผͷ8PSLFS͔Β ॻ͖ࠐΈ͕ൃੜ มߋͳ͠ XPSLFS XPSLFS ᶅܭࢉ݁ՌΛॻ͖ࠐΈ
ΧϯτΞοϓॲཧ ,74 ᶃݱࡏΛऔಘ ᶄݱࡏʴ̍ ,FZ 7BMVF DPVOUFS
ผͷ8PSLFS͔Β ॻ͖ࠐΈ͕ൃੜ ͜͜lzͰ͋Δ͖ʂ ᶅܭࢉ݁ՌͷΛॻ͖ࠐΈ XPSLFS XPSLFS
ΧϯτΞοϓॲཧ IUUQE XPSLFS ,74 ᶃݱࡏΛऔಘ IUUQE XPSLFS ᶄݱࡏʴ̍
,FZ 7BMVF DPVOUFS ผͷ8PSLFS͔Β ॻ͖ࠐΈ͕ൃੜ ͜͜lzͰ͋Δ͖ʂ ᶅܭࢉ݁ՌͷΛॻ͖ࠐΈ ϨʔείϯσΟγϣϯ ʢڝ߹ঢ়ଶʣ
ഉଞ੍ޚ
ෳͷϓϩηε͕ར༻ग़དྷΔڞ༗ࢿݯʹ ର͠ɺෳͷϓϩηε͔Βͷಉ࣌ΞΫη εʹΑΓڝ߹͕ൃੜ͢Δ߹ʹɺ͋Δϓ ϩηεʹࢿݯΛಠతʹར༻͍ͤͯ͞Δ ؒɺଞͷϓϩηε͕ར༻Ͱ͖ͳ͍Α͏ ʹ͢ΔࣄͰ߹ੑΛอͭॲཧͷࣄ 8JLJQFEJB ഉଞ੍ޚ
ϓϩηεؒͷഉଞ੍ޚख๏ w ϩοΫΛ֫ಘͰ͖Δ·Ͱ୯७ʹϧʔϓ͢Δ w $16ίετ͕ߴΊ w ഉଞ੍ޚॲཧ͕͘͝ظؒͳ߹ʹద͍ͯ͠Δ w ϩοΫΛ֫ಘͰ͖Δ·Ͱϧʔϓͨ͠Γػͨ͠Γ͢Δ
w ϩοΫ ΞϯϩοΫͱ͍͏ͭͷঢ়ଶΛ࣋ͭ w ୯७ͳϓϩηεؒͷഉଞ੍ޚʹద͍ͯ͠Δ w ઈରΛͪɺ͕Ҏ্Ͱ͋ΕϓϩηεΛϒϩοΫ͢Δ w.VUFYͷΑ͏ʹͰදͤͳ͍ഉଞ੍ޚʹద͍ͯ͠Δ εϐϯϩοΫ .VUFY 4FNBQIPSF
,74 .VUFY ഉଞ੍ޚ XPSLFS ઌఔͷΧϯτΞοϓॲཧʹ .VUFYͷϩοΫػߏΛ࣮ͨ͠߹ͷ ಈ࡞ʹ͍ͭͯઆ໌͠·͢ɻ
,74 .VUFY ഉଞ੍ޚ XPSLFS ΧϯτΞοϓॲཧΛ͍ͨ͠
,74 .VUFY ᶃϩοΫ ഉଞ੍ޚ XPSLFS
,74 .VUFY ᶄΧϯτΞοϓ ᶃϩοΫ ഉଞ੍ޚ XPSLFS
,74 .VUFY ᶄΧϯτΞοϓ ᶃϩοΫ ഉଞ੍ޚ XPSLFS XPSLFS ϩοΫ͕ औΕͳ͍
,74 .VUFY ᶄΧϯτΞοϓ ᶃϩοΫ ഉଞ੍ޚ XPSLFS XPSLFS ᶅղআ ϩοΫ
,74 .VUFY ᶄΧϯτΞοϓ ᶃϩοΫ ഉଞ੍ޚ XPSLFS XPSLFS ᶅղআ ϩοΫ
ΧϯτΞοϓॲཧதϩοΫ͢Δ͜ͱͰ ϨʔείϯσΟγϣϯΛ͍Ͱ͍Δ
,74 .VUFY ᶄΧϯτΞοϓ ᶃϩοΫ ഉଞ੍ޚ XPSLFS
,74 .VUFY ᶄΧϯτΞοϓ ᶃϩοΫ ഉଞ੍ޚ XPSLFS XPSLFS XPSLFS ϩοΫ͕
औΕͳ͍
,74 .VUFY ᶄΧϯτΞοϓ ᶃϩοΫ ഉଞ੍ޚ XPSLFS XPSLFS XPSLFS ϩοΫ͕
औΕͳ͍ ͕ͪൃੜ͢Δ
,74 .VUFY ᶄΧϯτΞοϓ ᶃϩοΫ ഉଞ੍ޚ XPSLFS XPSLFS XPSLFS ϩοΫ͕
औΕͳ͍ ͕ͪൃੜ͢Δ ഉଞ੍ޚΛߦ͏ͱ ฒྻ࣮ߦ͞ΕΔ΄Ͳॱ൪͕ͪൃੜ͢ΔͷͰ جຊతʹύϑΥʔϚϯε͕ྼԽ͢Δ
ಉ࣌ଓ SFRTFD ഉଞ੍ޚͳ͠ ഉଞ੍ޚ͋Γ େ෯ʹύϑΥʔϚϯε͕ྼԽ ಉ࣌ଓͱSFRVFTUTFDͷάϥϑ
ಉ࣌ଓ SFRTFD ಉ࣌ଓͱSFRVFTUTFDͷάϥϑ ഉଞ੍ޚͷύϑΥʔϚϯεྼԽΛ ࠷খݶʹ͍͑ͨʂ
ύϑΥʔϚϯεྼԽΛ ࠷খݶʹ͑ΔͨΊͷ νϡʔχϯάϙΠϯτΛ հ͍͖ͯ͠·͢ʂ
ϦτϥΠִؒ
,74 .VUFY ᶃϩοΫ ϦτϥΠִؒ XPSLFS ϩοΫ͕ औΕͳ͍ XPSLFS ϘτϧωοΫ
,74 .VUFY ᶃϩοΫ ϦτϥΠִؒ XPSLFS ϩοΫ͕ औΕͳ͍ XPSLFS Ұൠతʹ.VUFYΛ ͬͨϩοΫػߏͰɺ
ϩοΫ͕औΕͳ͔ͬͨ ߹ϦτϥΠ͢ΔΑ͏ʹ ࣮͠·͢ɻ ϦτϥΠ͢Δִ͕͍ؒ΄͏͕ ϩοΫ͕औΓ͘͢ͳΔͷͰʁ
ಉ࣌ଓͱSFRVFTUTFDͷάϥϑ ഉଞ੍ޚͳ͠ νϡʔχϯάޙ
νϡʔχϯάલ ಉ࣌ଓ SFRTFD ЖTFD ЖTFD ϦτϥΠִؒ
ಉ࣌ଓͱSFRVFTUTFDͷάϥϑ ഉଞ੍ޚͳ͠ νϡʔχϯάޙ
νϡʔχϯάલ ಉ࣌ଓ SFRTFD ЖTFD ЖTFD ϦτϥΠִؒ ϦτϥΠִؒΛνϡʔχϯά͢Δ͜ͱͰ ഉଞ੍ޚͷύϑΥʔϚϯεྼԽΛ େ෯ʹ͑Δ͜ͱ͕Ͱ͖ͨʂ
ഉଞ੍ޚରͷॲཧ࣌ؒʹ Ԡͨ͡ϦτϥΠִؒ
ഉଞ੍ޚରͷॲཧ࣌ؒΛ͘͢Δ XPSLFS ,74 .VUFY ᶄΧϯτΞοϓ ᶃϩοΫ XPSLFS ᶅղআ
ಉ࣌ଓͱSFRVFTUTFDͷάϥϑ ಉ࣌ଓ SFRTFD
ഉଞ੍ޚͳ͠ ЖTFD ϦτϥΠִؒ ЖTFD ϦτϥΠִؒ ΧϯτΞοϓͷճΛ⇛ʹ͢Δͱ ࠷దͳϦτϥΠ࣌ؒ⇛ЖTFDʹͳͬͨ
ಉ࣌ଓͱSFRVFTUTFDͷάϥϑ ಉ࣌ଓ SFRTFD
ഉଞ੍ޚͳ͠ ЖTFD ϦτϥΠִؒ ЖTFD ϦτϥΠִؒ ΧϯτΞοϓͷճΛ⇛ʹ͢Δͱ ࠷దͳϦτϥΠճ⇛ЖTFDʹͳͬͨ ࠷దͳϦτϥΠ࣌ؒ ഉଞ੍ޚରॲͷॲཧ࣌ؒʹΑΔ͜ͱ͕ ͔ͬͨʂ
ϩϦϙοϓʂͰɺ ͜ΕΒͷνϡʔχϯάʹΑͬͯ ύϑΥʔϚϯε্͕͍ͯ͠·͢ʂ
ϩϦϙοϓʂͰͷࣄྫ ,74 .VUFY XPSLFS υϝΠϯɾΞΧϯτຖͷಉ࣌ଓΛΧϯτ͢Δ࣮ υϝΠϯɾΞΧϯτຖͷಉ࣌ଓ ,FZ 7BMVF
ϩϦϙοϓʂͰͷࣄྫ ,74 .VUFY XPSLFS υϝΠϯɾΞΧϯτຖͷಉ࣌ଓΛΧϯτ͢Δ࣮ υϝΠϯɾΞΧϯτຖͷಉ࣌ଓ ,FZ 7BMVF IPHFKQ
ϩϦϙοϓʂͰͷࣄྫ ,74 .VUFY XPSLFS υϝΠϯɾΞΧϯτຖͷಉ࣌ଓΛΧϯτ͢Δ࣮ υϝΠϯɾΞΧϯτຖͷಉ࣌ଓ ,FZ 7BMVF )045@IPHFKQ
IPHFKQ ΠϯΫϦϝϯτ
ϩϦϙοϓʂͰͷࣄྫ ,74 .VUFY XPSLFS υϝΠϯɾΞΧϯτຖͷಉ࣌ଓΛΧϯτ͢Δ࣮ υϝΠϯɾΞΧϯτຖͷಉ࣌ଓ ,FZ 7BMVF )045@IPHFKQ
IPHFKQ QIQͳͲͷίϯςϯπΛॲཧ ΠϯΫϦϝϯτ
ϩϦϙοϓʂͰͷࣄྫ ,74 .VUFY XPSLFS υϝΠϯɾΞΧϯτຖͷಉ࣌ଓΛΧϯτ͢Δ࣮ υϝΠϯɾΞΧϯτຖͷಉ࣌ଓ ,FZ 7BMVF )045@IPHFKQ
IPHFKQ QIQͳͲͷίϯςϯπΛॲཧ ΠϯΫϦϝϯτ σΫϦϝϯτ
ϩϦϙοϓʂͰͷࣄྫ ,74 .VUFY XPSLFS υϝΠϯɾΞΧϯτຖͷಉ࣌ଓΛΧϯτ͢Δ࣮ υϝΠϯɾΞΧϯτຖͷಉ࣌ଓ ,FZ 7BMVF )045@IPHFKQ
IPHFKQ QIQͳͲͷίϯςϯπΛॲཧ ΠϯΫϦϝϯτ σΫϦϝϯτ ϦτϥΠִؒΛదʹνϡʔχϯά͢Δ͜ͱͰ ఔύϑΥʔϚϯε্͕ͨ͠ʂ
ߋʹ
ϩϦϙοϓʂͰͷࣄྫ ,74 .VUFY XPSLFS υϝΠϯɾΞΧϯτຖͷಉ࣌ଓΛΧϯτ͢Δ࣮ υϝΠϯɾΞΧϯτຖͷಉ࣌ଓ ,FZ 7BMVF )045@IPHFKQ
64&3@GVHBVTFS IPHFKQ XPSLFS IPHFKQ XPSLFS GVHBVTFSͷαΠτ
ϩϦϙοϓʂͰͷࣄྫ XPSLFS υϝΠϯɾΞΧϯτຖͷಉ࣌ଓΛΧϯτ͢Δ࣮ ΞΧϯτຖͷಉ࣌ଓ IPHFKQ XPSLFS IPHFKQ XPSLFS GPPVTFSͷαΠτ υϝΠϯຖͷಉ࣌ଓ
,74 .VUFY ,FZ 7BMVF IPHFKQ ,74 .VUFY ,FZ 7BMVF GVHBVTFS
ϩϦϙοϓʂͰͷࣄྫ XPSLFS υϝΠϯɾΞΧϯτຖͷಉ࣌ଓΛΧϯτ͢Δ࣮ ΞΧϯτຖͷಉ࣌ଓ IPHFKQ XPSLFS IPHFKQ XPSLFS GPPVTFSͷαΠτ υϝΠϯຖͷಉ࣌ଓ
,74 .VUFY ,FZ 7BMVF IPHFKQ ,74 .VUFY ,FZ 7BMVF GVHBVTFS ഉଞ੍ޚରΛׂ͢Δ͜ͱͰ ϩοΫΛ֫ಘͰ͖Δػձ͕૿͑ΔͨΊ ύϑΥʔϚϯε͕ߋʹ্͢Δ߹͕͋Δʂ
·ͱΊ
·ͱΊ ϨʔείϯσΟγϣϯΛ͙ͨΊʹഉଞ੍ޚ͕ඞཁͳ࣮͕͋Δɻ ഉଞ੍ޚجຊతʹύϑΥʔϚϯε͕ྼԽ͢Δɻ ഉଞ੍ޚͷύϑΥʔϚϯε্ͷϙΠϯτΛͭհͨ͠ɻ ϩοΫऔಘͷϦτϥΠִؒΛνϡʔχϯά͢Δɻ ࠷దͳϦτϥΠִؒഉଞ੍ޚରͷॲཧ࣌ؒʹΑΔɻ ഉଞ੍ޚରΛͰ͖Δׂ͚ͩ͢Δɻ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ