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
7
2.6k
Webサーバ拡張における排他制御のパフォーマンスチューニング /performance_tuning_of_exclusive_control in_web_server extension
第10回ペパボテックカンファレンス~インフラエンジニアがもっとおもしろくできる!~
https://pepabo.connpass.com/event/69866/
Takuma Kume
November 08, 2017
Tweet
Share
More Decks by Takuma Kume
See All by Takuma Kume
SRE/インフラエンジニアの市場価値とキャリアパス/Market value and career path for SRE-infrastructure engineers
takumakume
2
870
【新卒研修】共通言語としてのSRE/SRE as a common language
takumakume
0
170
DDoSとの終わりなき戦い2025/endless_battle_with_ddos_attack_2025
takumakume
3
120
事業部CTOの現在地(パネルディスカッション)/Current-location-of-Division-CTO
takumakume
0
120
ロリポップ! for Gamersを支えるインフラ/lolipop for gamers infrastructure
takumakume
0
880
ロリポップ! for Gamersの立ち上げ/lolipop for gamers launch
takumakume
0
2.5k
ホモグラフドメインを検出してみた/detect homograph domain
takumakume
0
610
ソフトウェアの継続的アップデートをコンテナ化によって加速させる/Accelerate continuous software updates with containerization
takumakume
0
5.2k
KubernetesにおけるSBOMを利用した脆弱性管理/Vulnerability_Management_with_SBOM_in_Kubernetes
takumakume
2
2.6k
Other Decks in Technology
See All in Technology
人工衛星のファームウェアをRustで書く理由
koba789
1
770
BPaaSにおける人と協働する前提のAIエージェント-AWS登壇資料
kentarofujii
0
120
MCPで変わる Amebaデザインシステム「Spindle」の開発
spindle
PRO
3
3k
AI時代に非連続な成長を実現するエンジニアリング戦略
sansantech
PRO
3
1.1k
「何となくテストする」を卒業するためにプロダクトが動く仕組みを理解しよう
kawabeaver
0
260
Grafana MCPサーバーによるAIエージェント経由でのGrafanaダッシュボード動的生成
hamadakoji
1
1.4k
下手な強制、ダメ!絶対! 「ガードレール」を「檻」にさせない"ガバナンス"の取り方とは?
tsukaman
2
390
【Grafana Meetup Japan #6】Grafanaをリバプロ配下で動かすときにやること ~ Grafana Liveってなんだ ~
yoshitake945
0
390
LLMを搭載したプロダクトの品質保証の模索と学び
qa
0
960
Autonomous Database - Dedicated 技術詳細 / adb-d_technical_detail_jp
oracle4engineer
PRO
4
10k
Snowflakeの生成AI機能を活用したデータ分析アプリの作成 〜Cortex AnalystとCortex Searchの活用とStreamlitアプリでの利用〜
nayuts
1
420
react-callを使ってダイヤログをいろんなとこで再利用しよう!
shinaps
1
210
Featured
See All Featured
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
910
Making Projects Easy
brettharned
117
6.4k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Navigating Team Friction
lara
189
15k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
520
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.1k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Building Applications with DynamoDB
mza
96
6.6k
RailsConf 2023
tenderlove
30
1.2k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Imperfection Machines: The Place of Print at Facebook
scottboms
268
13k
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 ഉଞ੍ޚରΛׂ͢Δ͜ͱͰ ϩοΫΛ֫ಘͰ͖Δػձ͕૿͑ΔͨΊ ύϑΥʔϚϯε͕ߋʹ্͢Δ߹͕͋Δʂ
·ͱΊ
·ͱΊ ϨʔείϯσΟγϣϯΛ͙ͨΊʹഉଞ੍ޚ͕ඞཁͳ࣮͕͋Δɻ ഉଞ੍ޚجຊతʹύϑΥʔϚϯε͕ྼԽ͢Δɻ ഉଞ੍ޚͷύϑΥʔϚϯε্ͷϙΠϯτΛͭհͨ͠ɻ ϩοΫऔಘͷϦτϥΠִؒΛνϡʔχϯά͢Δɻ ࠷దͳϦτϥΠִؒഉଞ੍ޚରͷॲཧ࣌ؒʹΑΔɻ ഉଞ੍ޚରΛͰ͖Δׂ͚ͩ͢Δɻ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ